Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .mvn/jvm.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
105 changes: 44 additions & 61 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,21 +90,20 @@
<version>${org.projectlombok.lombok-mapstruct-binding.version}</version>
</path>
</annotationProcessorPaths>
<source>11</source>
<target>11</target>
<release>${compiler.release}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.23.0</version>
<configuration>
<linkXRef>false</linkXRef>
<printFailingErrors>true</printFailingErrors>
<failurePriority>3</failurePriority>
<targetJdk>${compiler.release}</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.23.0</version>
<configuration>
<linkXRef>false</linkXRef>
<printFailingErrors>true</printFailingErrors>
<failurePriority>3</failurePriority>
<targetJdk>11</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
Expand All @@ -129,8 +128,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
<release>${compiler.release}</release>
</configuration>
</plugin>
<plugin>
Expand All @@ -150,7 +148,7 @@
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
Expand All @@ -162,22 +160,6 @@
</build>

<profiles>
<profile>
<id>jdk-9-plus</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<surefire.addOpens>
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
</surefire.addOpens>
</properties>
</profile>
<profile>
<id>release</id>
<build>
Expand Down Expand Up @@ -356,12 +338,6 @@
<scope>test</scope>
<version>${org.junit.jupiter.version}</version>
</dependency>
<dependency>
<artifactId>junit-platform-suite</artifactId>
<groupId>org.junit.platform</groupId>
<scope>test</scope>
<version>${org.junit.platform.version}</version>
</dependency>
<dependency>
<artifactId>junit-pioneer</artifactId>
<groupId>org.junit-pioneer</groupId>
Expand All @@ -386,13 +362,6 @@
<version>${wiremock.version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${org.hamcrest.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

<scm>
Expand All @@ -405,16 +374,37 @@
<!-- MINDEE VERSION GOES HERE -->
<revision>5.0.0-alpha1</revision>

<!-- Give special access when running tests -->
<surefire.addOpens>
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
</surefire.addOpens>

<!-- Minimum Java version -->
<compiler.release>11</compiler.release>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<!-- Code dependencies -->
<tools.jackson.core.databind.version>3.1.1</tools.jackson.core.databind.version>
<com.fasterxml.jackson.datatype.version>2.21.2</com.fasterxml.jackson.datatype.version>
<com.squareup.okhttp3.version>4.12.0</com.squareup.okhttp3.version>
<info.picocli.version>4.7.6</info.picocli.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<info.picocli.version>4.7.7</info.picocli.version>
<org.apache.commons.math3.version>3.6.1</org.apache.commons.math3.version>
<org.apache.httpcomponents.client5.httpclient5.version>5.4.4</org.apache.httpcomponents.client5.httpclient5.version>
<commons-codec.version>1.20.0</commons-codec.version>
<org.apache.maven.clean.version>3.1.0</org.apache.maven.clean.version>
<commons-codec.version>1.21.0</commons-codec.version>
<org.apache.pdfbox.version>3.0.7</org.apache.pdfbox.version>
<org.mapstruct.version>1.5.3.Final</org.mapstruct.version>
<org.projectlombok.lombok-mapstruct-binding.version>0.2.0</org.projectlombok.lombok-mapstruct-binding.version>
<org.projectlombok.version>1.18.40</org.projectlombok.version>
<org.slf4j.version>2.0.17</org.slf4j.version>

<!-- Build/Test dependencies -->
<org.apache.maven.clean.version>3.5.0</org.apache.maven.clean.version>
<org.apache.maven.compiler.version>3.12.1</org.apache.maven.compiler.version>
<org.apache.maven.failsafe.version>3.5.5</org.apache.maven.failsafe.version>
<org.apache.maven.gpg.version>1.5</org.apache.maven.gpg.version>
Expand All @@ -424,18 +414,11 @@
<org.apache.maven.resources.version>3.0.2</org.apache.maven.resources.version>
<org.apache.maven.project.info.reports.version>3.0.0</org.apache.maven.project.info.reports.version>
<org.apache.maven.site.version>3.7.1</org.apache.maven.site.version>
<org.apache.maven.surfire.version>3.2.5</org.apache.maven.surfire.version>
<org.apache.pdfbox.version>3.0.5</org.apache.pdfbox.version>
<org.junit.jupiter.version>5.8.2</org.junit.jupiter.version>
<org.junit.pioneer.version>1.9.1</org.junit.pioneer.version>
<org.junit.platform.version>1.9.2</org.junit.platform.version>
<org.hamcrest.version>2.2</org.hamcrest.version>
<org.mapstruct.version>1.5.3.Final</org.mapstruct.version>
<org.projectlombok.lombok-mapstruct-binding.version>0.2.0</org.projectlombok.lombok-mapstruct-binding.version>
<org.projectlombok.version>1.18.38</org.projectlombok.version>
<org.slf4j.version>2.0.17</org.slf4j.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.apache.maven.surfire.version>3.5.5</org.apache.maven.surfire.version>
<wiremock.version>3.13.2</wiremock.version>
<!-- jupiter version 5.x is the last with JRE 11 support -->
<org.junit.jupiter.version>5.11.4</org.junit.jupiter.version>
<org.junit.pioneer.version>2.3.0</org.junit.pioneer.version>
</properties>

</project>
2 changes: 2 additions & 0 deletions src/main/java/com/mindee/v1/parsing/LocalResponse.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ private <P extends Inference, R> R deserialize(
public <T extends Inference> AsyncPredictResponse<T> deserializeAsyncResponse(
Class<T> productClass
) throws IOException {
@SuppressWarnings("unchecked")
AsyncPredictResponse<T> response = deserialize(AsyncPredictResponse.class, productClass);
response.setRawResponse(new String(this.file, StandardCharsets.UTF_8));
return response;
Expand All @@ -78,6 +79,7 @@ public <T extends Inference> AsyncPredictResponse<T> deserializeAsyncResponse(
public <T extends Inference> PredictResponse<T> deserializeSyncResponse(
Class<T> productClass
) throws IOException {
@SuppressWarnings("unchecked")
PredictResponse<T> response = deserialize(PredictResponse.class, productClass);
response.setRawResponse(new String(this.file, StandardCharsets.UTF_8));
return response;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public StringField asStringField() {
* @return An {@link AmountField} containing a double value.
*/
public AmountField asAmountField() {
Double value;
double value;
Object rawValue = this.get("value");
if (rawValue instanceof Integer) {
value = ((Integer) rawValue).doubleValue();
Expand Down Expand Up @@ -109,13 +109,13 @@ public Polygon getAsPolygon(String key) {
if (!this.containsKey(key)) {
return null;
}
Object rawPolygon = this.get(key);
var rawPolygon = this.get(key);
// a valid polygon must have at least 4 points
if (!(rawPolygon instanceof List && ((List<?>) rawPolygon).size() >= 4)) {
return null;
}
// a valid point must have exactly 2 coordinates
for (Object point : (List<?>) rawPolygon) {
for (var point : (List<?>) rawPolygon) {
if (!(point instanceof List) || ((List<?>) point).size() != 2) {
return null;
}
Expand All @@ -125,7 +125,9 @@ public Polygon getAsPolygon(String key) {
}
}
}
return new Polygon((List<List<Double>>) rawPolygon);
@SuppressWarnings("unchecked")
List<List<Double>> points = (List<List<Double>>) rawPolygon;
return new Polygon(points);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
package com.mindee.v1.parsing.generated;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mindee.v1.product.generated.GeneratedV1Document;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
* JSON deserializer for generated documents v1.x.
Expand All @@ -22,8 +18,6 @@ public GeneratedV1PredictionDeserializer(Class<?> vc) {
super(vc);
}

private static final ObjectMapper mapper = new ObjectMapper();

public GeneratedV1PredictionDeserializer() {
this(null);
}
Expand All @@ -33,27 +27,24 @@ public GeneratedV1Document deserialize(
JsonParser jsonParser,
DeserializationContext deserializationContext
) throws IOException {
ObjectNode rootNode = jsonParser.getCodec().readTree(jsonParser);
Map<String, GeneratedFeature> features = new HashMap<>();
var mapper = jsonParser.getCodec();
ObjectNode rootNode = mapper.readTree(jsonParser);
var features = new HashMap<String, GeneratedFeature>();

for (Iterator<Map.Entry<String, JsonNode>> subNode = rootNode.fields(); subNode.hasNext();) {
Map.Entry<String, JsonNode> featureNode = subNode.next();
for (var featureNode : rootNode.properties()) {
String featureName = featureNode.getKey();

GeneratedFeature feature;

if (featureNode.getValue().isArray()) {
feature = new GeneratedFeature(true);
for (JsonNode item : featureNode.getValue()) {
GeneratedObject value = mapper.readerFor(new TypeReference<GeneratedObject>() {
}).readValue(item);
GeneratedObject value = mapper.treeToValue(item, GeneratedObject.class);
feature.add(value);
}
features.put(featureName, feature);
} else {
feature = new GeneratedFeature(false);
GeneratedObject value = mapper.readerFor(new TypeReference<GeneratedObject>() {
}).readValue(featureNode.getValue());
GeneratedObject value = mapper.treeToValue(featureNode.getValue(), GeneratedObject.class);
feature.add(value);
}
features.put(featureName, feature);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,13 @@ public ObjectField getObjectField() throws IllegalStateException {
*/
public <T extends BaseField> T getField(Class<T> type) throws IllegalArgumentException {
if (type == SimpleField.class) {
return (T) this.getSimpleField();
return type.cast(this.getSimpleField());
}
if (type == ListField.class) {
return (T) this.getListField();
return type.cast(this.getListField());
}
if (type == ObjectField.class) {
return (T) this.getObjectField();
return type.cast(this.getObjectField());
}
throw new IllegalArgumentException("Cannot cast to " + type.getSimpleName());
}
Expand Down
4 changes: 1 addition & 3 deletions src/test/java/com/mindee/v1/http/MindeeHttpApiV1Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
import static com.mindee.TestingUtilities.getV1ResourcePath;
import static com.mindee.TestingUtilities.getV1ResourcePathString;
import static org.hamcrest.MatcherAssert.assertThat;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand All @@ -35,7 +34,6 @@
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner;
import org.apache.hc.core5.http.HttpHost;
import org.hamcrest.collection.IsMapContaining;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
Expand Down Expand Up @@ -213,7 +211,7 @@ void givenParseParametersWithFileUrl_whenParsed_shouldBuildRequestCorrectly() th
Map<String, String> requestMap = objectMapper
.readValue(recordedRequest.getBody().readUtf8(), new TypeReference<Map<String, String>>() {
});
assertThat(requestMap, IsMapContaining.hasEntry("document", "https://thisfile.does.not.exist"));
Assertions.assertEquals("https://thisfile.does.not.exist", requestMap.get("document"));
}

@Test
Expand Down
Loading