Skip to content

Commit d0d98f0

Browse files
committed
jakarta module
1 parent 91797a3 commit d0d98f0

File tree

10 files changed

+27
-155
lines changed

10 files changed

+27
-155
lines changed

hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
2323
import tools.jackson.databind.jsontype.TypeSerializer;
2424
import tools.jackson.databind.ser.impl.PropertySerializerMap;
25+
import tools.jackson.databind.type.TypeFactory;
2526
import tools.jackson.databind.util.NameTransformer;
2627

2728
import jakarta.persistence.EntityNotFoundException;
@@ -130,7 +131,6 @@ public boolean isEmpty(SerializationContext provider, HibernateProxy value) {
130131

131132
@Override
132133
public void serialize(HibernateProxy value, JsonGenerator g, SerializationContext provider)
133-
throws IOException
134134
{
135135
Object proxiedValue = findProxied(value);
136136
// TODO: figure out how to suppress nulls, if necessary? (too late for that here)
@@ -144,7 +144,6 @@ public void serialize(HibernateProxy value, JsonGenerator g, SerializationContex
144144
@Override
145145
public void serializeWithType(HibernateProxy value, JsonGenerator g, SerializationContext provider,
146146
TypeSerializer typeSer)
147-
throws IOException
148147
{
149148
Object proxiedValue = findProxied(value);
150149
if (proxiedValue == null) {
@@ -180,7 +179,6 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
180179
*/
181180

182181
protected ValueSerializer<Object> findSerializer(SerializationContext provider, Object value)
183-
throws IOException
184182
{
185183
/* TODO: if Hibernate did use generics, or we wanted to allow use of Jackson
186184
* annotations to indicate type, should take that into account.
@@ -194,7 +192,11 @@ protected ValueSerializer<Object> findSerializer(SerializationContext provider,
194192
* really anyone's guess at this point; proxies can exist at any level?
195193
*/
196194
PropertySerializerMap.SerializerAndMapResult result =
197-
_dynamicSerializers.findAndAddPrimarySerializer(type, provider, _property);
195+
_dynamicSerializers.findAndAddPrimarySerializer(
196+
//TODO find better way to get JavaType
197+
TypeFactory.createDefaultInstance().unsafeSimpleType(type),
198+
provider,
199+
_property);
198200
if (_dynamicSerializers != result.map) {
199201
_dynamicSerializers = result.map;
200202
}

hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JSerializers.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package tools.jackson.datatype.hibernate5.jakarta;
22

3+
import com.fasterxml.jackson.annotation.JsonFormat;
34
import tools.jackson.databind.BeanDescription;
45
import tools.jackson.databind.JavaType;
56
import tools.jackson.databind.ValueSerializer;
@@ -31,7 +32,7 @@ public Hibernate5JSerializers(Mapping mapping, int features)
3132

3233
@Override
3334
public ValueSerializer<?> findSerializer(SerializationConfig config,
34-
JavaType type, BeanDescription.Supplier beanDesc)
35+
JavaType type, BeanDescription.Supplier beanDesc, JsonFormat.Value formatOverrides)
3536
{
3637
Class<?> raw = type.getRawClass();
3738
if (HibernateProxy.class.isAssignableFrom(raw)) {

hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/PersistentCollectionSerializer.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package tools.jackson.datatype.hibernate5.jakarta;
22

3-
import java.io.IOException;
43
import java.util.*;
54

65
import org.hibernate.FlushMode;
@@ -18,6 +17,7 @@
1817
import tools.jackson.databind.*;
1918
import tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper;
2019
import tools.jackson.databind.jsontype.TypeSerializer;
20+
import tools.jackson.databind.ser.std.StdContainerSerializer;
2121
import tools.jackson.databind.util.NameTransformer;
2222
import tools.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule.Feature;
2323

@@ -35,7 +35,7 @@
3535
* and <code>Map</code> types (unlike in JDK).
3636
*/
3737
public class PersistentCollectionSerializer
38-
extends ContainerSerializer<Object>
38+
extends StdContainerSerializer<Object>
3939
{
4040
private static final long serialVersionUID = 1L;
4141

@@ -66,7 +66,7 @@ public class PersistentCollectionSerializer
6666
@SuppressWarnings("unchecked")
6767
public PersistentCollectionSerializer(JavaType containerType,
6868
ValueSerializer<?> serializer, int features, SessionFactory sessionFactory) {
69-
super(containerType);
69+
super(containerType, null);
7070
_originalType = containerType;
7171
_serializer = (ValueSerializer<Object>) serializer;
7272
_features = features;
@@ -97,9 +97,9 @@ protected PersistentCollectionSerializer _withSerializer(ValueSerializer<?> ser)
9797

9898
// from `ContainerSerializer`
9999
@Override
100-
protected ContainerSerializer<?> _withValueTypeSerializer(TypeSerializer vts)
100+
protected StdContainerSerializer<?> _withValueTypeSerializer(TypeSerializer vts)
101101
{
102-
ContainerSerializer<?> ser0 = _containerSerializer();
102+
StdContainerSerializer<?> ser0 = _containerSerializer();
103103
if (ser0 != null) {
104104
return _withSerializer(ser0.withValueTypeSerializer(vts));
105105
}
@@ -185,7 +185,7 @@ public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType t
185185

186186
@Override
187187
public JavaType getContentType() {
188-
ContainerSerializer<?> ser = _containerSerializer();
188+
StdContainerSerializer<?> ser = _containerSerializer();
189189
if (ser != null) {
190190
return ser.getContentType();
191191
}
@@ -194,7 +194,7 @@ public JavaType getContentType() {
194194

195195
@Override
196196
public ValueSerializer<?> getContentSerializer() {
197-
ContainerSerializer<?> ser = _containerSerializer();
197+
StdContainerSerializer<?> ser = _containerSerializer();
198198
if (ser != null) {
199199
return ser.getContentSerializer();
200200
}
@@ -221,7 +221,6 @@ public boolean hasSingleElement(Object value) {
221221

222222
@Override
223223
public void serialize(Object value, JsonGenerator g, SerializationContext provider)
224-
throws IOException
225224
{
226225
if (value instanceof PersistentCollection) {
227226
value = findLazyValue((PersistentCollection) value);
@@ -242,7 +241,6 @@ public void serialize(Object value, JsonGenerator g, SerializationContext provid
242241
@Override
243242
public void serializeWithType(Object value, JsonGenerator g, SerializationContext provider,
244243
TypeSerializer typeSer)
245-
throws IOException
246244
{
247245
if (value instanceof PersistentCollection) {
248246
value = findLazyValue((PersistentCollection) value);
@@ -271,9 +269,9 @@ public void serializeWithType(Object value, JsonGenerator g, SerializationContex
271269
/**********************************************************************
272270
*/
273271

274-
protected ContainerSerializer<?> _containerSerializer() {
275-
if (_serializer instanceof ContainerSerializer) {
276-
return (ContainerSerializer<?>) _serializer;
272+
protected StdContainerSerializer<?> _containerSerializer() {
273+
if (_serializer instanceof StdContainerSerializer stdContainerSerializer) {
274+
return stdContainerSerializer;
277275
}
278276
return null;
279277
}

hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/InclusionTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import com.fasterxml.jackson.annotation.JsonInclude.Include;
88
import tools.jackson.databind.ObjectMapper;
9+
import tools.jackson.databind.json.JsonMapper;
910

1011
import static org.junit.jupiter.api.Assertions.assertEquals;
1112

hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/OneToManyTest.java

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

88
import jakarta.persistence.OneToMany;
99
import org.junit.jupiter.api.Test;
10+
import tools.jackson.databind.json.JsonMapper;
1011

1112
import static org.junit.jupiter.api.Assertions.assertEquals;
1213

@@ -42,7 +43,7 @@ public void testMapWithOneToMany() throws Exception {
4243
}
4344

4445
private String mapWithHibernateModule(Object object) throws Exception {
45-
return new ObjectMapper().registerModule(new Hibernate5JakartaModule()).writeValueAsString(object);
46+
return JsonMapper.builder().addModule(new Hibernate5JakartaModule()).build().writeValueAsString(object);
4647
}
4748

4849
private String mapWithoutHibernateModule(Object object) throws Exception {

hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/ReplacePersistentCollectionTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import org.hibernate.Hibernate;
66

77
import tools.jackson.databind.DatabindException;
8+
import tools.jackson.databind.DefaultTyping;
89
import tools.jackson.databind.ObjectMapper;
9-
import tools.jackson.databind.ObjectMapper.DefaultTyping;
1010
import tools.jackson.databind.json.JsonMapper;
11+
import tools.jackson.databind.jsontype.DefaultBaseTypeLimitingValidator;
1112
import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
1213
import tools.jackson.datatype.hibernate5.jakarta.data.Payment;
1314

hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/TransientTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import jakarta.persistence.Transient;
77

88
import org.junit.jupiter.api.Test;
9+
import tools.jackson.databind.json.JsonMapper;
910

1011
import static org.junit.jupiter.api.Assertions.assertEquals;
1112

@@ -38,7 +39,7 @@ public void testSimpleTransient() throws Exception
3839
// and then with Transient disabled
3940
Hibernate5JakartaModule mod = hibernateModule(false);
4041
mod.disable(Hibernate5JakartaModule.Feature.USE_TRANSIENT_ANNOTATION);
41-
mapper = new ObjectMapper().registerModule(mod);
42+
mapper = JsonMapper.builder().addModule(mod).build();
4243

4344
assertEquals(aposToQuotes("{'a':1,'b':2}"), mapper.writeValueAsString(new WithTransient()));
4445
}

hibernate5-jakarta/src/test/java/tools/jackson/datatype/hibernate5/jakarta/UnwrappedTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import com.fasterxml.jackson.annotation.JsonCreator;
66
import com.fasterxml.jackson.annotation.JsonUnwrapped;
7-
import tools.jackson.core.JsonProcessingException;
7+
import tools.jackson.core.JacksonException;
88
import tools.jackson.core.type.TypeReference;
99
import tools.jackson.databind.ObjectMapper;
1010
import tools.jackson.datatype.hibernate5.jakarta.data.Customer;
@@ -41,7 +41,7 @@ public T getContent()
4141
}
4242

4343
@Test
44-
public void testSimpleUnwrapped() throws JsonProcessingException
44+
public void testSimpleUnwrapped() throws JacksonException
4545
{
4646
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit");
4747
try {

hibernate5_2-test/pom.xml

Lines changed: 0 additions & 128 deletions
This file was deleted.

pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,8 @@
1818
<module>hibernate4</module>
1919
-->
2020
<module>hibernate5</module>
21-
<!--
22-
<module>hibernate5_2-test</module>
23-
-->
2421
<!-- added in 2.13.0 to support JAXB->Jakarta move: -->
25-
<!--
2622
<module>hibernate5-jakarta</module>
27-
-->
2823
<module>hibernate6</module>
2924
<module>hibernate7</module>
3025
</modules>

0 commit comments

Comments
 (0)