Skip to content

Commit c969488

Browse files
committed
move to Jackson 3
1 parent 012843b commit c969488

25 files changed

Lines changed: 150 additions & 106 deletions

pom.xml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>io.frictionlessdata</groupId>
55
<artifactId>tableschema-java</artifactId>
6-
<version>0.9.10-SNAPSHOT</version>
6+
<version>0.10.0-SNAPSHOT</version>
77
<packaging>jar</packaging>
88
<issueManagement>
99
<url>https://github.com/frictionlessdata/tableschema-java/issues</url>
@@ -26,10 +26,11 @@
2626
<apache-commons-csv.version>1.14.1</apache-commons-csv.version>
2727
<apache-commons-validator.version>1.10.1</apache-commons-validator.version>
2828
<geotools.version>34.1</geotools.version>
29-
<jackson.version>2.20.1</jackson.version>
29+
<jackson.version>3.1.4</jackson.version>
30+
<jackson-annotation.version>2.22</jackson-annotation.version>
3031
<junit.version>6.0.1</junit.version>
3132
<locationtech-jts.version>1.20.0</locationtech-jts.version>
32-
<networknt-validator-version>2.0.0</networknt-validator-version>
33+
<networknt-validator-version>3.0.3</networknt-validator-version>
3334
<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
3435
<maven-dependency-plugin.version>3.9.0</maven-dependency-plugin.version>
3536
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
@@ -192,24 +193,29 @@
192193
<dependencies>
193194
<!-- Dependencies for Bean-based Schema inferal -->
194195
<dependency>
195-
<groupId>com.fasterxml.jackson.dataformat</groupId>
196+
<groupId>tools.jackson.dataformat</groupId>
196197
<artifactId>jackson-dataformat-csv</artifactId>
197198
<version>${jackson.version}</version>
198199
</dependency>
199200

200-
<!-- Jackson support for new Java data/time API. For Date/DateTime/Time ec. Fields -->
201201
<dependency>
202-
<groupId>com.fasterxml.jackson.datatype</groupId>
203-
<artifactId>jackson-datatype-jsr310</artifactId>
202+
<groupId>tools.jackson.core</groupId>
203+
<artifactId>jackson-databind</artifactId>
204204
<version>${jackson.version}</version>
205205
</dependency>
206206

207207
<dependency>
208-
<groupId>com.fasterxml.jackson.core</groupId>
209-
<artifactId>jackson-databind</artifactId>
208+
<groupId>tools.jackson.core</groupId>
209+
<artifactId>jackson-core</artifactId>
210210
<version>${jackson.version}</version>
211211
</dependency>
212212

213+
<dependency>
214+
<groupId>com.fasterxml.jackson.core</groupId>
215+
<artifactId>jackson-annotations</artifactId>
216+
<version>${jackson-annotation.version}</version>
217+
</dependency>
218+
213219
<!-- Dependencies for Geopoint/Geojson Fields -->
214220
<dependency>
215221
<groupId>org.geotools</groupId>

src/main/java/io/frictionlessdata/tableschema/Table.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.frictionlessdata.tableschema;
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
4-
import com.fasterxml.jackson.core.JsonProcessingException;
5-
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import tools.jackson.core.JacksonException;
5+
import tools.jackson.databind.ObjectMapper;
66
import io.frictionlessdata.tableschema.exception.*;
77
import io.frictionlessdata.tableschema.field.Field;
88
import io.frictionlessdata.tableschema.iterator.BeanIterator;
@@ -462,7 +462,7 @@ public String asJson() {
462462
ObjectMapper mapper = JsonUtil.getInstance().getMapper();
463463
try {
464464
retVal = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rows);
465-
} catch (JsonProcessingException ex) {
465+
} catch (JacksonException ex) {
466466
throw new JsonSerializingException(ex);
467467
}
468468
return retVal;

src/main/java/io/frictionlessdata/tableschema/field/Field.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.*;
44
import com.fasterxml.jackson.annotation.JsonInclude.Include;
5-
import com.fasterxml.jackson.databind.JsonNode;
5+
import tools.jackson.databind.JsonNode;
66
import io.frictionlessdata.tableschema.exception.ConstraintsException;
77
import io.frictionlessdata.tableschema.exception.InvalidCastException;
88
import io.frictionlessdata.tableschema.exception.TypeInferringException;
@@ -280,6 +280,9 @@ public T castValue(String value) throws InvalidCastException, ConstraintsExcepti
280280
public Map<String, Object> checkConstraintViolations(Object value){
281281

282282
Map<String, Object> violatedConstraints = new HashMap<>();
283+
if (null == this.constraints) {
284+
return violatedConstraints;
285+
}
283286

284287
// Indicates whether this field is allowed to be null. If required is true, then null is disallowed.
285288
if(this.constraints.containsKey(CONSTRAINT_KEY_REQUIRED)){

src/main/java/io/frictionlessdata/tableschema/field/FieldInferrer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.frictionlessdata.tableschema.field;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
3+
import tools.jackson.databind.JsonNode;
44
import com.google.common.util.concurrent.AtomicDouble;
55
import org.locationtech.jts.geom.Coordinate;
66

src/main/java/io/frictionlessdata/tableschema/field/GeojsonField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.frictionlessdata.tableschema.field;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
3+
import tools.jackson.databind.JsonNode;
44
import io.frictionlessdata.tableschema.exception.*;
55
import io.frictionlessdata.tableschema.schema.FormalSchemaValidator;
66
import io.frictionlessdata.tableschema.schema.TypeInferrer;

src/main/java/io/frictionlessdata/tableschema/field/GeopointField.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.frictionlessdata.tableschema.field;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
4-
import com.fasterxml.jackson.databind.node.ArrayNode;
3+
import tools.jackson.databind.JsonNode;
4+
import tools.jackson.databind.node.ArrayNode;
55
import io.frictionlessdata.tableschema.exception.ConstraintsException;
66
import io.frictionlessdata.tableschema.exception.InvalidCastException;
77
import io.frictionlessdata.tableschema.exception.TypeInferringException;

src/main/java/io/frictionlessdata/tableschema/field/ObjectField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.frictionlessdata.tableschema.field;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
3+
import tools.jackson.core.type.TypeReference;
44
import io.frictionlessdata.tableschema.exception.ConstraintsException;
55
import io.frictionlessdata.tableschema.exception.InvalidCastException;
66
import io.frictionlessdata.tableschema.exception.JsonParsingException;

src/main/java/io/frictionlessdata/tableschema/iterator/BeanIterator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.frictionlessdata.tableschema.iterator;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
4-
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
3+
import tools.jackson.databind.JsonNode;
4+
import tools.jackson.databind.introspect.AnnotatedField;
55
import com.google.common.util.concurrent.AtomicDouble;
66
import io.frictionlessdata.tableschema.Table;
77
import io.frictionlessdata.tableschema.annotations.FieldFormat;

src/main/java/io/frictionlessdata/tableschema/schema/BeanSchema.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import com.fasterxml.jackson.annotation.JsonAutoDetect;
44
import com.fasterxml.jackson.annotation.JsonIgnore;
5-
import com.fasterxml.jackson.databind.BeanDescription;
6-
import com.fasterxml.jackson.databind.JsonNode;
7-
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
8-
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
9-
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
10-
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
5+
import tools.jackson.databind.BeanDescription;
6+
import tools.jackson.databind.JsonNode;
7+
import tools.jackson.databind.introspect.AnnotatedField;
8+
import tools.jackson.databind.introspect.BeanPropertyDefinition;
9+
import tools.jackson.dataformat.csv.CsvMapper;
10+
import tools.jackson.dataformat.csv.CsvSchema;
1111
import com.google.common.util.concurrent.AtomicDouble;
1212
import io.frictionlessdata.tableschema.annotations.FieldFormat;
1313
import io.frictionlessdata.tableschema.exception.TableSchemaException;
@@ -85,10 +85,9 @@ void setAnnotatedFieldMap(Map<String, AnnotatedField> fieldMap) {
8585
private void _infer(Class<?> beanClass) {
8686
strictValidation = true;
8787
fields = new ArrayList<>();
88-
CsvMapper mapper = new CsvMapper();
89-
mapper.setVisibility(mapper.getSerializationConfig()
90-
.getDefaultVisibilityChecker()
91-
.withFieldVisibility(JsonAutoDetect.Visibility.ANY));
88+
CsvMapper mapper = CsvMapper.builder()
89+
.changeDefaultVisibility(v -> v.withFieldVisibility(JsonAutoDetect.Visibility.ANY))
90+
.build();
9291
CsvSchema csvSchema = mapper.typedSchemaFor(beanClass);
9392
Iterator<CsvSchema.Column> iterator = csvSchema.iterator();
9493
Map<String, String> fieldNames = ReflectionUtil.getFieldNameMapping(beanClass);

src/main/java/io/frictionlessdata/tableschema/schema/FormalSchemaValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.frictionlessdata.tableschema.schema;
22

3-
import com.fasterxml.jackson.databind.JsonNode;
3+
import tools.jackson.databind.JsonNode;
44
import com.networknt.schema.SchemaRegistry;
55
import io.frictionlessdata.tableschema.util.JsonUtil;
66

0 commit comments

Comments
 (0)