1
1
package io .arex .foundation .serializer .jackson ;
2
2
3
+ import com .fasterxml .jackson .annotation .JsonAutoDetect ;
3
4
import com .fasterxml .jackson .core .JsonGenerator ;
4
5
import com .fasterxml .jackson .core .json .JsonReadFeature ;
5
6
import com .fasterxml .jackson .databind .DeserializationFeature ;
8
9
import com .fasterxml .jackson .databind .SerializationFeature ;
9
10
import com .fasterxml .jackson .databind .module .SimpleModule ;
10
11
import com .google .auto .service .AutoService ;
11
- import com .google .common .collect .Range ;
12
12
import io .arex .agent .bootstrap .util .StringUtil ;
13
13
import io .arex .foundation .serializer .jackson .adapter .CalendarAdapter ;
14
+ import io .arex .foundation .serializer .jackson .adapter .CustomBeanModifier ;
14
15
import io .arex .foundation .serializer .jackson .adapter .DateAdapter ;
15
- import io .arex .foundation .serializer .jackson .adapter .DateTimeAdapter ;
16
16
import io .arex .foundation .serializer .jackson .adapter .GregorianCalendarAdapter ;
17
- import io .arex .foundation .serializer .jackson .adapter .GuavaRangeAdapter ;
18
17
import io .arex .foundation .serializer .jackson .adapter .InstantAdapter ;
19
- import io .arex .foundation .serializer .jackson .adapter .JodaLocalDateAdapter ;
20
- import io .arex .foundation .serializer .jackson .adapter .JodaLocalDateTimeAdapter ;
21
- import io .arex .foundation .serializer .jackson .adapter .JodaLocalTimeAdapter ;
22
18
import io .arex .foundation .serializer .jackson .adapter .LocalDateAdapter ;
23
19
import io .arex .foundation .serializer .jackson .adapter .LocalDateTimeAdapter ;
24
20
import io .arex .foundation .serializer .jackson .adapter .LocalTimeAdapter ;
29
25
import io .arex .foundation .serializer .jackson .adapter .XMLGregorianCalendarAdapter ;
30
26
import io .arex .inst .runtime .log .LogManager ;
31
27
import io .arex .inst .runtime .serializer .StringSerializable ;
32
- import org .joda .time .DateTime ;
33
28
34
29
import javax .xml .datatype .XMLGregorianCalendar ;
35
30
import java .lang .reflect .Type ;
@@ -57,6 +52,8 @@ public String name() {
57
52
58
53
public JacksonSerializerWithType () {
59
54
configMapper ();
55
+ MODULE .setSerializers (new CustomBeanModifier .BasicSerializers ());
56
+ MODULE .setDeserializers (new CustomBeanModifier .BasicDeserializers ());
60
57
customTimeFormatSerializer (MODULE );
61
58
customTimeFormatDeserializer (MODULE );
62
59
mapper .registerModule (MODULE );
@@ -72,18 +69,18 @@ private void configMapper() {
72
69
mapper .configure (DeserializationFeature .READ_UNKNOWN_ENUM_VALUES_AS_NULL , true );
73
70
// serializer with type info
74
71
mapper .activateDefaultTyping (mapper .getPolymorphicTypeValidator (), ObjectMapper .DefaultTyping .NON_FINAL );
72
+ mapper .setVisibility (mapper .getSerializationConfig ().getDefaultVisibilityChecker ()
73
+ .withFieldVisibility (JsonAutoDetect .Visibility .ANY )
74
+ .withGetterVisibility (JsonAutoDetect .Visibility .NONE )
75
+ .withSetterVisibility (JsonAutoDetect .Visibility .NONE ));
75
76
}
76
77
77
78
private void customTimeFormatSerializer (SimpleModule module ) {
78
79
DateAdapter .Serializer dateSerializer = new DateAdapter .Serializer ();
79
80
CalendarAdapter .Serializer calendarSerializer = new CalendarAdapter .Serializer ();
80
- module .addSerializer (DateTime .class , new DateTimeAdapter .Serializer ());
81
81
module .addSerializer (LocalDateTime .class , new LocalDateTimeAdapter .Serializer ());
82
82
module .addSerializer (LocalDate .class , new LocalDateAdapter .Serializer ());
83
83
module .addSerializer (LocalTime .class , new LocalTimeAdapter .Serializer ());
84
- module .addSerializer (org .joda .time .LocalDateTime .class , new JodaLocalDateTimeAdapter .Serializer ());
85
- module .addSerializer (org .joda .time .LocalDate .class , new JodaLocalDateAdapter .Serializer ());
86
- module .addSerializer (org .joda .time .LocalTime .class , new JodaLocalTimeAdapter .Serializer ());
87
84
module .addSerializer (Calendar .class , calendarSerializer );
88
85
module .addSerializer (GregorianCalendar .class , calendarSerializer );
89
86
module .addSerializer (Timestamp .class , dateSerializer );
@@ -92,25 +89,19 @@ private void customTimeFormatSerializer(SimpleModule module) {
92
89
module .addSerializer (Date .class , dateSerializer );
93
90
module .addSerializer (Instant .class , new InstantAdapter .Serializer ());
94
91
module .addSerializer (OffsetDateTime .class , new OffsetDateTimeAdapter .Serializer ());
95
- module .addSerializer (Range .class , new GuavaRangeAdapter .Serializer ());
96
92
}
97
93
98
94
private void customTimeFormatDeserializer (SimpleModule module ) {
99
- module .addDeserializer (DateTime .class , new DateTimeAdapter .Deserializer ());
100
95
module .addDeserializer (LocalDateTime .class , new LocalDateTimeAdapter .Deserializer ());
101
96
module .addDeserializer (LocalDate .class , new LocalDateAdapter .Deserializer ());
102
97
module .addDeserializer (LocalTime .class , new LocalTimeAdapter .Deserializer ());
103
- module .addDeserializer (org .joda .time .LocalDateTime .class , new JodaLocalDateTimeAdapter .Deserializer ());
104
- module .addDeserializer (org .joda .time .LocalDate .class , new JodaLocalDateAdapter .Deserializer ());
105
- module .addDeserializer (org .joda .time .LocalTime .class , new JodaLocalTimeAdapter .Deserializer ());
106
98
module .addDeserializer (Calendar .class , new CalendarAdapter .Deserializer ());
107
99
module .addDeserializer (GregorianCalendar .class , new GregorianCalendarAdapter .Deserializer ());
108
100
module .addDeserializer (Timestamp .class , new TimestampAdapter .Deserializer ());
109
101
module .addDeserializer (XMLGregorianCalendar .class , new XMLGregorianCalendarAdapter .Deserializer ());
110
102
module .addDeserializer (Date .class , new DateAdapter .Deserializer ());
111
103
module .addDeserializer (Instant .class , new InstantAdapter .Deserializer ());
112
104
module .addDeserializer (OffsetDateTime .class , new OffsetDateTimeAdapter .Deserializer ());
113
- module .addDeserializer (Range .class , new GuavaRangeAdapter .Deserializer ());
114
105
module .addDeserializer (java .sql .Date .class , new SqlDateAdapter .Deserializer ());
115
106
module .addDeserializer (Time .class , new SqlTimeAdapter .Deserializer ());
116
107
}
0 commit comments