diff --git a/README.md b/README.md
index 2263a080..ad133943 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
Project to build [Jackson](../../../jackson) module to
support JSON serialization and deserialization of Hibernate (https://hibernate.org) specific data types and properties; and features like lazy-loading.
-[](https://maven-badges.herokuapp.com/maven-central/com.fasterxml.jackson.datatype/jackson-datatype-hibernate5/)
-[](https://www.javadoc.io/doc/com.fasterxml.jackson.datatype/jackson-datatype-hibernate5)
+[](https://maven-badges.herokuapp.com/maven-central/tools.jackson.datatype/jackson-datatype-hibernate5/)
+[](https://www.javadoc.io/doc/tools.jackson.datatype/jackson-datatype-hibernate5)
## Status
@@ -11,32 +11,17 @@ Module is usable and supported for Jackson 2.x. and used by non-trivial number o
Currently (October 2025) module is **NOT supported for Jackson 3.x** due to lack of active maintainer.
It is considered Deprecated as part of [JSTEP-9](https://github.com/FasterXML/jackson-future-ideas/wiki/JSTEP-9).
-Note: Hibernate 4.x, 5.x, 6.x and 7.x are supported (5.x starting with Jackson 2.6; 6.x with Jackson 2.15 and 7.x with Jackson 2.20) but they require different jars, and Maven artifact names (and jar names differ).
+Note: Hibernate 4.x, 5.x, 6.x and 7.x are supported but they require different jars, and Maven artifact names (and jar names differ).
This document refers to "Hibernate 5" version, but changes with 4.x/6.x/7.x should require
little more than replacing "5" in names with "4", "6" or "7".
-Hibernate 3.x was supported up to Jackson 2.12 but is no longer supported at and after 2.13
-
-Jackson 2.13 adds Support for "Hibernate 5 Jakarta" variant (for Hibernate 5.5 and beyond);
+See also "Hibernate 5 Jakarta" variant (for Hibernate 5.5 and beyond);
see below for more information.
-Jackson 2.15 adds Support for Hibernate 6.x; see below for more information.
-
-Jackson 2.20 adds Support for Hibernate 7.x; see below for more information.
-
### JDK requirements
-Before Jackson 2.15, baseline JDK needed for building for JDK 8 and all
-module variants worked on Java 8.
-
-With Jackson 2.15, JDK 11 will be required to build: all modules run on
-Java 8 except for Hibernate 6.x module which requires Java 11 like
-Hibernate 6.x itself.
-
-With Jackson 2.20, JDK 17 will be required to build: 4.x and 5.x modules run on
-Java 8, 6.x on 11 and Hibernate 7.x module requires Java 17 like
-Hibernate 7.x itself.
+Java 17 or above is required.
### Javax vs Jakarta
@@ -59,9 +44,9 @@ To use module on Maven-based projects, use following dependency
```xml
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate5
- 2.20.0
+ 3.0.0
```
@@ -71,9 +56,9 @@ Note that you need to use "jackson-datatype-hibernate4" for Hibernate 4.x.
```xml
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate4
- 2.20.0
+ 3.0.0
```
@@ -82,9 +67,9 @@ you will need the jakarta suffixed dependency for Hibernate 5.5:
```xml
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate5-jakarta
- 2.20.0
+ 3.0.0
```
@@ -93,20 +78,19 @@ but you will need to use "jackson-datatype-hibernate6" for Hibernate 6.x:
```xml
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate6
- 2.20.0
+ 3.0.0
```
-and finally, for Hibernate 7.x (not yet released)
+and finally, for Hibernate 7.x
```xml
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate7
-
- 2.20.0-SNAPSHOT
+ 3.0.0
```
diff --git a/hibernate4/pom.xml b/hibernate4/pom.xml
index bbc17297..11ba1a9e 100644
--- a/hibernate4/pom.xml
+++ b/hibernate4/pom.xml
@@ -6,9 +6,9 @@
4.0.0
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate-parent
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
jackson-datatype-hibernate4
Jackson-datatype-Hibernate4
@@ -21,7 +21,7 @@ Hibernate (https://hibernate.org) version 4.x data types.
1.8
1.8
- com/fasterxml/jackson/datatype/hibernate4
+ tools/jackson/datatype/hibernate4
${project.groupId}.hibernate4
4.3.11.Final
@@ -67,8 +67,8 @@ Hibernate (https://hibernate.org) version 4.x data types.
org.apache.maven.plugins
maven-compiler-plugin
- 8
- 8
+ 17
+ 17
diff --git a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateSerializerModifier.java b/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateSerializerModifier.java
deleted file mode 100644
index e0b39626..00000000
--- a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateSerializerModifier.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate4;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.fasterxml.jackson.databind.type.MapType;
-import org.hibernate.SessionFactory;
-
-public class HibernateSerializerModifier
- extends BeanSerializerModifier
-{
- protected final int _features;
-
- protected final SessionFactory _sessionFactory;
-
- public HibernateSerializerModifier(int features, SessionFactory sessionFactory) {
- _features = features;
- _sessionFactory = sessionFactory;
- }
-
- /*
- @Override
- public JsonSerializer> modifySerializer(SerializationConfig config,
- BeanDescription beanDesc, JsonSerializer> serializer) {
- return serializer;
- }
- */
-
- @Override
- public JsonSerializer> modifyCollectionSerializer(SerializationConfig config,
- CollectionType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-
- @Override
- public JsonSerializer> modifyMapSerializer(SerializationConfig config,
- MapType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-}
diff --git a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/Hibernate4Module.java b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/Hibernate4Module.java
similarity index 94%
rename from hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/Hibernate4Module.java
rename to hibernate4/src/main/java/tools/jackson/datatype/hibernate4/Hibernate4Module.java
index b75b861f..248d7ff4 100644
--- a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/Hibernate4Module.java
+++ b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/Hibernate4Module.java
@@ -1,11 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate4;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
import org.hibernate.SessionFactory;
import org.hibernate.engine.spi.Mapping;
-public class Hibernate4Module extends com.fasterxml.jackson.databind.Module
+public class Hibernate4Module extends tools.jackson.databind.JacksonModule
{
/**
* Enumeration that defines all toggleable features this module
@@ -178,11 +178,11 @@ public void setupModule(SetupContext context)
context.appendAnnotationIntrospector(ai);
}
context.addSerializers(new HibernateSerializers(_mapping, _moduleFeatures));
- context.addBeanSerializerModifier(new HibernateSerializerModifier(_moduleFeatures, _sessionFactory));
+ context.addSerializerModifier(new HibernateSerializerModifier(_moduleFeatures, _sessionFactory));
}
/**
- * Method called during {@link #setupModule}, to create {@link com.fasterxml.jackson.databind.AnnotationIntrospector}
+ * Method called during {@link #setupModule}, to create {@link tools.jackson.databind.AnnotationIntrospector}
* to register along with module. If null is returned, no introspector is added.
*/
protected AnnotationIntrospector annotationIntrospector() {
diff --git a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java
similarity index 80%
rename from hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java
rename to hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java
index e3795762..81fde9fa 100644
--- a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java
+++ b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java
@@ -1,16 +1,17 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate4;
import javax.persistence.Transient;
import org.hibernate.bytecode.internal.javassist.FieldHandler;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
-import com.fasterxml.jackson.databind.introspect.NopAnnotationIntrospector;
+import tools.jackson.core.Version;
+import tools.jackson.databind.cfg.MapperConfig;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedMember;
+import tools.jackson.databind.introspect.NopAnnotationIntrospector;
/**
- * Simple {@link com.fasterxml.jackson.databind.AnnotationIntrospector} that adds support for using
+ * Simple {@link tools.jackson.databind.AnnotationIntrospector} that adds support for using
* {@link javax.persistence.Transient} to denote ignorable fields (alongside with Jackson
* and/or JAXB annotations).
*/
@@ -67,12 +68,12 @@ public Version version() {
*/
@Override
- public boolean hasIgnoreMarker(AnnotatedMember m) {
+ public boolean hasIgnoreMarker(MapperConfig> config, AnnotatedMember m) {
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
}
@Override
- public Boolean isIgnorableType(AnnotatedClass ac)
+ public Boolean isIgnorableType(MapperConfig> config, AnnotatedClass ac)
{
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
diff --git a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateProxySerializer.java
similarity index 87%
rename from hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java
rename to hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateProxySerializer.java
index e5a455c4..d7443839 100644
--- a/hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateProxySerializer.java
+++ b/hibernate4/src/main/java/tools/jackson/datatype/hibernate4/HibernateProxySerializer.java
@@ -1,24 +1,23 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate4;
import java.beans.Introspector;
-import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import javax.persistence.EntityNotFoundException;
-import com.fasterxml.jackson.core.*;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.*;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.impl.PropertySerializerMap;
+import tools.jackson.databind.type.TypeFactory;
+import tools.jackson.databind.util.NameTransformer;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.engine.spi.SessionImplementor;
@@ -36,8 +35,7 @@
* this one) have.
*/
public class HibernateProxySerializer
- extends JsonSerializer
- implements ContextualSerializer
+ extends ValueSerializer
{
/**
* Property that has proxy value to handle
@@ -144,12 +142,12 @@ protected HibernateProxySerializer(HibernateProxySerializer base,
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) {
+ public ValueSerializer> createContextual(SerializationContext prov, BeanProperty property) {
return new HibernateProxySerializer(this, property, _unwrapper);
}
@Override
- public JsonSerializer unwrappingSerializer(final NameTransformer unwrapper)
+ public ValueSerializer unwrappingSerializer(final NameTransformer unwrapper)
{
return new HibernateProxySerializer(this, _property, unwrapper);
}
@@ -161,36 +159,34 @@ public boolean isUnwrappingSerializer() {
/*
/**********************************************************************
- /* JsonSerializer impl
+ /* ValueSerializer impl
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, HibernateProxy value) {
+ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
return (value == null) || (findProxied(value) == null);
}
@Override
- public void serialize(HibernateProxy value, JsonGenerator jgen, SerializerProvider provider)
- throws IOException
+ public void serialize(HibernateProxy value, JsonGenerator jgen, SerializationContext provider)
{
Object proxiedValue = findProxied(value);
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
if (proxiedValue == null) {
- provider.defaultSerializeNull(jgen);
+ provider.defaultSerializeNullValue(jgen);
return;
}
findSerializer(provider, proxiedValue).serialize(proxiedValue, jgen, provider);
}
@Override
- public void serializeWithType(HibernateProxy value, JsonGenerator jgen, SerializerProvider provider,
+ public void serializeWithType(HibernateProxy value, JsonGenerator jgen, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
Object proxiedValue = findProxied(value);
if (proxiedValue == null) {
- provider.defaultSerializeNull(jgen);
+ provider.defaultSerializeNullValue(jgen);
return;
}
/* This isn't exactly right, since type serializer really refers to proxy
@@ -203,9 +199,9 @@ public void serializeWithType(HibernateProxy value, JsonGenerator jgen, Serializ
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
- SerializerProvider prov = visitor.getProvider();
+ SerializationContext prov = visitor.getContext();
if ((prov == null) || (_property == null)) {
super.acceptJsonFormatVisitor(visitor, typeHint);
} else {
@@ -221,8 +217,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
/**********************************************************************
*/
- protected JsonSerializer
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java b/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java
deleted file mode 100644
index aa7afd54..00000000
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.fasterxml.jackson.databind.type.MapType;
-import org.hibernate.SessionFactory;
-
-public class Hibernate5JSerializerModifier
- extends BeanSerializerModifier
-{
- protected final int _features;
-
- protected final SessionFactory _sessionFactory;
-
- public Hibernate5JSerializerModifier(int features, SessionFactory sessionFactory) {
- _features = features;
- _sessionFactory = sessionFactory;
- }
-
- /*
- @Override
- public JsonSerializer> modifySerializer(SerializationConfig config,
- BeanDescription beanDesc, JsonSerializer> serializer) {
- return serializer;
- }
- */
-
- @Override
- public JsonSerializer> modifyCollectionSerializer(SerializationConfig config,
- CollectionType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-
- @Override
- public JsonSerializer> modifyMapSerializer(SerializationConfig config,
- MapType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-}
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java
similarity index 83%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java
index 0425ba97..49e4c43a 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JAnnotationIntrospector.java
@@ -1,15 +1,16 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.PackageVersion;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
+import tools.jackson.databind.cfg.MapperConfig;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedMember;
+import tools.jackson.datatype.hibernate5.jakarta.PackageVersion;
import jakarta.persistence.Transient;
/**
- * Simple {@link com.fasterxml.jackson.databind.AnnotationIntrospector} that adds support for using
+ * Simple {@link tools.jackson.databind.AnnotationIntrospector} that adds support for using
* {@link jakarta.persistence.Transient} to denote ignorable fields (alongside with Jackson
* and/or JAXB annotations).
*/
@@ -66,12 +67,12 @@ public Version version() {
*/
@Override
- public boolean hasIgnoreMarker(AnnotatedMember m) {
+ public boolean hasIgnoreMarker(MapperConfig> config, AnnotatedMember m) {
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
}
@Override
- public Boolean isIgnorableType(AnnotatedClass ac)
+ public Boolean isIgnorableType(MapperConfig> config, AnnotatedClass ac)
{
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java
similarity index 88%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java
index 1e38ab43..02393e09 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.beans.Introspector;
import java.io.IOException;
@@ -13,17 +13,17 @@
import org.hibernate.proxy.LazyInitializer;
import org.hibernate.proxy.pojo.BasicLazyInitializer;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.impl.PropertySerializerMap;
+import tools.jackson.databind.type.TypeFactory;
+import tools.jackson.databind.util.NameTransformer;
import jakarta.persistence.EntityNotFoundException;
@@ -37,8 +37,7 @@
* this one) have.
*/
public class Hibernate5JProxySerializer
- extends JsonSerializer
- implements ContextualSerializer
+ extends ValueSerializer
{
/**
* Property that has proxy value to handle
@@ -104,12 +103,12 @@ protected Hibernate5JProxySerializer(Hibernate5JProxySerializer base,
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) {
+ public ValueSerializer> createContextual(SerializationContext prov, BeanProperty property) {
return new Hibernate5JProxySerializer(this, property, _unwrapper);
}
@Override
- public JsonSerializer unwrappingSerializer(final NameTransformer unwrapper) {
+ public ValueSerializer unwrappingSerializer(final NameTransformer unwrapper) {
return new Hibernate5JProxySerializer(this, _property, unwrapper);
}
@@ -121,36 +120,34 @@ public boolean isUnwrappingSerializer()
/*
/**********************************************************************
- /* JsonSerializer impl
+ /* ValueSerializer impl
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, HibernateProxy value) {
+ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
return (value == null) || (findProxied(value) == null);
}
@Override
- public void serialize(HibernateProxy value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(HibernateProxy value, JsonGenerator g, SerializationContext provider)
{
Object proxiedValue = findProxied(value);
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
findSerializer(provider, proxiedValue).serialize(proxiedValue, g, provider);
}
@Override
- public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
Object proxiedValue = findProxied(value);
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
/* This isn't exactly right, since type serializer really refers to proxy
@@ -163,9 +160,9 @@ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerP
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
- SerializerProvider prov = visitor.getProvider();
+ SerializationContext prov = visitor.getContext();
if ((prov == null) || (_property == null)) {
super.acceptJsonFormatVisitor(visitor, typeHint);
} else {
@@ -181,8 +178,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
/**********************************************************************
*/
- protected JsonSerializer findSerializer(SerializerProvider provider, Object value)
- throws IOException
+ protected ValueSerializer findSerializer(SerializationContext provider, Object value)
{
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
* annotations to indicate type, should take that into account.
@@ -196,7 +192,11 @@ protected JsonSerializer findSerializer(SerializerProvider provider, Obj
* really anyone's guess at this point; proxies can exist at any level?
*/
PropertySerializerMap.SerializerAndMapResult result =
- _dynamicSerializers.findAndAddPrimarySerializer(type, provider, _property);
+ _dynamicSerializers.findAndAddPrimarySerializer(
+ //TODO find better way to get JavaType
+ TypeFactory.createDefaultInstance().unsafeSimpleType(type),
+ provider,
+ _property);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
diff --git a/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java
new file mode 100644
index 00000000..93901359
--- /dev/null
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializerModifier.java
@@ -0,0 +1,42 @@
+package tools.jackson.datatype.hibernate5.jakarta;
+
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.ValueSerializerModifier;
+import tools.jackson.databind.type.CollectionType;
+import tools.jackson.databind.type.MapType;
+import org.hibernate.SessionFactory;
+
+public class Hibernate5JSerializerModifier
+ extends ValueSerializerModifier
+{
+ protected final int _features;
+
+ protected final SessionFactory _sessionFactory;
+
+ public Hibernate5JSerializerModifier(int features, SessionFactory sessionFactory) {
+ _features = features;
+ _sessionFactory = sessionFactory;
+ }
+
+ /*
+ @Override
+ public ValueSerializer> modifySerializer(SerializationConfig config,
+ BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return serializer;
+ }
+ */
+
+ @Override
+ public ValueSerializer> modifyCollectionSerializer(SerializationConfig config,
+ CollectionType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+
+ @Override
+ public ValueSerializer> modifyMapSerializer(SerializationConfig config,
+ MapType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+}
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java
similarity index 72%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java
index d6006830..883f5eef 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.Serializers;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.Serializers;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.proxy.HibernateProxy;
@@ -30,8 +31,8 @@ public Hibernate5JSerializers(Mapping mapping, int features)
}
@Override
- public JsonSerializer> findSerializer(SerializationConfig config,
- JavaType type, BeanDescription beanDesc)
+ public ValueSerializer> findSerializer(SerializationConfig config,
+ JavaType type, BeanDescription.Supplier beanDesc, JsonFormat.Value formatOverrides)
{
Class> raw = type.getRawClass();
if (HibernateProxy.class.isAssignableFrom(raw)) {
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java
similarity index 94%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java
index 93ce548f..7a0cde0a 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaModule.java
@@ -1,12 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import org.hibernate.SessionFactory;
import org.hibernate.engine.spi.Mapping;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
-public class Hibernate5JakartaModule extends com.fasterxml.jackson.databind.Module
+public class Hibernate5JakartaModule extends tools.jackson.databind.JacksonModule
{
/**
* Enumeration that defines all toggleable features this module
@@ -180,11 +180,11 @@ public void setupModule(SetupContext context)
context.appendAnnotationIntrospector(ai);
}
context.addSerializers(new Hibernate5JSerializers(_mapping, _moduleFeatures));
- context.addBeanSerializerModifier(new Hibernate5JSerializerModifier(_moduleFeatures, _sessionFactory));
+ context.addSerializerModifier(new Hibernate5JSerializerModifier(_moduleFeatures, _sessionFactory));
}
/**
- * Method called during {@link #setupModule}, to create {@link com.fasterxml.jackson.databind.AnnotationIntrospector}
+ * Method called during {@link #setupModule}, to create {@link tools.jackson.databind.AnnotationIntrospector}
* to register along with module. If null is returned, no introspector is added.
*/
protected AnnotationIntrospector annotationIntrospector() {
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java
similarity index 95%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java
index e9e3984d..f149d1d5 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JakartaVersion.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
public class Hibernate5JakartaVersion {
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in
similarity index 75%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in
index 7860aa14..69b6bdd0 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PackageVersion.java.in
@@ -1,8 +1,8 @@
package @package@;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
-import com.fasterxml.jackson.core.util.VersionUtil;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
+import tools.jackson.core.util.VersionUtil;
/**
* Automatically generated from PackageVersion.java.in during
diff --git a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java
similarity index 82%
rename from hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java
rename to hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java
index 2252fd09..d8fdb5a9 100644
--- a/hibernate5-jakarta/src/main/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java
+++ b/hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java
@@ -1,6 +1,5 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
-import java.io.IOException;
import java.util.*;
import org.hibernate.FlushMode;
@@ -14,15 +13,13 @@
import org.hibernate.mapping.Bag;
import org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContainerSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.ResolvableSerializer;
-import com.fasterxml.jackson.databind.util.NameTransformer;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule.Feature;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.*;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.std.StdContainerSerializer;
+import tools.jackson.databind.util.NameTransformer;
+import tools.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule.Feature;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EntityManager;
@@ -38,8 +35,7 @@
* and Map
types (unlike in JDK).
*/
public class PersistentCollectionSerializer
- extends ContainerSerializer
- implements ContextualSerializer, ResolvableSerializer
+ extends StdContainerSerializer
{
private static final long serialVersionUID = 1L;
@@ -57,7 +53,7 @@ public class PersistentCollectionSerializer
* Serializer that does actual value serialization when value
* is available (either already or with forced access).
*/
- protected final JsonSerializer _serializer;
+ protected final ValueSerializer _serializer;
protected final SessionFactory _sessionFactory;
@@ -69,20 +65,20 @@ public class PersistentCollectionSerializer
@SuppressWarnings("unchecked")
public PersistentCollectionSerializer(JavaType containerType,
- JsonSerializer> serializer, int features, SessionFactory sessionFactory) {
- super(containerType);
+ ValueSerializer> serializer, int features, SessionFactory sessionFactory) {
+ super(containerType, null);
_originalType = containerType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = features;
_sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
- protected PersistentCollectionSerializer(PersistentCollectionSerializer base, JsonSerializer> serializer)
+ protected PersistentCollectionSerializer(PersistentCollectionSerializer base, ValueSerializer> serializer)
{
super(base);
_originalType = base._originalType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = base._features;
_sessionFactory = base._sessionFactory;
}
@@ -92,7 +88,7 @@ public PersistentCollectionSerializer unwrappingSerializer(NameTransformer unwra
return _withSerializer(_serializer.unwrappingSerializer(unwrapper));
}
- protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser) {
+ protected PersistentCollectionSerializer _withSerializer(ValueSerializer> ser) {
if ((ser == _serializer) || (ser == null)) {
return this;
}
@@ -101,9 +97,9 @@ protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser)
// from `ContainerSerializer`
@Override
- protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
+ protected StdContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
{
- ContainerSerializer> ser0 = _containerSerializer();
+ StdContainerSerializer> ser0 = _containerSerializer();
if (ser0 != null) {
return _withSerializer(ser0.withValueTypeSerializer(vts));
}
@@ -120,11 +116,9 @@ protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
*/
@Override
- public void resolve(SerializerProvider provider) throws JsonMappingException
+ public void resolve(SerializationContext provider) throws DatabindException
{
- if (_serializer instanceof ResolvableSerializer) {
- ((ResolvableSerializer) _serializer).resolve(provider);
- }
+ _serializer.resolve(provider);
}
/**
@@ -132,13 +126,13 @@ public void resolve(SerializerProvider provider) throws JsonMappingException
* must know type of property being serialized.
*/
@Override
- public JsonSerializer> createContextual(SerializerProvider provider,
+ public ValueSerializer> createContextual(SerializationContext provider,
BeanProperty property)
- throws JsonMappingException
+ throws DatabindException
{
// 18-Oct-2013, tatu: Whether this is for the primary property or secondary is
// not quite certain; presume primary one for now.
- JsonSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
+ ValueSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
// If we use eager loading, can just return underlying serializer as is
if (!usesLazyLoading(property)) {
@@ -149,12 +143,12 @@ public JsonSerializer> createContextual(SerializerProvider provider,
/*
/**********************************************************************
- /* JsonSerializer simple accessors, metadata
+ /* ValueSerializer simple accessors, metadata
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, Object value)
+ public boolean isEmpty(SerializationContext provider, Object value)
{
if (value == null) { // is null ever passed?
return true;
@@ -178,7 +172,7 @@ public boolean usesObjectId() {
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
_serializer.acceptJsonFormatVisitor(visitor, typeHint);
}
@@ -191,7 +185,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
@Override
public JavaType getContentType() {
- ContainerSerializer> ser = _containerSerializer();
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentType();
}
@@ -199,8 +193,8 @@ public JavaType getContentType() {
}
@Override
- public JsonSerializer> getContentSerializer() {
- ContainerSerializer> ser = _containerSerializer();
+ public ValueSerializer> getContentSerializer() {
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentSerializer();
}
@@ -221,23 +215,22 @@ public boolean hasSingleElement(Object value) {
/*
/**********************************************************************
- /* JsonSerializer, actual serialization
+ /* ValueSerializer, actual serialization
/**********************************************************************
*/
@Override
- public void serialize(Object value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(Object value, JsonGenerator g, SerializationContext provider)
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], should NOT have to do anything here;
@@ -246,19 +239,18 @@ public void serialize(Object value, JsonGenerator g, SerializerProvider provider
}
@Override
- public void serializeWithType(Object value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(Object value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], conversion IS needed here (or,
@@ -277,9 +269,9 @@ public void serializeWithType(Object value, JsonGenerator g, SerializerProvider
/**********************************************************************
*/
- protected ContainerSerializer> _containerSerializer() {
- if (_serializer instanceof ContainerSerializer) {
- return (ContainerSerializer>) _serializer;
+ protected StdContainerSerializer> _containerSerializer() {
+ if (_serializer instanceof StdContainerSerializer stdContainerSerializer) {
+ return stdContainerSerializer;
}
return null;
}
diff --git a/hibernate5-jakarta/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module b/hibernate5-jakarta/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
index 2ab5f774..0178fbbf 100644
--- a/hibernate5-jakarta/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
+++ b/hibernate5-jakarta/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
@@ -1 +1 @@
-com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule
+tools.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule
diff --git a/hibernate5-jakarta/src/moditect/module-info.java b/hibernate5-jakarta/src/moditect/module-info.java
index 85e35b07..da05a67f 100644
--- a/hibernate5-jakarta/src/moditect/module-info.java
+++ b/hibernate5-jakarta/src/moditect/module-info.java
@@ -1,15 +1,15 @@
-module com.fasterxml.jackson.datatype.hibernate5.jakarta {
- requires transitive com.fasterxml.jackson.core;
- requires transitive com.fasterxml.jackson.databind;
+module tools.jackson.datatype.hibernate5.jakarta {
+ requires transitive tools.jackson.core;
+ requires transitive tools.jackson.databind;
requires transitive org.hibernate.orm.core;
- requires static com.fasterxml.jackson.annotation;
+ requires static tools.jackson.annotation;
requires static jakarta.activation;
requires static jakarta.persistence;
- exports com.fasterxml.jackson.datatype.hibernate5.jakarta;
- opens com.fasterxml.jackson.datatype.hibernate5.jakarta;
+ exports tools.jackson.datatype.hibernate5.jakarta;
+ opens tools.jackson.datatype.hibernate5.jakarta;
- provides com.fasterxml.jackson.databind.Module with
- com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
+ provides tools.jackson.databind.JacksonModule with
+ tools.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
}
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/BaseTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/BaseTest.java
similarity index 75%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/BaseTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/BaseTest.java
index ec00f851..c822539b 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/BaseTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/BaseTest.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.Arrays;
import org.apache.log4j.Logger;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.fail;
@@ -20,19 +21,24 @@ protected BaseTest() {
}
}
+ protected JsonMapper.Builder mapperBuilderWithModule(boolean forceLazyLoading)
+ {
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false));
+ }
+
protected ObjectMapper mapperWithModule(boolean forceLazyLoading)
{
- return new ObjectMapper().registerModule(hibernateModule(forceLazyLoading, false));
+ return mapperBuilderWithModule(forceLazyLoading).build();
}
protected ObjectMapper mapperWithModule(boolean forceLazyLoading, boolean nullMissingEntities)
{
- return new ObjectMapper().registerModule(hibernateModule(forceLazyLoading, nullMissingEntities));
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, nullMissingEntities)).build();
}
protected Hibernate5JakartaModule hibernateModule(boolean forceLazyLoading)
{
- return hibernateModule(forceLazyLoading, false);
+ return hibernateModule(forceLazyLoading, false);
}
protected Hibernate5JakartaModule hibernateModule(boolean forceLazyLoading, boolean nullMissingEntities)
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java
similarity index 86%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java
index 08f82a00..6b7a2620 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ForceLazyLoadingTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.Map;
import java.util.Set;
@@ -7,9 +7,9 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Payment;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
+import tools.jackson.datatype.hibernate5.jakarta.data.Payment;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/HibernateTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/HibernateTest.java
similarity index 92%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/HibernateTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/HibernateTest.java
index ba9b9887..b509708f 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/HibernateTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/HibernateTest.java
@@ -1,8 +1,8 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Employee;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
+import tools.jackson.datatype.hibernate5.jakarta.data.Employee;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
diff --git a/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/InclusionTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/InclusionTest.java
new file mode 100644
index 00000000..dd25099e
--- /dev/null
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/InclusionTest.java
@@ -0,0 +1,31 @@
+package tools.jackson.datatype.hibernate5.jakarta;
+
+import java.util.*;
+
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class InclusionTest extends BaseTest
+{
+ static class Mock
+ {
+ public long id = 13;
+ public Set mocks = new LinkedHashSet();
+ }
+
+ // [hibernate#65]
+ @Test
+ public void testInclusion() throws Exception
+ {
+ final JsonMapper.Builder builder = mapperBuilderWithModule(false);
+ builder.changeDefaultPropertyInclusion(inc -> inc.withValueInclusion(Include.NON_EMPTY));
+ ObjectMapper mapper = builder.build();
+ String json = mapper.writeValueAsString(new Mock());
+ assertEquals("{\"id\":13}", json);
+ }
+}
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java
similarity index 89%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java
index 75669c44..0dce00ba 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java
@@ -1,18 +1,17 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.Map;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
import org.hibernate.Hibernate;
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
+import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -71,7 +70,7 @@ public void testProductWithValidForeignKey() throws Exception {
}
// caused by jakarta.persistence.EntityNotFoundException: Unable to find
- // com.fasterxml.jackson.datatype.hibernate6.data.Product with id X10_1678
+ // tools.jackson.datatype.hibernate5.jakarta.data.Product with id X10_1678
@Test
public void testExceptionWithInvalidForeignKey() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
@@ -90,8 +89,8 @@ public void testExceptionWithInvalidForeignKey() throws Exception {
// JUnit 3.8
fail("Expected EntityNotFoundException exception");
- } catch (JsonMappingException e) {
- assertEquals("Unable to find com.fasterxml.jackson.datatype.hibernate6.data.Product with id X10_1678", e.getCause().getMessage());
+ } catch (DatabindException e) {
+ assertEquals("Unable to find tools.jackson.datatype.hibernate5.jakarta.data.Product with id X10_1678", e.getCause().getMessage());
} finally {
emf.close();
}
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/OneToManyTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/OneToManyTest.java
similarity index 84%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/OneToManyTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/OneToManyTest.java
index 7bd42f52..86ff8ff4 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/OneToManyTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/OneToManyTest.java
@@ -1,12 +1,13 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.LinkedHashMap;
import java.util.Map;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.OneToMany;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -42,7 +43,7 @@ public void testMapWithOneToMany() throws Exception {
}
private String mapWithHibernateModule(Object object) throws Exception {
- return new ObjectMapper().registerModule(new Hibernate5JakartaModule()).writeValueAsString(object);
+ return JsonMapper.builder().addModule(new Hibernate5JakartaModule()).build().writeValueAsString(object);
}
private String mapWithoutHibernateModule(Object object) throws Exception {
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/Polymorphic81Test.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java
similarity index 96%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/Polymorphic81Test.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java
index b0511354..605da711 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/Polymorphic81Test.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.ArrayList;
import java.util.List;
@@ -8,7 +8,7 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java
similarity index 82%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java
index 287a52eb..1f824a39 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java
@@ -1,15 +1,16 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.Set;
import org.hibernate.Hibernate;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
-import com.fasterxml.jackson.databind.json.JsonMapper;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Payment;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.DefaultTyping;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.jsontype.DefaultBaseTypeLimitingValidator;
+import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
+import tools.jackson.datatype.hibernate5.jakarta.data.Payment;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -55,7 +56,7 @@ public void testNoReplacePersistentCollection() throws Exception {
try {
/*Customer result =*/ mapper.readValue(json, Customer.class);
fail("Should throw exception");
- } catch (JsonMappingException e) {
+ } catch (DatabindException e) {
verifyException(e, "failed to lazily initialize");
}
}
@@ -89,7 +90,7 @@ public void testReplacePersistentCollection() throws Exception {
private ObjectMapper hibernateMapper(Hibernate5JakartaModule module) {
return JsonMapper.builder()
.addModule(module)
- .build()
- .enableDefaultTyping(DefaultTyping.NON_FINAL);
+ .activateDefaultTyping(new DefaultBaseTypeLimitingValidator(), DefaultTyping.NON_FINAL)
+ .build();
}
}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestMaps.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestMaps.java
similarity index 83%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestMaps.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestMaps.java
index 1b958b84..8e73e5f3 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestMaps.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestMaps.java
@@ -1,11 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate5.jakarta;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestVersions.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestVersions.java
similarity index 80%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestVersions.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestVersions.java
index bb358b2f..723c5613 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestVersions.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TestVersions.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TransientTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TransientTest.java
similarity index 85%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TransientTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TransientTest.java
index 715adc45..b791d7a8 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TransientTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TransientTest.java
@@ -1,11 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5.jakarta;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.Transient;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -38,7 +39,7 @@ public void testSimpleTransient() throws Exception
// and then with Transient disabled
Hibernate5JakartaModule mod = hibernateModule(false);
mod.disable(Hibernate5JakartaModule.Feature.USE_TRANSIENT_ANNOTATION);
- mapper = new ObjectMapper().registerModule(mod);
+ mapper = JsonMapper.builder().addModule(mod).build();
assertEquals(aposToQuotes("{'a':1,'b':2}"), mapper.writeValueAsString(new WithTransient()));
}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/UnwrappedTest.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java
similarity index 80%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/UnwrappedTest.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java
index 094c1679..c7a9076d 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/UnwrappedTest.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java
@@ -1,18 +1,19 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate5.jakarta;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate7.data.Product;
import org.hibernate.Hibernate;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
+import tools.jackson.datatype.hibernate5.jakarta.data.Product;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
+
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -40,7 +41,7 @@ public T getContent()
}
@Test
- public void testSimpleUnwrapped() throws JsonProcessingException
+ public void testSimpleUnwrapped() throws JacksonException
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Customer.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Customer.java
similarity index 99%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Customer.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Customer.java
index ccb26da3..07959c8e 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Customer.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Customer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Employee.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Employee.java
similarity index 98%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Employee.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Employee.java
index e9318e67..5e70aeee 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Employee.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Employee.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Office.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Office.java
similarity index 98%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Office.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Office.java
index 0c3f5256..688c776b 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Office.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Office.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import java.util.HashSet;
import java.util.Set;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Order.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Order.java
similarity index 98%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Order.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Order.java
index 1e332a89..d7ff966f 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Order.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Order.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetail.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java
similarity index 98%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetail.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java
index ab532dfa..a6d2a4bc 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetail.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetailId.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java
similarity index 97%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetailId.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java
index 0c5d8fcd..0fa5d376 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/OrderDetailId.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Payment.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Payment.java
similarity index 97%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Payment.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Payment.java
index 704e0876..192731f3 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Payment.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Payment.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import java.util.Date;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/PaymentId.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/PaymentId.java
similarity index 97%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/PaymentId.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/PaymentId.java
index 5629f5e8..a7e89a64 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/PaymentId.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/PaymentId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Product.java b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Product.java
similarity index 98%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Product.java
rename to hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Product.java
index ff033e61..7b7d8990 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Product.java
+++ b/hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/data/Product.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate5.jakarta.data;
import java.util.HashSet;
diff --git a/hibernate5-jakarta/src/test/resources/META-INF/persistence.xml b/hibernate5-jakarta/src/test/resources/META-INF/persistence.xml
index aa2aaaa1..596619df 100644
--- a/hibernate5-jakarta/src/test/resources/META-INF/persistence.xml
+++ b/hibernate5-jakarta/src/test/resources/META-INF/persistence.xml
@@ -6,15 +6,15 @@
org.hibernate.jpa.HibernatePersistenceProvider
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Employee
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Office
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Order
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.OrderDetail
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.OrderDetailId
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Payment
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.PaymentId
- com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Product
+ tools.jackson.datatype.hibernate5.jakarta.data.Customer
+ tools.jackson.datatype.hibernate5.jakarta.data.Employee
+ tools.jackson.datatype.hibernate5.jakarta.data.Office
+ tools.jackson.datatype.hibernate5.jakarta.data.Order
+ tools.jackson.datatype.hibernate5.jakarta.data.OrderDetail
+ tools.jackson.datatype.hibernate5.jakarta.data.OrderDetailId
+ tools.jackson.datatype.hibernate5.jakarta.data.Payment
+ tools.jackson.datatype.hibernate5.jakarta.data.PaymentId
+ tools.jackson.datatype.hibernate5.jakarta.data.Product
diff --git a/hibernate5/pom.xml b/hibernate5/pom.xml
index c9fc18d8..0c692d26 100644
--- a/hibernate5/pom.xml
+++ b/hibernate5/pom.xml
@@ -6,9 +6,9 @@
4.0.0
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate-parent
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
jackson-datatype-hibernate5
Jackson-datatype-Hibernate5
@@ -21,7 +21,7 @@ Hibernate (https://hibernate.org) version 5.x data types.
1.8
1.8
- com/fasterxml/jackson/datatype/hibernate5
+ tools/jackson/datatype/hibernate5
${project.groupId}.hibernate5
5.3.37.Final
@@ -101,8 +101,8 @@ Hibernate (https://hibernate.org) version 5.x data types.
org.apache.maven.plugins
maven-compiler-plugin
- 8
- 8
+ 17
+ 17
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializerModifier.java b/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializerModifier.java
deleted file mode 100644
index 48e34561..00000000
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializerModifier.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate5;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.fasterxml.jackson.databind.type.MapType;
-import org.hibernate.SessionFactory;
-
-public class HibernateSerializerModifier
- extends BeanSerializerModifier
-{
- protected final int _features;
-
- protected final SessionFactory _sessionFactory;
-
- public HibernateSerializerModifier(int features, SessionFactory sessionFactory) {
- _features = features;
- _sessionFactory = sessionFactory;
- }
-
- /*
- @Override
- public JsonSerializer> modifySerializer(SerializationConfig config,
- BeanDescription beanDesc, JsonSerializer> serializer) {
- return serializer;
- }
- */
-
- @Override
- public JsonSerializer> modifyCollectionSerializer(SerializationConfig config,
- CollectionType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-
- @Override
- public JsonSerializer> modifyMapSerializer(SerializationConfig config,
- MapType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-}
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Module.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Module.java
similarity index 94%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Module.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Module.java
index 538990ce..41f1d3a1 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Module.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Module.java
@@ -1,12 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.Module;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
+import tools.jackson.databind.JacksonModule;
import org.hibernate.SessionFactory;
import org.hibernate.engine.spi.Mapping;
-public class Hibernate5Module extends com.fasterxml.jackson.databind.Module
+public class Hibernate5Module extends tools.jackson.databind.JacksonModule
{
/**
* Enumeration that defines all toggleable features this module
@@ -180,11 +180,11 @@ public void setupModule(SetupContext context)
context.appendAnnotationIntrospector(ai);
}
context.addSerializers(new HibernateSerializers(_mapping, _moduleFeatures));
- context.addBeanSerializerModifier(new HibernateSerializerModifier(_moduleFeatures, _sessionFactory));
+ context.addSerializerModifier(new HibernateSerializerModifier(_moduleFeatures, _sessionFactory));
}
/**
- * Method called during {@link #setupModule}, to create {@link com.fasterxml.jackson.databind.AnnotationIntrospector}
+ * Method called during {@link #setupModule}, to create {@link tools.jackson.databind.AnnotationIntrospector}
* to register along with module. If null is returned, no introspector is added.
*/
protected AnnotationIntrospector annotationIntrospector() {
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Version.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Version.java
similarity index 95%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Version.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Version.java
index e832327d..c1585208 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/Hibernate5Version.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/Hibernate5Version.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
public class Hibernate5Version {
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java
similarity index 85%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java
index 47e923ba..1338c1c7 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java
@@ -1,14 +1,15 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import javax.persistence.Transient;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
+import tools.jackson.databind.cfg.MapperConfig;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedMember;
/**
- * Simple {@link com.fasterxml.jackson.databind.AnnotationIntrospector} that adds support for using
+ * Simple {@link tools.jackson.databind.AnnotationIntrospector} that adds support for using
* {@link javax.persistence.Transient} to denote ignorable fields (alongside with Jackson
* and/or JAXB annotations).
*/
@@ -65,12 +66,12 @@ public Version version() {
*/
@Override
- public boolean hasIgnoreMarker(AnnotatedMember m) {
+ public boolean hasIgnoreMarker(MapperConfig> config, AnnotatedMember m) {
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
}
@Override
- public Boolean isIgnorableType(AnnotatedClass ac)
+ public Boolean isIgnorableType(MapperConfig> config, AnnotatedClass ac)
{
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateProxySerializer.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateProxySerializer.java
similarity index 89%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateProxySerializer.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateProxySerializer.java
index 55adcf30..7f66264c 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateProxySerializer.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateProxySerializer.java
@@ -1,24 +1,23 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.beans.Introspector;
-import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import javax.persistence.EntityNotFoundException;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.impl.PropertySerializerMap;
+import tools.jackson.databind.type.TypeFactory;
+import tools.jackson.databind.util.NameTransformer;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.engine.spi.SessionFactoryImplementor;
@@ -37,8 +36,7 @@
* this one) have.
*/
public class HibernateProxySerializer
- extends JsonSerializer
- implements ContextualSerializer
+ extends ValueSerializer
{
/**
* Property that has proxy value to handle
@@ -145,12 +143,12 @@ protected HibernateProxySerializer(HibernateProxySerializer base,
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) {
+ public ValueSerializer> createContextual(SerializationContext prov, BeanProperty property) {
return new HibernateProxySerializer(this, property, _unwrapper);
}
@Override
- public JsonSerializer unwrappingSerializer(final NameTransformer unwrapper) {
+ public ValueSerializer unwrappingSerializer(final NameTransformer unwrapper) {
return new HibernateProxySerializer(this, _property, unwrapper);
}
@@ -162,36 +160,34 @@ public boolean isUnwrappingSerializer()
/*
/**********************************************************************
- /* JsonSerializer impl
+ /* ValueSerializer impl
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, HibernateProxy value) {
+ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
return (value == null) || (findProxied(value) == null);
}
@Override
- public void serialize(HibernateProxy value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(HibernateProxy value, JsonGenerator g, SerializationContext provider)
{
Object proxiedValue = findProxied(value);
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
findSerializer(provider, proxiedValue).serialize(proxiedValue, g, provider);
}
@Override
- public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
Object proxiedValue = findProxied(value);
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
/* This isn't exactly right, since type serializer really refers to proxy
@@ -204,9 +200,9 @@ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerP
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
- SerializerProvider prov = visitor.getProvider();
+ SerializationContext prov = visitor.getContext();
if ((prov == null) || (_property == null)) {
super.acceptJsonFormatVisitor(visitor, typeHint);
} else {
@@ -222,8 +218,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
/**********************************************************************
*/
- protected JsonSerializer findSerializer(SerializerProvider provider, Object value)
- throws IOException
+ protected ValueSerializer findSerializer(SerializationContext provider, Object value)
{
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
* annotations to indicate type, should take that into account.
@@ -237,7 +232,11 @@ protected JsonSerializer findSerializer(SerializerProvider provider, Obj
* really anyone's guess at this point; proxies can exist at any level?
*/
PropertySerializerMap.SerializerAndMapResult result =
- _dynamicSerializers.findAndAddPrimarySerializer(type, provider, _property);
+ _dynamicSerializers.findAndAddPrimarySerializer(
+ //TODO find better way to get JavaType
+ TypeFactory.createDefaultInstance().unsafeSimpleType(type),
+ provider,
+ _property);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
diff --git a/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializerModifier.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializerModifier.java
new file mode 100644
index 00000000..762b9722
--- /dev/null
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializerModifier.java
@@ -0,0 +1,42 @@
+package tools.jackson.datatype.hibernate5;
+
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.ValueSerializerModifier;
+import tools.jackson.databind.type.CollectionType;
+import tools.jackson.databind.type.MapType;
+import org.hibernate.SessionFactory;
+
+public class HibernateSerializerModifier
+ extends ValueSerializerModifier
+{
+ protected final int _features;
+
+ protected final SessionFactory _sessionFactory;
+
+ public HibernateSerializerModifier(int features, SessionFactory sessionFactory) {
+ _features = features;
+ _sessionFactory = sessionFactory;
+ }
+
+ /*
+ @Override
+ public ValueSerializer> modifySerializer(SerializationConfig config,
+ BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return serializer;
+ }
+ */
+
+ @Override
+ public ValueSerializer> modifyCollectionSerializer(SerializationConfig config,
+ CollectionType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+
+ @Override
+ public ValueSerializer> modifyMapSerializer(SerializationConfig config,
+ MapType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+}
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializers.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializers.java
similarity index 72%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializers.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializers.java
index 89222b17..67a6559d 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateSerializers.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/HibernateSerializers.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.Serializers;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.Serializers;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.proxy.HibernateProxy;
@@ -30,8 +31,8 @@ public HibernateSerializers(Mapping mapping, int features)
}
@Override
- public JsonSerializer> findSerializer(SerializationConfig config,
- JavaType type, BeanDescription beanDesc)
+ public ValueSerializer> findSerializer(SerializationConfig config,
+ JavaType type, BeanDescription.Supplier beanDesc, JsonFormat.Value formatOverrides)
{
Class> raw = type.getRawClass();
if (HibernateProxy.class.isAssignableFrom(raw)) {
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PackageVersion.java.in b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PackageVersion.java.in
similarity index 75%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PackageVersion.java.in
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PackageVersion.java.in
index 7860aa14..69b6bdd0 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PackageVersion.java.in
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PackageVersion.java.in
@@ -1,8 +1,8 @@
package @package@;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
-import com.fasterxml.jackson.core.util.VersionUtil;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
+import tools.jackson.core.util.VersionUtil;
/**
* Automatically generated from PackageVersion.java.in during
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PersistentCollectionSerializer.java b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PersistentCollectionSerializer.java
similarity index 82%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PersistentCollectionSerializer.java
rename to hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PersistentCollectionSerializer.java
index c539ef39..9e21bfdc 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PersistentCollectionSerializer.java
+++ b/hibernate5/src/main/java/tools/jackson/datatype/hibernate5/PersistentCollectionSerializer.java
@@ -1,19 +1,16 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
-import java.io.IOException;
import java.util.*;
import javax.persistence.*;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContainerSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.ResolvableSerializer;
-import com.fasterxml.jackson.databind.util.NameTransformer;
-import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module.Feature;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.*;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.std.StdContainerSerializer;
+import tools.jackson.databind.util.NameTransformer;
+import tools.jackson.datatype.hibernate5.Hibernate5Module.Feature;
import org.hibernate.FlushMode;
import org.hibernate.Hibernate;
@@ -32,8 +29,7 @@
* and Map
types (unlike in JDK).
*/
public class PersistentCollectionSerializer
- extends ContainerSerializer
- implements ContextualSerializer, ResolvableSerializer
+ extends StdContainerSerializer
{
private static final long serialVersionUID = 1L; // since 2.7
@@ -53,7 +49,7 @@ public class PersistentCollectionSerializer
* Serializer that does actual value serialization when value
* is available (either already or with forced access).
*/
- protected final JsonSerializer _serializer;
+ protected final ValueSerializer _serializer;
protected final SessionFactory _sessionFactory;
@@ -65,10 +61,10 @@ public class PersistentCollectionSerializer
@SuppressWarnings("unchecked")
public PersistentCollectionSerializer(JavaType containerType,
- JsonSerializer> serializer, int features, SessionFactory sessionFactory) {
- super(containerType);
+ ValueSerializer> serializer, int features, SessionFactory sessionFactory) {
+ super(containerType, null);
_originalType = containerType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = features;
_sessionFactory = sessionFactory;
}
@@ -77,11 +73,11 @@ public PersistentCollectionSerializer(JavaType containerType,
* @since 2.7
*/
@SuppressWarnings("unchecked")
- protected PersistentCollectionSerializer(PersistentCollectionSerializer base, JsonSerializer> serializer)
+ protected PersistentCollectionSerializer(PersistentCollectionSerializer base, ValueSerializer> serializer)
{
super(base);
_originalType = base._originalType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = base._features;
_sessionFactory = base._sessionFactory;
}
@@ -91,7 +87,7 @@ public PersistentCollectionSerializer unwrappingSerializer(NameTransformer unwra
return _withSerializer(_serializer.unwrappingSerializer(unwrapper));
}
- protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser) {
+ protected PersistentCollectionSerializer _withSerializer(ValueSerializer> ser) {
if ((ser == _serializer) || (ser == null)) {
return this;
}
@@ -100,9 +96,9 @@ protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser)
// from `ContainerSerializer`
@Override
- protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
+ protected StdContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
{
- ContainerSerializer> ser0 = _containerSerializer();
+ StdContainerSerializer> ser0 = _containerSerializer();
if (ser0 != null) {
return _withSerializer(ser0.withValueTypeSerializer(vts));
}
@@ -119,11 +115,9 @@ protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
*/
@Override
- public void resolve(SerializerProvider provider) throws JsonMappingException
+ public void resolve(SerializationContext provider) throws DatabindException
{
- if (_serializer instanceof ResolvableSerializer) {
- ((ResolvableSerializer) _serializer).resolve(provider);
- }
+ _serializer.resolve(provider);
}
/**
@@ -131,13 +125,13 @@ public void resolve(SerializerProvider provider) throws JsonMappingException
* must know type of property being serialized.
*/
@Override
- public JsonSerializer> createContextual(SerializerProvider provider,
+ public ValueSerializer> createContextual(SerializationContext provider,
BeanProperty property)
- throws JsonMappingException
+ throws DatabindException
{
// 18-Oct-2013, tatu: Whether this is for the primary property or secondary is
// not quite certain; presume primary one for now.
- JsonSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
+ ValueSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
// If we use eager loading, can just return underlying serializer as is
if (!usesLazyLoading(property)) {
@@ -148,12 +142,12 @@ public JsonSerializer> createContextual(SerializerProvider provider,
/*
/**********************************************************************
- /* JsonSerializer simple accessors, metadata
+ /* ValueSerializer simple accessors, metadata
/**********************************************************************
*/
@Override // since 2.6
- public boolean isEmpty(SerializerProvider provider, Object value)
+ public boolean isEmpty(SerializationContext provider, Object value)
{
if (value == null) { // is null ever passed?
return true;
@@ -177,7 +171,7 @@ public boolean usesObjectId() {
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
_serializer.acceptJsonFormatVisitor(visitor, typeHint);
}
@@ -190,7 +184,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
@Override
public JavaType getContentType() {
- ContainerSerializer> ser = _containerSerializer();
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentType();
}
@@ -198,8 +192,8 @@ public JavaType getContentType() {
}
@Override
- public JsonSerializer> getContentSerializer() {
- ContainerSerializer> ser = _containerSerializer();
+ public ValueSerializer> getContentSerializer() {
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentSerializer();
}
@@ -220,23 +214,22 @@ public boolean hasSingleElement(Object value) {
/*
/**********************************************************************
- /* JsonSerializer, actual serialization
+ /* ValueSerializer, actual serialization
/**********************************************************************
*/
@Override
- public void serialize(Object value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(Object value, JsonGenerator g, SerializationContext provider)
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], should NOT have to do anything here;
@@ -245,19 +238,18 @@ public void serialize(Object value, JsonGenerator g, SerializerProvider provider
}
@Override
- public void serializeWithType(Object value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(Object value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], conversion IS needed here (or,
@@ -276,9 +268,9 @@ public void serializeWithType(Object value, JsonGenerator g, SerializerProvider
/**********************************************************************
*/
- protected ContainerSerializer> _containerSerializer() {
- if (_serializer instanceof ContainerSerializer) {
- return (ContainerSerializer>) _serializer;
+ protected StdContainerSerializer> _containerSerializer() {
+ if (_serializer instanceof StdContainerSerializer stdContainerSerializer) {
+ return stdContainerSerializer;
}
return null;
}
diff --git a/hibernate5/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module b/hibernate5/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
index 7c451293..038ffd06 100644
--- a/hibernate5/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
+++ b/hibernate5/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
@@ -1 +1 @@
-com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module
+tools.jackson.datatype.hibernate5.Hibernate5Module
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/BaseTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/BaseTest.java
similarity index 78%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/BaseTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/BaseTest.java
index 1d966cb7..2473ced4 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/BaseTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/BaseTest.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.util.Arrays;
import org.apache.log4j.Logger;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.fail;
@@ -20,14 +21,19 @@ protected BaseTest() {
}
}
+ protected JsonMapper.Builder mapperBuilderWithModule(boolean forceLazyLoading)
+ {
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false));
+ }
+
protected ObjectMapper mapperWithModule(boolean forceLazyLoading)
{
- return new ObjectMapper().registerModule(hibernateModule(forceLazyLoading, false));
+ return mapperBuilderWithModule(forceLazyLoading).build();
}
protected ObjectMapper mapperWithModule(boolean forceLazyLoading, boolean nullMissingEntities)
{
- return new ObjectMapper().registerModule(hibernateModule(forceLazyLoading, nullMissingEntities));
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, nullMissingEntities)).build();
}
protected Hibernate5Module hibernateModule(boolean forceLazyLoading)
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ForceLazyLoadingTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ForceLazyLoadingTest.java
similarity index 87%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ForceLazyLoadingTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ForceLazyLoadingTest.java
index 77b18b1f..7dda25bc 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ForceLazyLoadingTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ForceLazyLoadingTest.java
@@ -1,8 +1,8 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.data.Payment;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.datatype.hibernate5.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/HibernateTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/HibernateTest.java
similarity index 92%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/HibernateTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/HibernateTest.java
index 5e15d9ef..43e62ecb 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/HibernateTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/HibernateTest.java
@@ -1,14 +1,14 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
-import com.fasterxml.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.datatype.hibernate5.data.Customer;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.data.Employee;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.data.Employee;
import org.junit.jupiter.api.*;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/InclusionTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/InclusionTest.java
similarity index 61%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/InclusionTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/InclusionTest.java
index d8ecce90..1dd90fb6 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/InclusionTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/InclusionTest.java
@@ -1,11 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -21,8 +22,9 @@ static class Mock
@Test
public void testInclusion() throws Exception
{
- final ObjectMapper mapper = mapperWithModule(false);
- mapper.setSerializationInclusion(Include.NON_EMPTY);
+ final JsonMapper.Builder builder = mapperBuilderWithModule(false);
+ builder.changeDefaultPropertyInclusion(inc -> inc.withValueInclusion(Include.NON_EMPTY));
+ ObjectMapper mapper = builder.build();
String json = mapper.writeValueAsString(new Mock());
assertEquals("{\"id\":13}", json);
}
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/LazyLoadingTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/LazyLoadingTest.java
similarity index 83%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/LazyLoadingTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/LazyLoadingTest.java
index 0e667f95..838c7ef6 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/LazyLoadingTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/LazyLoadingTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
@@ -6,11 +6,12 @@
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module.Feature;
-import com.fasterxml.jackson.datatype.hibernate5.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.data.Payment;
+import tools.jackson.core.JacksonException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.datatype.hibernate5.Hibernate5Module.Feature;
+import tools.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.datatype.hibernate5.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
@@ -63,10 +64,10 @@ public void testGetCustomerJson() throws Exception
}
@Test
- public void testSerializeIdentifierFeature() throws JsonProcessingException {
+ public void testSerializeIdentifierFeature() throws JacksonException {
Hibernate5Module module = new Hibernate5Module();
module.enable(Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS);
- ObjectMapper objectMapper = new ObjectMapper().registerModule(module);
+ ObjectMapper objectMapper = JsonMapper.builder().addModule(module).build();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java
similarity index 89%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java
index 58526160..b4259bf0 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/MissingEntitiesAsNullTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.util.Map;
@@ -9,9 +9,9 @@
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.data.Customer;
import static org.junit.jupiter.api.Assertions.*;
@@ -70,7 +70,7 @@ public void testProductWithValidForeignKey() throws Exception {
}
// caused by javax.persistence.EntityNotFoundException: Unable to find
- // com.fasterxml.jackson.datatype.hibernate4.data.Product with id X10_1678
+ // tools.jackson.datatype.hibernate4.data.Product with id X10_1678
@Test
public void testExceptionWithInvalidForeignKey() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
@@ -89,8 +89,8 @@ public void testExceptionWithInvalidForeignKey() throws Exception {
// JUnit 3.8
fail("Expected EntityNotFoundException exception");
- } catch (JsonMappingException e) {
- assertEquals("Unable to find com.fasterxml.jackson.datatype.hibernate5.data.Product with id X10_1678", e.getCause().getMessage());
+ } catch (DatabindException e) {
+ assertEquals("Unable to find tools.jackson.datatype.hibernate5.data.Product with id X10_1678", e.getCause().getMessage());
} finally {
emf.close();
}
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/OneToManyTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/OneToManyTest.java
similarity index 84%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/OneToManyTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/OneToManyTest.java
index 51173d39..e7c7bb04 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/OneToManyTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/OneToManyTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
@@ -6,7 +6,8 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -42,7 +43,7 @@ public void testMapWithOneToMany() throws Exception {
}
private String mapWithHibernateModule(Object object) throws Exception {
- return new ObjectMapper().registerModule(new Hibernate4Module()).writeValueAsString(object);
+ return JsonMapper.builder().addModule(new Hibernate5Module()).build().writeValueAsString(object);
}
private String mapWithoutHibernateModule(Object object) throws Exception {
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/Polymorphic81Test.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/Polymorphic81Test.java
similarity index 95%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/Polymorphic81Test.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/Polymorphic81Test.java
index d3a7e18a..be811a4a 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/Polymorphic81Test.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/Polymorphic81Test.java
@@ -1,11 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.*;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java
similarity index 82%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java
index fc273228..add3443f 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/ReplacePersistentCollectionTest.java
@@ -1,13 +1,14 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
-import com.fasterxml.jackson.databind.json.JsonMapper;
-import com.fasterxml.jackson.datatype.hibernate5.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.data.Payment;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.DefaultTyping;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.jsontype.DefaultBaseTypeLimitingValidator;
+import tools.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.datatype.hibernate5.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.*;
@@ -54,7 +55,7 @@ public void testNoReplacePersistentCollection() throws Exception {
try {
/*Customer result =*/ mapper.readValue(json, Customer.class);
fail("Should throw exception");
- } catch (JsonMappingException e) {
+ } catch (DatabindException e) {
verifyException(e, "failed to lazily initialize");
}
}
@@ -91,7 +92,7 @@ public void testReplacePersistentCollection() throws Exception {
private ObjectMapper hibernateMapper(Hibernate5Module module) {
return JsonMapper.builder()
.addModule(module)
- .build()
- .enableDefaultTyping(DefaultTyping.NON_FINAL);
+ .activateDefaultTyping(new DefaultBaseTypeLimitingValidator(), DefaultTyping.NON_FINAL)
+ .build();
}
}
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/TestMaps.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestMaps.java
similarity index 82%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/TestMaps.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestMaps.java
index ad47cef1..a202062c 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/TestMaps.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestMaps.java
@@ -1,10 +1,10 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate5;
import java.util.*;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TestVersions.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestVersions.java
similarity index 80%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TestVersions.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestVersions.java
index 17a68ea5..8a7bbff7 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TestVersions.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TestVersions.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TransientTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TransientTest.java
similarity index 85%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TransientTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TransientTest.java
index 23fb0fb6..561c0ca2 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/TransientTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/TransientTest.java
@@ -1,11 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate5;
import javax.persistence.Transient;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -38,7 +39,7 @@ public void testSimpleTransient() throws Exception
// and then with Transient disabled
Hibernate5Module mod = hibernateModule(false);
mod.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION);
- mapper = new ObjectMapper().registerModule(mod);
+ mapper = JsonMapper.builder().addModule(mod).build();
assertEquals(aposToQuotes("{'a':1,'b':2}"), mapper.writeValueAsString(new WithTransient()));
}
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/UnwrappedTest.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/UnwrappedTest.java
similarity index 79%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/UnwrappedTest.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/UnwrappedTest.java
index 664e5a6e..13fa85ff 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/UnwrappedTest.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/UnwrappedTest.java
@@ -1,19 +1,18 @@
-package com.fasterxml.jackson.datatype.hibernate4;
+package tools.jackson.datatype.hibernate5;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate4.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate4.data.Product;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate5.data.Customer;
+import tools.jackson.datatype.hibernate5.data.Product;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
-import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
@@ -40,7 +39,7 @@ public T getContent()
}
@Test
- public void testSimpleUnwrapped() throws JsonProcessingException
+ public void testSimpleUnwrapped() throws JacksonException
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Customer.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Customer.java
similarity index 99%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Customer.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Customer.java
index 8c1e2a54..9aea84f4 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Customer.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Customer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.data;
+package tools.jackson.datatype.hibernate5.data;
import java.util.HashSet;
import java.util.Set;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Employee.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Employee.java
similarity index 98%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Employee.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Employee.java
index 80dcb314..eed2791a 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/data/Employee.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Employee.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.data;
+package tools.jackson.datatype.hibernate5.data;
import java.util.HashSet;
import java.util.Set;
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Office.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Office.java
similarity index 98%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Office.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Office.java
index 20ea3e0b..37b88d1b 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Office.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Office.java
@@ -1,15 +1,15 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import java.util.HashSet;
+import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
@SuppressWarnings("serial")
@Entity
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Order.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Order.java
similarity index 98%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Order.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Order.java
index 706177eb..4e66b43e 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Order.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Order.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetail.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetail.java
similarity index 98%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetail.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetail.java
index be543de5..219f84d3 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetail.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetail.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetailId.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetailId.java
similarity index 97%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetailId.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetailId.java
index 6865b91b..50974f81 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/OrderDetailId.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/OrderDetailId.java
@@ -1,8 +1,8 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
@SuppressWarnings("serial")
@Embeddable
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Payment.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Payment.java
similarity index 97%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Payment.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Payment.java
index e022cfca..b8535b03 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Payment.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Payment.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
import java.util.Date;
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/PaymentId.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/PaymentId.java
similarity index 97%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/PaymentId.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/PaymentId.java
index 86628856..099a730c 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/PaymentId.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/PaymentId.java
@@ -1,8 +1,8 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
@SuppressWarnings("serial")
@Embeddable
diff --git a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Product.java b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Product.java
similarity index 98%
rename from hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Product.java
rename to hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Product.java
index c8245441..d5b04915 100644
--- a/hibernate4/src/test/java/com/fasterxml/jackson/datatype/hibernate4/data/Product.java
+++ b/hibernate5/src/test/java/tools/jackson/datatype/hibernate5/data/Product.java
@@ -1,15 +1,15 @@
-package com.fasterxml.jackson.datatype.hibernate4.data;
+package tools.jackson.datatype.hibernate5.data;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
+import java.util.HashSet;
+import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
@SuppressWarnings("serial")
@Entity
diff --git a/hibernate5/src/test/resources/META-INF/persistence.xml b/hibernate5/src/test/resources/META-INF/persistence.xml
index 1080af14..3a5d8dd7 100644
--- a/hibernate5/src/test/resources/META-INF/persistence.xml
+++ b/hibernate5/src/test/resources/META-INF/persistence.xml
@@ -6,18 +6,18 @@
org.hibernate.jpa.HibernatePersistenceProvider
- com.fasterxml.jackson.datatype.hibernate5.data.Contrato
- com.fasterxml.jackson.datatype.hibernate5.data.Customer
- com.fasterxml.jackson.datatype.hibernate5.data.Employee
- com.fasterxml.jackson.datatype.hibernate5.data.Liquidacao
- com.fasterxml.jackson.datatype.hibernate5.data.Office
- com.fasterxml.jackson.datatype.hibernate5.data.Order
- com.fasterxml.jackson.datatype.hibernate5.data.OrderDetail
- com.fasterxml.jackson.datatype.hibernate5.data.OrderDetailId
- com.fasterxml.jackson.datatype.hibernate5.data.Parcela
- com.fasterxml.jackson.datatype.hibernate5.data.Payment
- com.fasterxml.jackson.datatype.hibernate5.data.PaymentId
- com.fasterxml.jackson.datatype.hibernate5.data.Product
+ tools.jackson.datatype.hibernate5.data.Contrato
+ tools.jackson.datatype.hibernate5.data.Customer
+ tools.jackson.datatype.hibernate5.data.Employee
+ tools.jackson.datatype.hibernate5.data.Liquidacao
+ tools.jackson.datatype.hibernate5.data.Office
+ tools.jackson.datatype.hibernate5.data.Order
+ tools.jackson.datatype.hibernate5.data.OrderDetail
+ tools.jackson.datatype.hibernate5.data.OrderDetailId
+ tools.jackson.datatype.hibernate5.data.Parcela
+ tools.jackson.datatype.hibernate5.data.Payment
+ tools.jackson.datatype.hibernate5.data.PaymentId
+ tools.jackson.datatype.hibernate5.data.Product
diff --git a/hibernate5_2-test/pom.xml b/hibernate5_2-test/pom.xml
deleted file mode 100644
index aca4e4e6..00000000
--- a/hibernate5_2-test/pom.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-
- 4.0.0
-
- com.fasterxml.jackson.datatype
- jackson-datatype-hibernate-parent
- 2.13.0-SNAPSHOT
-
- jackson-datatype-hibernate5_2-test
-
-
- 1.8
- 1.8
-
-
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-hibernate5
- ${project.version}
- test
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-hibernate5
- ${project.version}
- test-jar
- test
-
-
- org.hibernate
- hibernate-core
- 5.3.20.Final
- provided
-
-
-
-
- org.mockito
- mockito-core
- 1.10.19
- test
-
-
- org.slf4j
- slf4j-log4j12
- 1.6.6
- test
-
-
- log4j
- log4j
- 1.2.17
- test
-
-
- com.h2database
- h2
- 2.2.220
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 8
- 8
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- default-jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-install-plugin
- 2.4
-
- true
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
-
- true
-
-
-
-
-
-
- hibernate5_2-test
-
- 1.8
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
-
- com.fasterxml.jackson.datatype:jackson-datatype-hibernate5
-
- --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED
-
-
-
-
-
-
-
diff --git a/hibernate6/pom.xml b/hibernate6/pom.xml
index a7b04912..3bbe4e0c 100644
--- a/hibernate6/pom.xml
+++ b/hibernate6/pom.xml
@@ -6,9 +6,9 @@
4.0.0
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate-parent
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
jackson-datatype-hibernate6
Jackson-datatype-hibernate6
@@ -19,7 +19,7 @@ Hibernate (https://hibernate.org/) version 6.x with Jakarta data types.
https://github.com/FasterXML/jackson-datatype-hibernate
- com/fasterxml/jackson/datatype/hibernate6
+ tools/jackson/datatype/hibernate6
${project.groupId}.hibernate6
6.2.33.Final
@@ -76,8 +76,8 @@ Hibernate (https://hibernate.org/) version 6.x with Jakarta data types.
org.apache.maven.plugins
maven-compiler-plugin
- 11
- 11
+ 17
+ 17
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java b/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java
deleted file mode 100644
index dd3758dd..00000000
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate6;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.fasterxml.jackson.databind.type.MapType;
-import org.hibernate.SessionFactory;
-
-public class Hibernate6SerializerModifier
- extends BeanSerializerModifier
-{
- protected final int _features;
-
- protected final SessionFactory _sessionFactory;
-
- public Hibernate6SerializerModifier(int features, SessionFactory sessionFactory) {
- _features = features;
- _sessionFactory = sessionFactory;
- }
-
- /*
- @Override
- public JsonSerializer> modifySerializer(SerializationConfig config,
- BeanDescription beanDesc, JsonSerializer> serializer) {
- return serializer;
- }
- */
-
- @Override
- public JsonSerializer> modifyCollectionSerializer(SerializationConfig config,
- CollectionType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-
- @Override
- public JsonSerializer> modifyMapSerializer(SerializationConfig config,
- MapType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-}
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java
similarity index 87%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java
index 7dd81868..e247fc69 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6AnnotationIntrospector.java
@@ -1,9 +1,10 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
+import tools.jackson.databind.cfg.MapperConfig;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedMember;
import jakarta.persistence.Transient;
/**
@@ -64,12 +65,12 @@ public Version version() {
*/
@Override
- public boolean hasIgnoreMarker(AnnotatedMember m) {
+ public boolean hasIgnoreMarker(MapperConfig> config, AnnotatedMember m) {
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
}
@Override
- public Boolean isIgnorableType(AnnotatedClass ac)
+ public Boolean isIgnorableType(MapperConfig> config, AnnotatedClass ac)
{
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Module.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Module.java
similarity index 95%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Module.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Module.java
index b5b22edc..765587af 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Module.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Module.java
@@ -1,12 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import org.hibernate.SessionFactory;
import org.hibernate.engine.spi.Mapping;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
-public class Hibernate6Module extends com.fasterxml.jackson.databind.Module
+public class Hibernate6Module extends tools.jackson.databind.JacksonModule
{
/**
* Enumeration that defines all toggleable features this module
@@ -180,7 +180,7 @@ public void setupModule(SetupContext context)
context.appendAnnotationIntrospector(ai);
}
context.addSerializers(new Hibernate6Serializers(_mapping, _moduleFeatures));
- context.addBeanSerializerModifier(new Hibernate6SerializerModifier(_moduleFeatures, _sessionFactory));
+ context.addSerializerModifier(new Hibernate6SerializerModifier(_moduleFeatures, _sessionFactory));
}
/**
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java
similarity index 87%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java
index 4f63e996..065e08c7 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java
@@ -1,7 +1,6 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.beans.Introspector;
-import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -13,17 +12,17 @@
import org.hibernate.proxy.LazyInitializer;
import org.hibernate.proxy.pojo.BasicLazyInitializer;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.impl.PropertySerializerMap;
+import tools.jackson.databind.type.TypeFactory;
+import tools.jackson.databind.util.NameTransformer;
import jakarta.persistence.EntityNotFoundException;
@@ -37,8 +36,7 @@
* this one) have.
*/
public class Hibernate6ProxySerializer
- extends JsonSerializer
- implements ContextualSerializer
+ extends ValueSerializer
{
/**
* Property that has proxy value to handle
@@ -104,12 +102,12 @@ protected Hibernate6ProxySerializer(Hibernate6ProxySerializer base,
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) {
+ public ValueSerializer> createContextual(SerializationContext prov, BeanProperty property) {
return new Hibernate6ProxySerializer(this, property, _unwrapper);
}
@Override
- public JsonSerializer unwrappingSerializer(final NameTransformer unwrapper) {
+ public ValueSerializer unwrappingSerializer(final NameTransformer unwrapper) {
return new Hibernate6ProxySerializer(this, _property, unwrapper);
}
@@ -121,36 +119,34 @@ public boolean isUnwrappingSerializer()
/*
/**********************************************************************
- /* JsonSerializer impl
+ /* ValueSerializer impl
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, HibernateProxy value) {
+ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
return (value == null) || (findProxied(value) == null);
}
@Override
- public void serialize(HibernateProxy value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(HibernateProxy value, JsonGenerator g, SerializationContext provider)
{
Object proxiedValue = findProxied(value);
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
findSerializer(provider, proxiedValue).serialize(proxiedValue, g, provider);
}
@Override
- public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
Object proxiedValue = findProxied(value);
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
/* This isn't exactly right, since type serializer really refers to proxy
@@ -163,9 +159,9 @@ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerP
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
- SerializerProvider prov = visitor.getProvider();
+ SerializationContext prov = visitor.getContext();
if ((prov == null) || (_property == null)) {
super.acceptJsonFormatVisitor(visitor, typeHint);
} else {
@@ -181,8 +177,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
/**********************************************************************
*/
- protected JsonSerializer findSerializer(SerializerProvider provider, Object value)
- throws IOException
+ protected ValueSerializer findSerializer(SerializationContext provider, Object value)
{
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
* annotations to indicate type, should take that into account.
@@ -196,7 +191,11 @@ protected JsonSerializer findSerializer(SerializerProvider provider, Obj
* really anyone's guess at this point; proxies can exist at any level?
*/
PropertySerializerMap.SerializerAndMapResult result =
- _dynamicSerializers.findAndAddPrimarySerializer(type, provider, _property);
+ _dynamicSerializers.findAndAddPrimarySerializer(
+ //TODO find better way to get JavaType
+ TypeFactory.createDefaultInstance().unsafeSimpleType(type),
+ provider,
+ _property);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
diff --git a/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java
new file mode 100644
index 00000000..759b91c4
--- /dev/null
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6SerializerModifier.java
@@ -0,0 +1,42 @@
+package tools.jackson.datatype.hibernate6;
+
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.ValueSerializerModifier;
+import tools.jackson.databind.type.CollectionType;
+import tools.jackson.databind.type.MapType;
+import org.hibernate.SessionFactory;
+
+public class Hibernate6SerializerModifier
+ extends ValueSerializerModifier
+{
+ protected final int _features;
+
+ protected final SessionFactory _sessionFactory;
+
+ public Hibernate6SerializerModifier(int features, SessionFactory sessionFactory) {
+ _features = features;
+ _sessionFactory = sessionFactory;
+ }
+
+ /*
+ @Override
+ public ValueSerializer> modifySerializer(SerializationConfig config,
+ BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return serializer;
+ }
+ */
+
+ @Override
+ public ValueSerializer> modifyCollectionSerializer(SerializationConfig config,
+ CollectionType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+
+ @Override
+ public ValueSerializer> modifyMapSerializer(SerializationConfig config,
+ MapType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+}
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Serializers.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Serializers.java
similarity index 72%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Serializers.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Serializers.java
index 750179f1..17e63243 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Serializers.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Serializers.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.Serializers;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.Serializers;
import org.hibernate.engine.spi.Mapping;
import org.hibernate.proxy.HibernateProxy;
@@ -30,8 +31,8 @@ public Hibernate6Serializers(Mapping mapping, int features)
}
@Override
- public JsonSerializer> findSerializer(SerializationConfig config,
- JavaType type, BeanDescription beanDesc)
+ public ValueSerializer> findSerializer(SerializationConfig config,
+ JavaType type, BeanDescription.Supplier beanDesc, JsonFormat.Value formatOverrides)
{
Class> raw = type.getRawClass();
if (HibernateProxy.class.isAssignableFrom(raw)) {
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Version.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Version.java
similarity index 95%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Version.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Version.java
index 62150877..fa5f929e 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/Hibernate6Version.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6Version.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
public class Hibernate6Version {
diff --git a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PackageVersion.java.in b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PackageVersion.java.in
similarity index 75%
rename from hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PackageVersion.java.in
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PackageVersion.java.in
index 7860aa14..69b6bdd0 100644
--- a/hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/PackageVersion.java.in
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PackageVersion.java.in
@@ -1,8 +1,8 @@
package @package@;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
-import com.fasterxml.jackson.core.util.VersionUtil;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
+import tools.jackson.core.util.VersionUtil;
/**
* Automatically generated from PackageVersion.java.in during
diff --git a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PersistentCollectionSerializer.java b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PersistentCollectionSerializer.java
similarity index 83%
rename from hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PersistentCollectionSerializer.java
rename to hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PersistentCollectionSerializer.java
index 5c142b9d..8c2dccc1 100644
--- a/hibernate6/src/main/java/com/fasterxml/jackson/datatype/hibernate6/PersistentCollectionSerializer.java
+++ b/hibernate6/src/main/java/tools/jackson/datatype/hibernate6/PersistentCollectionSerializer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.io.IOException;
import java.util.*;
@@ -14,14 +14,12 @@
import org.hibernate.mapping.Bag;
import org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContainerSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.ResolvableSerializer;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.*;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.std.StdContainerSerializer;
+import tools.jackson.databind.util.NameTransformer;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EntityManager;
@@ -37,8 +35,7 @@
* and Map
types (unlike in JDK).
*/
public class PersistentCollectionSerializer
- extends ContainerSerializer
- implements ContextualSerializer, ResolvableSerializer
+ extends StdContainerSerializer
{
private static final long serialVersionUID = 1L;
@@ -56,7 +53,7 @@ public class PersistentCollectionSerializer
* Serializer that does actual value serialization when value
* is available (either already or with forced access).
*/
- protected final JsonSerializer _serializer;
+ protected final ValueSerializer _serializer;
protected final SessionFactory _sessionFactory;
@@ -68,20 +65,20 @@ public class PersistentCollectionSerializer
@SuppressWarnings("unchecked")
public PersistentCollectionSerializer(JavaType containerType,
- JsonSerializer> serializer, int features, SessionFactory sessionFactory) {
- super(containerType);
+ ValueSerializer> serializer, int features, SessionFactory sessionFactory) {
+ super(containerType, null);
_originalType = containerType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = features;
_sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
- protected PersistentCollectionSerializer(PersistentCollectionSerializer base, JsonSerializer> serializer)
+ protected PersistentCollectionSerializer(PersistentCollectionSerializer base, ValueSerializer> serializer)
{
super(base);
_originalType = base._originalType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = base._features;
_sessionFactory = base._sessionFactory;
}
@@ -91,7 +88,7 @@ public PersistentCollectionSerializer unwrappingSerializer(NameTransformer unwra
return _withSerializer(_serializer.unwrappingSerializer(unwrapper));
}
- protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser) {
+ protected PersistentCollectionSerializer _withSerializer(ValueSerializer> ser) {
if ((ser == _serializer) || (ser == null)) {
return this;
}
@@ -100,9 +97,9 @@ protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser)
// from `ContainerSerializer`
@Override
- protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
+ protected StdContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
{
- ContainerSerializer> ser0 = _containerSerializer();
+ StdContainerSerializer> ser0 = _containerSerializer();
if (ser0 != null) {
return _withSerializer(ser0.withValueTypeSerializer(vts));
}
@@ -119,11 +116,9 @@ protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
*/
@Override
- public void resolve(SerializerProvider provider) throws JsonMappingException
+ public void resolve(SerializationContext provider) throws DatabindException
{
- if (_serializer instanceof ResolvableSerializer) {
- ((ResolvableSerializer) _serializer).resolve(provider);
- }
+ _serializer.resolve(provider);
}
/**
@@ -131,13 +126,13 @@ public void resolve(SerializerProvider provider) throws JsonMappingException
* must know type of property being serialized.
*/
@Override
- public JsonSerializer> createContextual(SerializerProvider provider,
+ public ValueSerializer> createContextual(SerializationContext provider,
BeanProperty property)
- throws JsonMappingException
+ throws DatabindException
{
// 18-Oct-2013, tatu: Whether this is for the primary property or secondary is
// not quite certain; presume primary one for now.
- JsonSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
+ ValueSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
// If we use eager loading, can just return underlying serializer as is
if (!usesLazyLoading(property)) {
@@ -148,12 +143,12 @@ public JsonSerializer> createContextual(SerializerProvider provider,
/*
/**********************************************************************
- /* JsonSerializer simple accessors, metadata
+ /* ValueSerializer simple accessors, metadata
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, Object value)
+ public boolean isEmpty(SerializationContext provider, Object value)
{
if (value == null) { // is null ever passed?
return true;
@@ -177,7 +172,7 @@ public boolean usesObjectId() {
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
_serializer.acceptJsonFormatVisitor(visitor, typeHint);
}
@@ -190,7 +185,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
@Override
public JavaType getContentType() {
- ContainerSerializer> ser = _containerSerializer();
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentType();
}
@@ -198,8 +193,8 @@ public JavaType getContentType() {
}
@Override
- public JsonSerializer> getContentSerializer() {
- ContainerSerializer> ser = _containerSerializer();
+ public ValueSerializer> getContentSerializer() {
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentSerializer();
}
@@ -220,23 +215,22 @@ public boolean hasSingleElement(Object value) {
/*
/**********************************************************************
- /* JsonSerializer, actual serialization
+ /* ValueSerializer, actual serialization
/**********************************************************************
*/
@Override
- public void serialize(Object value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(Object value, JsonGenerator g, SerializationContext provider)
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], should NOT have to do anything here;
@@ -245,19 +239,18 @@ public void serialize(Object value, JsonGenerator g, SerializerProvider provider
}
@Override
- public void serializeWithType(Object value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(Object value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], conversion IS needed here (or,
@@ -276,9 +269,9 @@ public void serializeWithType(Object value, JsonGenerator g, SerializerProvider
/**********************************************************************
*/
- protected ContainerSerializer> _containerSerializer() {
- if (_serializer instanceof ContainerSerializer) {
- return (ContainerSerializer>) _serializer;
+ protected StdContainerSerializer> _containerSerializer() {
+ if (_serializer instanceof StdContainerSerializer stdContainerSerializer) {
+ return stdContainerSerializer;
}
return null;
}
diff --git a/hibernate6/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module b/hibernate6/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
index f5c702c7..61621b5e 100644
--- a/hibernate6/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
+++ b/hibernate6/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
@@ -1 +1 @@
-com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module
+tools.jackson.datatype.hibernate6.Hibernate6Module
diff --git a/hibernate6/src/moditect/module-info.java b/hibernate6/src/moditect/module-info.java
index 7d6cc685..168110d9 100644
--- a/hibernate6/src/moditect/module-info.java
+++ b/hibernate6/src/moditect/module-info.java
@@ -1,15 +1,15 @@
-module com.fasterxml.jackson.datatype.hibernate6 {
- requires transitive com.fasterxml.jackson.core;
- requires transitive com.fasterxml.jackson.databind;
+module tools.jackson.datatype.hibernate6 {
+ requires transitive tools.jackson.core;
+ requires transitive tools.jackson.databind;
requires transitive org.hibernate.orm.core;
requires static com.fasterxml.jackson.annotation;
requires static jakarta.activation;
requires static jakarta.persistence;
- exports com.fasterxml.jackson.datatype.hibernate6;
- opens com.fasterxml.jackson.datatype.hibernate6;
+ exports tools.jackson.datatype.hibernate6;
+ opens tools.jackson.datatype.hibernate6;
- provides com.fasterxml.jackson.databind.Module with
- com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module;
+ provides tools.jackson.databind.JacksonModule with
+ tools.jackson.datatype.hibernate6.Hibernate6Module;
}
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/BaseTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/BaseTest.java
similarity index 83%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/BaseTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/BaseTest.java
index 41184422..832a537d 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/BaseTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/BaseTest.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.util.Arrays;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import org.apache.log4j.Logger;
import static org.junit.jupiter.api.Assertions.fail;
@@ -20,9 +20,14 @@ protected BaseTest() {
}
}
+ protected JsonMapper.Builder mapperBuilderWithModule(boolean forceLazyLoading)
+ {
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false));
+ }
+
protected ObjectMapper mapperWithModule(boolean forceLazyLoading)
{
- return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false)).build();
+ return mapperBuilderWithModule(forceLazyLoading).build();
}
protected ObjectMapper mapperWithModule(boolean forceLazyLoading, boolean nullMissingEntities)
@@ -32,7 +37,7 @@ protected ObjectMapper mapperWithModule(boolean forceLazyLoading, boolean nullMi
protected Hibernate6Module hibernateModule(boolean forceLazyLoading)
{
- return hibernateModule(forceLazyLoading, false);
+ return hibernateModule(forceLazyLoading, false);
}
protected Hibernate6Module hibernateModule(boolean forceLazyLoading, boolean nullMissingEntities)
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ForceLazyLoadingTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ForceLazyLoadingTest.java
similarity index 87%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ForceLazyLoadingTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ForceLazyLoadingTest.java
index 60be156d..80c3e2da 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ForceLazyLoadingTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ForceLazyLoadingTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate6;
import java.util.Map;
import java.util.Set;
@@ -11,10 +11,10 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate7.data.Payment;
+import tools.jackson.datatype.hibernate6.data.Customer;
+import tools.jackson.datatype.hibernate6.data.Payment;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.*;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/HibernateTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/HibernateTest.java
similarity index 92%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/HibernateTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/HibernateTest.java
index e5f85871..a2ac6eaa 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/HibernateTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/HibernateTest.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate6;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate7.data.Employee;
+import tools.jackson.datatype.hibernate6.data.Customer;
+import tools.jackson.datatype.hibernate6.data.Employee;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
diff --git a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/InclusionTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/InclusionTest.java
similarity index 61%
rename from hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/InclusionTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/InclusionTest.java
index 77cf2d57..dd60f1a4 100644
--- a/hibernate5/src/test/java/com/fasterxml/jackson/datatype/hibernate5/InclusionTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/InclusionTest.java
@@ -1,11 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate5;
+package tools.jackson.datatype.hibernate6;
import java.util.*;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -21,8 +22,9 @@ static class Mock
@Test
public void testInclusion() throws Exception
{
- final ObjectMapper mapper = mapperWithModule(false);
- mapper.setSerializationInclusion(Include.NON_EMPTY);
+ final JsonMapper.Builder builder = mapperBuilderWithModule(false);
+ builder.changeDefaultPropertyInclusion(inc -> inc.withValueInclusion(Include.NON_EMPTY));
+ ObjectMapper mapper = builder.build();
String json = mapper.writeValueAsString(new Mock());
assertEquals("{\"id\":13}", json);
}
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/LazyLoadingTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/LazyLoadingTest.java
similarity index 81%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/LazyLoadingTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/LazyLoadingTest.java
index 1147afe4..0a275daf 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/LazyLoadingTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/LazyLoadingTest.java
@@ -1,17 +1,18 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.util.Map;
import java.util.Set;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate6.data.Payment;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.datatype.hibernate6.data.Customer;
+import tools.jackson.datatype.hibernate6.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module.Feature;
+import tools.jackson.core.JacksonException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate6.Hibernate6Module.Feature;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -64,10 +65,13 @@ public void testGetCustomerJson() throws Exception
}
@Test
- public void testSerializeIdentifierFeature() throws JsonProcessingException {
+ public void testSerializeIdentifierFeature() throws JacksonException {
Hibernate6Module module = new Hibernate6Module();
module.enable(Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS);
- ObjectMapper objectMapper = new ObjectMapper().registerModule(module);
+ ObjectMapper objectMapper =
+ JsonMapper.builder()
+ .addModule(module)
+ .build();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java
similarity index 88%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java
index c5c61ef6..f9b4ac26 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/MissingEntitiesAsNullTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/MissingEntitiesAsNullTest.java
@@ -1,17 +1,18 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate6;
import java.util.Map;
+import tools.jackson.datatype.hibernate6.data.Customer;
import org.hibernate.Hibernate;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer;
+import org.junit.jupiter.api.Test;
+
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
-import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -70,7 +71,7 @@ public void testProductWithValidForeignKey() throws Exception {
}
// caused by jakarta.persistence.EntityNotFoundException: Unable to find
- // com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Product with id X10_1678
+ // tools.jackson.datatype.hibernate6.data.Product with id X10_1678
@Test
public void testExceptionWithInvalidForeignKey() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
@@ -89,8 +90,8 @@ public void testExceptionWithInvalidForeignKey() throws Exception {
// JUnit 3.8
fail("Expected EntityNotFoundException exception");
- } catch (JsonMappingException e) {
- assertEquals("Unable to find com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Product with id X10_1678", e.getCause().getMessage());
+ } catch (DatabindException e) {
+ assertEquals("Unable to find tools.jackson.datatype.hibernate6.data.Product with id X10_1678", e.getCause().getMessage());
} finally {
emf.close();
}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/OneToManyTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/OneToManyTest.java
similarity index 84%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/OneToManyTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/OneToManyTest.java
index e660d3ee..a00cf5a1 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/OneToManyTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/OneToManyTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate6;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -7,7 +7,8 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,7 +44,7 @@ public void testMapWithOneToMany() throws Exception {
}
private String mapWithHibernateModule(Object object) throws Exception {
- return new ObjectMapper().registerModule(new Hibernate7Module()).writeValueAsString(object);
+ return JsonMapper.builder().addModule(new Hibernate6Module()).build().writeValueAsString(object);
}
private String mapWithoutHibernateModule(Object object) throws Exception {
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/Polymorphic81Test.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/Polymorphic81Test.java
similarity index 96%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/Polymorphic81Test.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/Polymorphic81Test.java
index 71c3d0f5..90287050 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/Polymorphic81Test.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/Polymorphic81Test.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.util.ArrayList;
import java.util.List;
@@ -8,7 +8,7 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java
similarity index 83%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java
index 6ec6eccc..7eb2c9f9 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/ReplacePersistentCollectionTest.java
@@ -1,19 +1,20 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.util.Set;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate6.data.Payment;
+import tools.jackson.datatype.hibernate6.data.Customer;
+import tools.jackson.datatype.hibernate6.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
-import com.fasterxml.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.DefaultTyping;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.jsontype.DefaultBaseTypeLimitingValidator;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -57,7 +58,7 @@ public void testNoReplacePersistentCollection() throws Exception {
try {
/*Customer result =*/ mapper.readValue(json, Customer.class);
fail("Should throw exception");
- } catch (JsonMappingException e) {
+ } catch (DatabindException e) {
verifyException(e, "failed to lazily initialize");
}
}
@@ -91,7 +92,7 @@ public void testReplacePersistentCollection() throws Exception {
private ObjectMapper hibernateMapper(Hibernate6Module module) {
return JsonMapper.builder()
.addModule(module)
- .build()
- .enableDefaultTyping(DefaultTyping.NON_FINAL);
+ .activateDefaultTyping(new DefaultBaseTypeLimitingValidator(), DefaultTyping.NON_FINAL)
+ .build();
}
}
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestMaps.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestMaps.java
similarity index 83%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestMaps.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestMaps.java
index fcd950aa..d3c9e156 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestMaps.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestMaps.java
@@ -1,11 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestVersions.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestVersions.java
similarity index 80%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestVersions.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestVersions.java
index bbbb0b82..eccc64d3 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TestVersions.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TestVersions.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TransientTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TransientTest.java
similarity index 85%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TransientTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TransientTest.java
index e833c33d..91251372 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/TransientTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/TransientTest.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.Transient;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -37,7 +38,7 @@ public void testSimpleTransient() throws Exception
// and then with Transient disabled
Hibernate6Module mod = hibernateModule(false);
mod.disable(Hibernate6Module.Feature.USE_TRANSIENT_ANNOTATION);
- mapper = new ObjectMapper().registerModule(mod);
+ mapper = JsonMapper.builder().addModule(mod).build();
assertEquals(aposToQuotes("{'a':1,'b':2}"), mapper.writeValueAsString(new WithTransient()));
}
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/UnwrappedTest.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/UnwrappedTest.java
similarity index 80%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/UnwrappedTest.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/UnwrappedTest.java
index 79797a87..38497110 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/UnwrappedTest.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/UnwrappedTest.java
@@ -1,14 +1,14 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate6;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate6.data.Product;
+import tools.jackson.datatype.hibernate6.data.Customer;
+import tools.jackson.datatype.hibernate6.data.Product;
import org.hibernate.Hibernate;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -40,7 +40,7 @@ public T getContent()
}
@Test
- public void testSimpleUnwrapped() throws JsonProcessingException
+ public void testSimpleUnwrapped() throws JacksonException
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Customer.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Customer.java
similarity index 99%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Customer.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Customer.java
index 924196f8..607668d8 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Customer.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Customer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate6.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Employee.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Employee.java
similarity index 98%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Employee.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Employee.java
index 12332dcc..b8b10fe0 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Employee.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Employee.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Office.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Office.java
similarity index 98%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Office.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Office.java
index acae8ad4..97b38994 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Office.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Office.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import java.util.HashSet;
import java.util.Set;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Order.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Order.java
similarity index 98%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Order.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Order.java
index b97299e9..54dde7bb 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Order.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Order.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate6.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetail.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetail.java
similarity index 98%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetail.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetail.java
index b144e812..e1b03157 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetail.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetail.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetailId.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetailId.java
similarity index 97%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetailId.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetailId.java
index 9664c979..a453769f 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/OrderDetailId.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/OrderDetailId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Payment.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Payment.java
similarity index 97%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Payment.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Payment.java
index c044a9ba..ee165b35 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/Payment.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Payment.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import java.util.Date;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/PaymentId.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/PaymentId.java
similarity index 97%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/PaymentId.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/PaymentId.java
index 0bf02c31..5d147311 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/data/PaymentId.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/PaymentId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6.data;
+package tools.jackson.datatype.hibernate6.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Product.java b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Product.java
similarity index 98%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Product.java
rename to hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Product.java
index d56e1a53..fa8492d1 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/data/Product.java
+++ b/hibernate6/src/test/java/tools/jackson/datatype/hibernate6/data/Product.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7.data;
+package tools.jackson.datatype.hibernate6.data;
import java.util.HashSet;
diff --git a/hibernate6/src/test/resources/META-INF/persistence.xml b/hibernate6/src/test/resources/META-INF/persistence.xml
index 94b66dbc..5c21540e 100644
--- a/hibernate6/src/test/resources/META-INF/persistence.xml
+++ b/hibernate6/src/test/resources/META-INF/persistence.xml
@@ -6,15 +6,15 @@
org.hibernate.jpa.HibernatePersistenceProvider
- data.com.fasterxml.jackson.datatype.hibernate6.Customer
- data.com.fasterxml.jackson.datatype.hibernate6.Employee
- data.com.fasterxml.jackson.datatype.hibernate6.Office
- data.com.fasterxml.jackson.datatype.hibernate6.Order
- data.com.fasterxml.jackson.datatype.hibernate6.OrderDetail
- data.com.fasterxml.jackson.datatype.hibernate6.OrderDetailId
- data.com.fasterxml.jackson.datatype.hibernate6.Payment
- data.com.fasterxml.jackson.datatype.hibernate6.PaymentId
- data.com.fasterxml.jackson.datatype.hibernate6.Product
+ data.tools.jackson.datatype.hibernate6.Customer
+ data.tools.jackson.datatype.hibernate6.Employee
+ data.tools.jackson.datatype.hibernate6.Office
+ data.tools.jackson.datatype.hibernate6.Order
+ data.tools.jackson.datatype.hibernate6.OrderDetail
+ data.tools.jackson.datatype.hibernate6.OrderDetailId
+ data.tools.jackson.datatype.hibernate6.Payment
+ data.tools.jackson.datatype.hibernate6.PaymentId
+ data.tools.jackson.datatype.hibernate6.Product
diff --git a/hibernate7/pom.xml b/hibernate7/pom.xml
index 696fe3a4..f600d076 100644
--- a/hibernate7/pom.xml
+++ b/hibernate7/pom.xml
@@ -6,9 +6,9 @@
4.0.0
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate-parent
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
jackson-datatype-hibernate7
Jackson-datatype-hibernate7
@@ -19,7 +19,7 @@ Hibernate (https://hibernate.org/) version 7.x with Jakarta data types.
https://github.com/FasterXML/jackson-datatype-hibernate
- com/fasterxml/jackson/datatype/hibernate7
+ tools/jackson/datatype/hibernate7
${project.groupId}.hibernate7
7.0.3.Final
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java b/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java
deleted file mode 100644
index 1c1b12f4..00000000
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate7;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
-import com.fasterxml.jackson.databind.type.CollectionType;
-import com.fasterxml.jackson.databind.type.MapType;
-import org.hibernate.SessionFactory;
-
-public class Hibernate7SerializerModifier
- extends BeanSerializerModifier
-{
- protected final int _features;
-
- protected final SessionFactory _sessionFactory;
-
- public Hibernate7SerializerModifier(int features, SessionFactory sessionFactory) {
- _features = features;
- _sessionFactory = sessionFactory;
- }
-
- @Override
- public JsonSerializer> modifyCollectionSerializer(SerializationConfig config,
- CollectionType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-
- @Override
- public JsonSerializer> modifyMapSerializer(SerializationConfig config,
- MapType valueType, BeanDescription beanDesc, JsonSerializer> serializer) {
- return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
- }
-}
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PackageVersion.java.in b/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PackageVersion.java.in
deleted file mode 100644
index 7860aa14..00000000
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PackageVersion.java.in
+++ /dev/null
@@ -1,20 +0,0 @@
-package @package@;
-
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
-import com.fasterxml.jackson.core.util.VersionUtil;
-
-/**
- * Automatically generated from PackageVersion.java.in during
- * packageVersion-generate execution of maven-replacer-plugin in
- * pom.xml.
- */
-public final class PackageVersion implements Versioned {
- public final static Version VERSION = VersionUtil.parseVersion(
- "@projectversion@", "@projectgroupid@", "@projectartifactid@");
-
- @Override
- public Version version() {
- return VERSION;
- }
-}
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java
similarity index 87%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java
index c5a8e766..23f4db9f 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7AnnotationIntrospector.java
@@ -1,9 +1,10 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
+import tools.jackson.databind.cfg.MapperConfig;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedMember;
import jakarta.persistence.Transient;
/**
@@ -64,12 +65,12 @@ public Version version() {
*/
@Override
- public boolean hasIgnoreMarker(AnnotatedMember m) {
+ public boolean hasIgnoreMarker(MapperConfig> config, AnnotatedMember m) {
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
}
@Override
- public Boolean isIgnorableType(AnnotatedClass ac)
+ public Boolean isIgnorableType(MapperConfig> config, AnnotatedClass ac)
{
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Module.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Module.java
similarity index 95%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Module.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Module.java
index 0e33840d..c6dc9eb3 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Module.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Module.java
@@ -1,12 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import org.hibernate.SessionFactory;
import org.hibernate.type.MappingContext;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.AnnotationIntrospector;
+import tools.jackson.core.Version;
+import tools.jackson.databind.AnnotationIntrospector;
-public class Hibernate7Module extends com.fasterxml.jackson.databind.Module
+public class Hibernate7Module extends tools.jackson.databind.JacksonModule
{
/**
* Enumeration that defines all toggleable features this module
@@ -180,7 +180,7 @@ public void setupModule(SetupContext context)
context.appendAnnotationIntrospector(ai);
}
context.addSerializers(new Hibernate7Serializers(_mapping, _moduleFeatures));
- context.addBeanSerializerModifier(new Hibernate7SerializerModifier(_moduleFeatures, _sessionFactory));
+ context.addSerializerModifier(new Hibernate7SerializerModifier(_moduleFeatures, _sessionFactory));
}
/**
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java
similarity index 86%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java
index 17ff8c90..5250616a 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java
@@ -1,7 +1,6 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import java.beans.Introspector;
-import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -11,17 +10,17 @@
import org.hibernate.proxy.pojo.BasicLazyInitializer;
import org.hibernate.type.MappingContext;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.BeanProperty;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.impl.PropertySerializerMap;
+import tools.jackson.databind.type.TypeFactory;
+import tools.jackson.databind.util.NameTransformer;
import jakarta.persistence.EntityNotFoundException;
@@ -35,8 +34,7 @@
* this one) have.
*/
public class Hibernate7ProxySerializer
- extends JsonSerializer
- implements ContextualSerializer
+ extends ValueSerializer
{
/**
* Property that has proxy value to handle
@@ -102,12 +100,12 @@ protected Hibernate7ProxySerializer(Hibernate7ProxySerializer base,
}
@Override
- public JsonSerializer> createContextual(SerializerProvider prov, BeanProperty property) {
+ public ValueSerializer> createContextual(SerializationContext prov, BeanProperty property) {
return new Hibernate7ProxySerializer(this, property, _unwrapper);
}
@Override
- public JsonSerializer unwrappingSerializer(final NameTransformer unwrapper) {
+ public ValueSerializer unwrappingSerializer(final NameTransformer unwrapper) {
return new Hibernate7ProxySerializer(this, _property, unwrapper);
}
@@ -119,36 +117,34 @@ public boolean isUnwrappingSerializer()
/*
/**********************************************************************
- /* JsonSerializer impl
+ /* ValueSerializer impl
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, HibernateProxy value) {
+ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
return (value == null) || (findProxied(value) == null);
}
@Override
- public void serialize(HibernateProxy value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(HibernateProxy value, JsonGenerator g, SerializationContext provider)
{
Object proxiedValue = findProxied(value);
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
findSerializer(provider, proxiedValue).serialize(proxiedValue, g, provider);
}
@Override
- public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
Object proxiedValue = findProxied(value);
if (proxiedValue == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
/* This isn't exactly right, since type serializer really refers to proxy
@@ -161,9 +157,9 @@ public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializerP
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
- SerializerProvider prov = visitor.getProvider();
+ SerializationContext prov = visitor.getContext();
if ((prov == null) || (_property == null)) {
super.acceptJsonFormatVisitor(visitor, typeHint);
} else {
@@ -179,8 +175,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
/**********************************************************************
*/
- protected JsonSerializer findSerializer(SerializerProvider provider, Object value)
- throws IOException
+ protected ValueSerializer findSerializer(SerializationContext provider, Object value)
{
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
* annotations to indicate type, should take that into account.
@@ -194,7 +189,11 @@ protected JsonSerializer findSerializer(SerializerProvider provider, Obj
* really anyone's guess at this point; proxies can exist at any level?
*/
PropertySerializerMap.SerializerAndMapResult result =
- _dynamicSerializers.findAndAddPrimarySerializer(type, provider, _property);
+ _dynamicSerializers.findAndAddPrimarySerializer(
+ //TODO find better way to get JavaType
+ TypeFactory.createDefaultInstance().unsafeSimpleType(type),
+ provider,
+ _property);
if (_dynamicSerializers != result.map) {
_dynamicSerializers = result.map;
}
diff --git a/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java
new file mode 100644
index 00000000..cd377d33
--- /dev/null
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7SerializerModifier.java
@@ -0,0 +1,34 @@
+package tools.jackson.datatype.hibernate7;
+
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.ValueSerializerModifier;
+import tools.jackson.databind.type.CollectionType;
+import tools.jackson.databind.type.MapType;
+import org.hibernate.SessionFactory;
+
+public class Hibernate7SerializerModifier
+ extends ValueSerializerModifier
+{
+ protected final int _features;
+
+ protected final SessionFactory _sessionFactory;
+
+ public Hibernate7SerializerModifier(int features, SessionFactory sessionFactory) {
+ _features = features;
+ _sessionFactory = sessionFactory;
+ }
+
+ @Override
+ public ValueSerializer> modifyCollectionSerializer(SerializationConfig config,
+ CollectionType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+
+ @Override
+ public ValueSerializer> modifyMapSerializer(SerializationConfig config,
+ MapType valueType, BeanDescription.Supplier beanDesc, ValueSerializer> serializer) {
+ return new PersistentCollectionSerializer(valueType, serializer, _features, _sessionFactory);
+ }
+}
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Serializers.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Serializers.java
similarity index 72%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Serializers.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Serializers.java
index f6414576..d4e89721 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Serializers.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Serializers.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.Serializers;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ser.Serializers;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.type.MappingContext;
@@ -30,8 +31,8 @@ public Hibernate7Serializers(MappingContext mapping, int features)
}
@Override
- public JsonSerializer> findSerializer(SerializationConfig config,
- JavaType type, BeanDescription beanDesc)
+ public ValueSerializer> findSerializer(SerializationConfig config,
+ JavaType type, BeanDescription.Supplier beanDesc, JsonFormat.Value formatOverrides)
{
Class> raw = type.getRawClass();
if (HibernateProxy.class.isAssignableFrom(raw)) {
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Version.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Version.java
similarity index 95%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Version.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Version.java
index a84c3568..39e835f9 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/Hibernate7Version.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7Version.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
public class Hibernate7Version {
diff --git a/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PackageVersion.java.in b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PackageVersion.java.in
new file mode 100644
index 00000000..69b6bdd0
--- /dev/null
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PackageVersion.java.in
@@ -0,0 +1,20 @@
+package @package@;
+
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
+import tools.jackson.core.util.VersionUtil;
+
+/**
+ * Automatically generated from PackageVersion.java.in during
+ * packageVersion-generate execution of maven-replacer-plugin in
+ * pom.xml.
+ */
+public final class PackageVersion implements Versioned {
+ public final static Version VERSION = VersionUtil.parseVersion(
+ "@projectversion@", "@projectgroupid@", "@projectartifactid@");
+
+ @Override
+ public Version version() {
+ return VERSION;
+ }
+}
diff --git a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PersistentCollectionSerializer.java b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PersistentCollectionSerializer.java
similarity index 83%
rename from hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PersistentCollectionSerializer.java
rename to hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PersistentCollectionSerializer.java
index 39d605e7..48b93710 100644
--- a/hibernate7/src/main/java/com/fasterxml/jackson/datatype/hibernate7/PersistentCollectionSerializer.java
+++ b/hibernate7/src/main/java/tools/jackson/datatype/hibernate7/PersistentCollectionSerializer.java
@@ -1,6 +1,5 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
-import java.io.IOException;
import java.util.*;
import org.hibernate.FlushMode;
@@ -14,14 +13,12 @@
import org.hibernate.mapping.Bag;
import org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.*;
-import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
-import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
-import com.fasterxml.jackson.databind.ser.ContainerSerializer;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-import com.fasterxml.jackson.databind.ser.ResolvableSerializer;
-import com.fasterxml.jackson.databind.util.NameTransformer;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.databind.*;
+import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
+import tools.jackson.databind.jsontype.TypeSerializer;
+import tools.jackson.databind.ser.std.StdContainerSerializer;
+import tools.jackson.databind.util.NameTransformer;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.EntityManager;
@@ -37,8 +34,7 @@
* and Map
types (unlike in JDK).
*/
public class PersistentCollectionSerializer
- extends ContainerSerializer
- implements ContextualSerializer, ResolvableSerializer
+ extends StdContainerSerializer
{
private static final long serialVersionUID = 1L;
@@ -56,7 +52,7 @@ public class PersistentCollectionSerializer
* Serializer that does actual value serialization when value
* is available (either already or with forced access).
*/
- protected final JsonSerializer _serializer;
+ protected final ValueSerializer _serializer;
protected final SessionFactory _sessionFactory;
@@ -68,20 +64,20 @@ public class PersistentCollectionSerializer
@SuppressWarnings("unchecked")
public PersistentCollectionSerializer(JavaType containerType,
- JsonSerializer> serializer, int features, SessionFactory sessionFactory) {
- super(containerType);
+ ValueSerializer> serializer, int features, SessionFactory sessionFactory) {
+ super(containerType, null);
_originalType = containerType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = features;
_sessionFactory = sessionFactory;
}
@SuppressWarnings("unchecked")
- protected PersistentCollectionSerializer(PersistentCollectionSerializer base, JsonSerializer> serializer)
+ protected PersistentCollectionSerializer(PersistentCollectionSerializer base, ValueSerializer> serializer)
{
super(base);
_originalType = base._originalType;
- _serializer = (JsonSerializer) serializer;
+ _serializer = (ValueSerializer) serializer;
_features = base._features;
_sessionFactory = base._sessionFactory;
}
@@ -91,7 +87,7 @@ public PersistentCollectionSerializer unwrappingSerializer(NameTransformer unwra
return _withSerializer(_serializer.unwrappingSerializer(unwrapper));
}
- protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser) {
+ protected PersistentCollectionSerializer _withSerializer(ValueSerializer> ser) {
if ((ser == _serializer) || (ser == null)) {
return this;
}
@@ -100,9 +96,9 @@ protected PersistentCollectionSerializer _withSerializer(JsonSerializer> ser)
// from `ContainerSerializer`
@Override
- protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
+ protected StdContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
{
- ContainerSerializer> ser0 = _containerSerializer();
+ StdContainerSerializer> ser0 = _containerSerializer();
if (ser0 != null) {
return _withSerializer(ser0.withValueTypeSerializer(vts));
}
@@ -119,11 +115,9 @@ protected ContainerSerializer> _withValueTypeSerializer(TypeSerializer vts)
*/
@Override
- public void resolve(SerializerProvider provider) throws JsonMappingException
+ public void resolve(SerializationContext provider) throws DatabindException
{
- if (_serializer instanceof ResolvableSerializer) {
- ((ResolvableSerializer) _serializer).resolve(provider);
- }
+ _serializer.resolve(provider);
}
/**
@@ -131,13 +125,13 @@ public void resolve(SerializerProvider provider) throws JsonMappingException
* must know type of property being serialized.
*/
@Override
- public JsonSerializer> createContextual(SerializerProvider provider,
+ public ValueSerializer> createContextual(SerializationContext provider,
BeanProperty property)
- throws JsonMappingException
+ throws DatabindException
{
// 18-Oct-2013, tatu: Whether this is for the primary property or secondary is
// not quite certain; presume primary one for now.
- JsonSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
+ ValueSerializer> ser = provider.handlePrimaryContextualization(_serializer, property);
// If we use eager loading, can just return underlying serializer as is
if (!usesLazyLoading(property)) {
@@ -148,12 +142,12 @@ public JsonSerializer> createContextual(SerializerProvider provider,
/*
/**********************************************************************
- /* JsonSerializer simple accessors, metadata
+ /* ValueSerializer simple accessors, metadata
/**********************************************************************
*/
@Override
- public boolean isEmpty(SerializerProvider provider, Object value)
+ public boolean isEmpty(SerializationContext provider, Object value)
{
if (value == null) { // is null ever passed?
return true;
@@ -177,7 +171,7 @@ public boolean usesObjectId() {
@Override
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
- throws JsonMappingException
+ throws DatabindException
{
_serializer.acceptJsonFormatVisitor(visitor, typeHint);
}
@@ -190,7 +184,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
@Override
public JavaType getContentType() {
- ContainerSerializer> ser = _containerSerializer();
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentType();
}
@@ -198,8 +192,8 @@ public JavaType getContentType() {
}
@Override
- public JsonSerializer> getContentSerializer() {
- ContainerSerializer> ser = _containerSerializer();
+ public ValueSerializer> getContentSerializer() {
+ StdContainerSerializer> ser = _containerSerializer();
if (ser != null) {
return ser.getContentSerializer();
}
@@ -218,25 +212,25 @@ public boolean hasSingleElement(Object value) {
return false;
}
+
/*
/**********************************************************************
- /* JsonSerializer, actual serialization
+ /* ValueSerializer, actual serialization
/**********************************************************************
*/
@Override
- public void serialize(Object value, JsonGenerator g, SerializerProvider provider)
- throws IOException
+ public void serialize(Object value, JsonGenerator g, SerializationContext provider)
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], should NOT have to do anything here;
@@ -245,19 +239,18 @@ public void serialize(Object value, JsonGenerator g, SerializerProvider provider
}
@Override
- public void serializeWithType(Object value, JsonGenerator g, SerializerProvider provider,
+ public void serializeWithType(Object value, JsonGenerator g, SerializationContext provider,
TypeSerializer typeSer)
- throws IOException
{
if (value instanceof PersistentCollection) {
value = findLazyValue((PersistentCollection) value);
if (value == null) {
- provider.defaultSerializeNull(g);
+ provider.defaultSerializeNullValue(g);
return;
}
}
if (_serializer == null) { // sanity check...
- throw JsonMappingException.from(g, "PersistentCollection does not have serializer set");
+ throw DatabindException.from(g, "PersistentCollection does not have serializer set");
}
// 30-Jul-2016, tatu: wrt [datatype-hibernate#93], conversion IS needed here (or,
@@ -276,9 +269,9 @@ public void serializeWithType(Object value, JsonGenerator g, SerializerProvider
/**********************************************************************
*/
- protected ContainerSerializer> _containerSerializer() {
- if (_serializer instanceof ContainerSerializer) {
- return (ContainerSerializer>) _serializer;
+ protected StdContainerSerializer> _containerSerializer() {
+ if (_serializer instanceof StdContainerSerializer stdContainerSerializer) {
+ return stdContainerSerializer;
}
return null;
}
diff --git a/hibernate7/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module b/hibernate7/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
index 7cafd375..1c10bab1 100644
--- a/hibernate7/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
+++ b/hibernate7/src/main/resources/META-INF/services/com.fasterxml.jackson.databind.Module
@@ -1 +1 @@
-com.fasterxml.jackson.datatype.hibernate7.Hibernate7Module
+tools.jackson.datatype.hibernate7.Hibernate7Module
diff --git a/hibernate7/src/moditect/module-info.java b/hibernate7/src/moditect/module-info.java
index c18a556f..3909144a 100644
--- a/hibernate7/src/moditect/module-info.java
+++ b/hibernate7/src/moditect/module-info.java
@@ -1,15 +1,15 @@
-module com.fasterxml.jackson.datatype.hibernate7 {
- requires transitive com.fasterxml.jackson.core;
- requires transitive com.fasterxml.jackson.databind;
+module tools.jackson.datatype.hibernate7 {
+ requires transitive tools.jackson.core;
+ requires transitive tools.jackson.databind;
requires transitive org.hibernate.orm.core;
- requires static com.fasterxml.jackson.annotation;
+ requires static tools.jackson.annotation;
requires static jakarta.activation;
requires static jakarta.persistence;
- exports com.fasterxml.jackson.datatype.hibernate7;
- opens com.fasterxml.jackson.datatype.hibernate7;
+ exports tools.jackson.datatype.hibernate7;
+ opens tools.jackson.datatype.hibernate7;
- provides com.fasterxml.jackson.databind.Module with
- com.fasterxml.jackson.datatype.hibernate7.Hibernate7Module;
+ provides tools.jackson.databind.JacksonModule with
+ tools.jackson.datatype.hibernate7.Hibernate7Module;
}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/InclusionTest.java b/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/InclusionTest.java
deleted file mode 100644
index 242ddb02..00000000
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/InclusionTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.fasterxml.jackson.datatype.hibernate7;
-
-import java.util.*;
-
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class InclusionTest extends BaseTest
-{
- static class Mock
- {
- public long id = 13;
- public Set mocks = new LinkedHashSet();
- }
-
- // [hibernate#65]
- @Test
- public void testInclusion() throws Exception
- {
- final ObjectMapper mapper = mapperWithModule(false);
- mapper.setSerializationInclusion(Include.NON_EMPTY);
- String json = mapper.writeValueAsString(new Mock());
- assertEquals("{\"id\":13}", json);
- }
-}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/BaseTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/BaseTest.java
similarity index 86%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/BaseTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/BaseTest.java
index 48a0fe9f..48fa1c98 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/BaseTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/BaseTest.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import java.util.Arrays;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import org.apache.log4j.Logger;
import static org.junit.jupiter.api.Assertions.fail;
@@ -20,9 +20,14 @@ protected BaseTest() {
}
}
+ protected JsonMapper.Builder mapperBuilderWithModule(boolean forceLazyLoading)
+ {
+ return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false));
+ }
+
protected ObjectMapper mapperWithModule(boolean forceLazyLoading)
{
- return JsonMapper.builder().addModule(hibernateModule(forceLazyLoading, false)).build();
+ return mapperBuilderWithModule(forceLazyLoading).build();
}
protected ObjectMapper mapperWithModule(boolean forceLazyLoading, boolean nullMissingEntities)
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ForceLazyLoadingTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ForceLazyLoadingTest.java
similarity index 87%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ForceLazyLoadingTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ForceLazyLoadingTest.java
index fe0a4ea2..e7751e87 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/ForceLazyLoadingTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ForceLazyLoadingTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate7;
import java.util.Map;
import java.util.Set;
@@ -11,10 +11,10 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate6.data.Payment;
+import tools.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Payment;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.*;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/HibernateTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/HibernateTest.java
similarity index 92%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/HibernateTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/HibernateTest.java
index d57b8352..0dd31c24 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/HibernateTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/HibernateTest.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate7;
-import com.fasterxml.jackson.datatype.hibernate6.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate6.data.Employee;
+import tools.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Employee;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/InclusionTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/InclusionTest.java
similarity index 61%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/InclusionTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/InclusionTest.java
index 14ec7f22..45dee0fa 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/InclusionTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/InclusionTest.java
@@ -1,11 +1,12 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate7;
import java.util.*;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -21,8 +22,9 @@ static class Mock
@Test
public void testInclusion() throws Exception
{
- final ObjectMapper mapper = mapperWithModule(false);
- mapper.setSerializationInclusion(Include.NON_EMPTY);
+ final JsonMapper.Builder builder = mapperBuilderWithModule(false);
+ builder.changeDefaultPropertyInclusion(inc -> inc.withValueInclusion(Include.NON_EMPTY));
+ ObjectMapper mapper = builder.build();
String json = mapper.writeValueAsString(new Mock());
assertEquals("{\"id\":13}", json);
}
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/LazyLoadingTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/LazyLoadingTest.java
similarity index 81%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/LazyLoadingTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/LazyLoadingTest.java
index 387469d1..e91529f3 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/LazyLoadingTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/LazyLoadingTest.java
@@ -1,17 +1,18 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import java.util.Map;
import java.util.Set;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate7.data.Payment;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate7.Hibernate7Module.Feature;
+import tools.jackson.core.JacksonException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.datatype.hibernate7.Hibernate7Module.Feature;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -64,10 +65,13 @@ public void testGetCustomerJson() throws Exception
}
@Test
- public void testSerializeIdentifierFeature() throws JsonProcessingException {
+ public void testSerializeIdentifierFeature() throws JacksonException {
Hibernate7Module module = new Hibernate7Module();
module.enable(Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS);
- ObjectMapper objectMapper = new ObjectMapper().registerModule(module);
+ ObjectMapper objectMapper =
+ JsonMapper.builder()
+ .addModule(module)
+ .build();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java
similarity index 90%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java
index 9f7a5fcf..6aa37f18 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/MissingEntitiesAsNullTest.java
@@ -1,14 +1,14 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import java.util.Map;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Customer;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
@@ -71,7 +71,7 @@ public void testProductWithValidForeignKey() throws Exception {
}
// caused by jakarta.persistence.EntityNotFoundException: Unable to find
- // com.fasterxml.jackson.datatype.hibernate7.data.Product with id X10_1678
+ // tools.jackson.datatype.hibernate7.data.Product with id X10_1678
@Test
public void testExceptionWithInvalidForeignKey() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
@@ -90,8 +90,8 @@ public void testExceptionWithInvalidForeignKey() throws Exception {
// JUnit 3.8
fail("Expected EntityNotFoundException exception");
- } catch (JsonMappingException e) {
- assertEquals("No row with the given identifier exists for entity [com.fasterxml.jackson.datatype.hibernate7.data.Product with id 'X10_1678']",
+ } catch (DatabindException e) {
+ assertEquals("No row with the given identifier exists for entity [tools.jackson.datatype.hibernate7.data.Product with id 'X10_1678']",
e.getCause().getMessage());
} finally {
emf.close();
diff --git a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/OneToManyTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/OneToManyTest.java
similarity index 82%
rename from hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/OneToManyTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/OneToManyTest.java
index e9c71f16..06f8d3bc 100644
--- a/hibernate6/src/test/java/com/fasterxml/jackson/datatype/hibernate6/OneToManyTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/OneToManyTest.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate6;
+package tools.jackson.datatype.hibernate7;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -7,7 +7,8 @@
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,7 +44,10 @@ public void testMapWithOneToMany() throws Exception {
}
private String mapWithHibernateModule(Object object) throws Exception {
- return new ObjectMapper().registerModule(new Hibernate6Module()).writeValueAsString(object);
+ return JsonMapper.builder()
+ .addModule(new Hibernate7Module())
+ .build()
+ .writeValueAsString(object);
}
private String mapWithoutHibernateModule(Object object) throws Exception {
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/Polymorphic81Test.java
similarity index 95%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/Polymorphic81Test.java
index 2d9ff09b..b18a7e31 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/Polymorphic81Test.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/Polymorphic81Test.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate7;
import java.util.ArrayList;
import java.util.List;
@@ -8,7 +8,7 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java
similarity index 83%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java
index 9d753dbc..1c895046 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/ReplacePersistentCollectionTest.java
@@ -1,20 +1,20 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import java.util.Set;
-import com.fasterxml.jackson.datatype.hibernate7.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate7.data.Payment;
+import tools.jackson.databind.DefaultTyping;
+import tools.jackson.databind.DatabindException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.jsontype.DefaultBaseTypeLimitingValidator;
+import tools.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Payment;
import org.hibernate.Hibernate;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
-import com.fasterxml.jackson.databind.json.JsonMapper;
-
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
@@ -57,7 +57,7 @@ public void testNoReplacePersistentCollection() throws Exception {
try {
/*Customer result =*/ mapper.readValue(json, Customer.class);
fail("Should throw exception");
- } catch (JsonMappingException e) {
+ } catch (DatabindException e) {
verifyException(e, "failed to lazily initialize");
}
}
@@ -91,7 +91,7 @@ public void testReplacePersistentCollection() throws Exception {
private ObjectMapper hibernateMapper(Hibernate7Module module) {
return JsonMapper.builder()
.addModule(module)
- .build()
- .enableDefaultTyping(DefaultTyping.NON_FINAL);
+ .activateDefaultTyping(new DefaultBaseTypeLimitingValidator(), DefaultTyping.NON_FINAL)
+ .build();
}
}
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestMaps.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestMaps.java
similarity index 82%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestMaps.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestMaps.java
index 87450d3d..a79a1771 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/TestMaps.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestMaps.java
@@ -1,11 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate7;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestVersions.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestVersions.java
similarity index 80%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestVersions.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestVersions.java
index f35eda40..24935009 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TestVersions.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TestVersions.java
@@ -1,9 +1,9 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.core.Versioned;
+import tools.jackson.core.Version;
+import tools.jackson.core.Versioned;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TransientTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TransientTest.java
similarity index 85%
rename from hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TransientTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TransientTest.java
index 6c86bc2f..a9ebc076 100644
--- a/hibernate7/src/test/java/com/fasterxml/jackson/datatype/hibernate7/TransientTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/TransientTest.java
@@ -1,10 +1,11 @@
-package com.fasterxml.jackson.datatype.hibernate7;
+package tools.jackson.datatype.hibernate7;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.Transient;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.json.JsonMapper;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -37,7 +38,7 @@ public void testSimpleTransient() throws Exception
// and then with Transient disabled
Hibernate7Module mod = hibernateModule(false);
mod.disable(Hibernate7Module.Feature.USE_TRANSIENT_ANNOTATION);
- mapper = new ObjectMapper().registerModule(mod);
+ mapper = JsonMapper.builder().addModule(mod).build();
assertEquals(aposToQuotes("{'a':1,'b':2}"), mapper.writeValueAsString(new WithTransient()));
}
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/UnwrappedTest.java
similarity index 79%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/UnwrappedTest.java
index 11be91f5..dc2fa0cb 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/UnwrappedTest.java
@@ -1,19 +1,18 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta;
+package tools.jackson.datatype.hibernate7;
+import tools.jackson.datatype.hibernate7.data.Customer;
+import tools.jackson.datatype.hibernate7.data.Product;
import org.hibernate.Hibernate;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Customer;
-import com.fasterxml.jackson.datatype.hibernate5.jakarta.data.Product;
+import tools.jackson.core.JacksonException;
+import tools.jackson.core.type.TypeReference;
+import tools.jackson.databind.ObjectMapper;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
-
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -41,7 +40,7 @@ public T getContent()
}
@Test
- public void testSimpleUnwrapped() throws JsonProcessingException
+ public void testSimpleUnwrapped() throws JacksonException
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
try {
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Customer.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Customer.java
similarity index 99%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Customer.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Customer.java
index 9acc2e19..318d98b5 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Customer.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Customer.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Employee.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Employee.java
similarity index 98%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Employee.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Employee.java
index 31f8424e..6f58c5c2 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Employee.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Employee.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Office.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Office.java
similarity index 98%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Office.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Office.java
index 88bd4263..b113dbad 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Office.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Office.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import java.util.HashSet;
import java.util.Set;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Order.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Order.java
similarity index 98%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Order.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Order.java
index 7e8abbd9..fb93d192 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Order.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Order.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import static jakarta.persistence.GenerationType.IDENTITY;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetail.java
similarity index 97%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetail.java
index c52c3f48..eba31b06 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetail.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetail.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetailId.java
similarity index 96%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetailId.java
index eb80acc5..4d67f6eb 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/OrderDetailId.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/OrderDetailId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Payment.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Payment.java
similarity index 97%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Payment.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Payment.java
index 3a18abd7..00e9b9fc 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Payment.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Payment.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import java.util.Date;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/PaymentId.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/PaymentId.java
similarity index 96%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/PaymentId.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/PaymentId.java
index 05a248a6..ef62723d 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/PaymentId.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/PaymentId.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
diff --git a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Product.java b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Product.java
similarity index 98%
rename from hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Product.java
rename to hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Product.java
index f887a014..4290d70d 100644
--- a/hibernate5-jakarta/src/test/java/com/fasterxml/jackson/datatype/hibernate5/jakarta/data/Product.java
+++ b/hibernate7/src/test/java/tools/jackson/datatype/hibernate7/data/Product.java
@@ -1,4 +1,4 @@
-package com.fasterxml.jackson.datatype.hibernate5.jakarta.data;
+package tools.jackson.datatype.hibernate7.data;
import java.util.HashSet;
diff --git a/hibernate7/src/test/resources/META-INF/persistence.xml b/hibernate7/src/test/resources/META-INF/persistence.xml
index a19f9593..14d8af2b 100644
--- a/hibernate7/src/test/resources/META-INF/persistence.xml
+++ b/hibernate7/src/test/resources/META-INF/persistence.xml
@@ -6,15 +6,15 @@
org.hibernate.jpa.HibernatePersistenceProvider
- com.fasterxml.jackson.datatype.hibernate7.data.Customer
- com.fasterxml.jackson.datatype.hibernate7.data.Employee
- com.fasterxml.jackson.datatype.hibernate7.data.Office
- com.fasterxml.jackson.datatype.hibernate7.data.Order
- com.fasterxml.jackson.datatype.hibernate7.data.OrderDetail
- com.fasterxml.jackson.datatype.hibernate7.data.OrderDetailId
- com.fasterxml.jackson.datatype.hibernate7.data.Payment
- com.fasterxml.jackson.datatype.hibernate7.data.PaymentId
- com.fasterxml.jackson.datatype.hibernate7.data.Product
+ tools.jackson.datatype.hibernate7.data.Customer
+ tools.jackson.datatype.hibernate7.data.Employee
+ tools.jackson.datatype.hibernate7.data.Office
+ tools.jackson.datatype.hibernate7.data.Order
+ tools.jackson.datatype.hibernate7.data.OrderDetail
+ tools.jackson.datatype.hibernate7.data.OrderDetailId
+ tools.jackson.datatype.hibernate7.data.Payment
+ tools.jackson.datatype.hibernate7.data.PaymentId
+ tools.jackson.datatype.hibernate7.data.Product
diff --git a/pom.xml b/pom.xml
index 3b69c7f9..75c3a031 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,14 +1,14 @@
4.0.0
- com.fasterxml.jackson
+ tools.jackson
jackson-base
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
- com.fasterxml.jackson.datatype
+ tools.jackson.datatype
jackson-datatype-hibernate-parent
Hibernate module parent
- 2.21.0-SNAPSHOT
+ 3.0.0-SNAPSHOT
pom
Parent pom for shared settings for project sub-modules
@@ -16,9 +16,6 @@
hibernate4
hibernate5
-
hibernate5-jakarta
hibernate6
@@ -58,12 +55,12 @@
test
-
+
-
com.h2database
h2
2.3.232
@@ -75,10 +72,14 @@
com.fasterxml.jackson.core
+ jackson-annotations
+
+
+ tools.jackson.core
jackson-core
- com.fasterxml.jackson.core
+ tools.jackson.core
jackson-databind
@@ -98,13 +99,6 @@
assertj-core
test
-
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- test
-
@@ -139,7 +133,7 @@
maven-surefire-plugin
- com/fasterxml/jackson/**/failing/*.java
+ tools/jackson/**/failing/*.java