Skip to content

Commit 1115d88

Browse files
still need to make adjustments to serialization, xml tests failing
1 parent edc73c4 commit 1115d88

9 files changed

Lines changed: 52 additions & 41 deletions

File tree

mdx-models/src/main/java/com/mx/path/model/mdx/model/ondemand/MdxOnDemandMdxListSerializer.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package com.mx.path.model.mdx.model.ondemand;
22

3-
import java.io.IOException;
43
import java.time.LocalDate;
54
import java.time.format.DateTimeFormatter;
5+
import java.util.Arrays;
66
import java.util.Objects;
7+
import java.util.stream.Collectors;
78

89
import com.mx.path.model.mdx.model.MdxList;
910
import com.mx.path.model.mdx.model.ondemand.mixins.MixinDefinition;
1011
import com.mx.path.model.mdx.model.ondemand.mixins.XmlSkipInternalAnnotationsIntrospector;
1112
import tools.jackson.core.JacksonException;
1213
import tools.jackson.core.JsonGenerator;
14+
import tools.jackson.databind.ObjectMapper;
1315
import tools.jackson.databind.PropertyNamingStrategies;
1416
import tools.jackson.databind.SerializationContext;
1517
import tools.jackson.databind.SerializationFeature;
1618
import tools.jackson.databind.ValueSerializer;
19+
import tools.jackson.databind.ext.javatime.ser.LocalDateSerializer;
20+
import tools.jackson.databind.module.SimpleModule;
1721
import tools.jackson.dataformat.xml.XmlMapper;
1822
import tools.jackson.dataformat.xml.ser.ToXmlGenerator;
1923

@@ -42,14 +46,17 @@ public MdxOnDemandMdxListSerializer(MixinDefinition... mixinDefinitions) {
4246
.annotationIntrospector(new XmlSkipInternalAnnotationsIntrospector())
4347
.propertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE)
4448
.enable(SerializationFeature.INDENT_OUTPUT)
45-
.registerModule(new JavaTimeModule().addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_DATE)))
46-
.setSerializationInclusion(JsonInclude.Include.NON_NULL);
49+
.addModule(new SimpleModule("CustomLocalDateModule").addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_DATE)))
50+
// .setSerializationInclusion(JsonInclude.Include.NON_NULL);
51+
.addMixIns(Arrays.stream(mixinDefinitions)
52+
.collect(Collectors.toMap(MixinDefinition::getTarget, MixinDefinition::getMixin)))
53+
.build();
4754

48-
for (MixinDefinition mixin : mixinDefinitions) {
49-
if (mixin != null) {
50-
mapper.addMixIn(mixin.getTarget(), mixin.getMixin());
51-
}
52-
}
55+
// for (MixinDefinition mixin : mixinDefinitions) {
56+
// if (mixin != null) {
57+
// mapper.addMixIn(mixin.getTarget(), mixin.getMixin());
58+
// }
59+
// }
5360
}
5461

5562
/**
@@ -60,7 +67,7 @@ public MdxOnDemandMdxListSerializer(MixinDefinition... mixinDefinitions) {
6067
* @param value
6168
* @param gen
6269
* @param context
63-
* @throws IOException
70+
* @throws JacksonException
6471
*/
6572
@Override
6673
public final void serialize(MdxListWrapper value, JsonGenerator gen, SerializationContext context) throws JacksonException {

mdx-models/src/main/java/com/mx/path/model/mdx/model/ondemand/MdxOnDemandSerializer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,11 @@ public MdxOnDemandSerializer(MixinDefinition... mixinDefinitions) {
4747
.enable(SerializationFeature.INDENT_OUTPUT)
4848
.addModule(new SimpleModule("CustomLocalDateModule").addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ISO_DATE)))
4949
// .configure(SerializationFeatu re.WRITE_DATES_AS_TIMESTAMPS, false)
50-
.addMixIns(Arrays.stream(mixinDefinitions)
51-
.collect(Collectors.toMap(MixinDefinition::getTarget, MixinDefinition::getMixin)))
52-
.build();
50+
.addMixIns(Arrays.stream(mixinDefinitions)
51+
.collect(Collectors.toMap(MixinDefinition::getTarget, MixinDefinition::getMixin)))
52+
.build();
5353

54+
// mapper.serializationConfig()
5455
// for (MixinDefinition mixinDefinition : mixinDefinitions) {
5556
// this.mapper.addMixIn(mixinDefinition.getTarget(), mixinDefinition.getMixin());
5657
// }

mdx-models/src/main/java/com/mx/path/model/mdx/model/ondemand/mixins/AccountXmlMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
import com.fasterxml.jackson.annotation.JsonIgnore;
66
import com.fasterxml.jackson.annotation.JsonRootName;
7-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
87
import com.mx.path.model.mdx.model.ondemand.MdxOnDemandLocalDateSerializer;
8+
import tools.jackson.databind.annotation.JsonSerialize;
99

1010
@JsonRootName("account")
1111
public interface AccountXmlMixin {

mdx-models/src/main/java/com/mx/path/model/mdx/model/ondemand/mixins/OnDemandAccountsXmlMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import com.fasterxml.jackson.annotation.JsonProperty;
55
import com.fasterxml.jackson.annotation.JsonRootName;
6-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
76
import com.mx.path.model.mdx.model.MdxList;
87
import com.mx.path.model.mdx.model.account.Account;
8+
import tools.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
99

1010
@JsonRootName("accounts")
1111
public interface OnDemandAccountsXmlMixin {

mdx-models/src/main/java/com/mx/path/model/mdx/model/ondemand/mixins/TransactionsPageMixin.java

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

33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import com.fasterxml.jackson.annotation.JsonProperty;
5-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
6-
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
75
import com.mx.path.model.mdx.model.MdxList;
86
import com.mx.path.model.mdx.model.account.Transaction;
7+
import tools.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
8+
import tools.jackson.dataformat.xml.annotation.JacksonXmlProperty;
99

1010
public interface TransactionsPageMixin {
1111

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mx.path.model.mdx.model.ondemand.mixins;
22

33
import com.mx.path.core.common.model.Internal;
4+
import tools.jackson.databind.cfg.MapperConfig;
45
import tools.jackson.databind.introspect.AnnotatedMember;
56
import tools.jackson.dataformat.xml.JacksonXmlAnnotationIntrospector;
67

@@ -9,7 +10,7 @@
910
*/
1011
public class XmlSkipInternalAnnotationsIntrospector extends JacksonXmlAnnotationIntrospector {
1112
@Override
12-
public final boolean hasIgnoreMarker(AnnotatedMember m) {
13-
return m.hasAnnotation(Internal.class) || super.hasIgnoreMarker(m);
13+
public final boolean hasIgnoreMarker(MapperConfig<?> config, AnnotatedMember m) {
14+
return m.hasAnnotation(Internal.class) || super.hasIgnoreMarker(config, m);
1415
}
1516
}

mdx-models/src/test/groovy/com/mx/path/model/mdx/model/ondemand/MdxOnDemandDeserializerTest.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.mx.path.model.mdx.model.ondemand
22

3-
import com.fasterxml.jackson.core.JsonParser
4-
import com.fasterxml.jackson.dataformat.xml.XmlMapper
53
import com.mx.path.model.mdx.model.account.Account
64

75
import spock.lang.Specification
6+
import tools.jackson.core.JsonParser
7+
import tools.jackson.dataformat.xml.XmlMapper
88

99
class MdxOnDemandDeserializerTest extends Specification {
1010
MdxOnDemandDeserializer<Account> subject

mdx-models/src/test/groovy/com/mx/path/model/mdx/model/ondemand/MdxOnDemandMdxListSerializerTest.groovy

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package com.mx.path.model.mdx.model.ondemand
22

3+
import tools.jackson.core.JsonGenerator
4+
import tools.jackson.databind.SerializationContext
5+
import tools.jackson.dataformat.xml.XmlFactory
6+
import tools.jackson.dataformat.xml.ser.ToXmlGenerator
7+
38
import static com.mx.path.extensions.StringStaticExtension.sanitizeXml
49

5-
import com.fasterxml.jackson.core.JsonGenerator
6-
import com.fasterxml.jackson.databind.SerializerProvider
7-
import com.fasterxml.jackson.dataformat.xml.XmlFactory
8-
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator
910
import com.mx.path.model.mdx.model.MdxList
1011
import com.mx.path.model.mdx.model.account.Account
1112
import com.mx.path.model.mdx.model.account.Transaction
@@ -32,7 +33,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
3233
def list = new MdxListWrapper(null, transactions)
3334

3435
when:
35-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
36+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
3637
generator.flush()
3738

3839
then:
@@ -50,7 +51,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
5051
def list = new MdxListWrapper(null, transactions)
5152

5253
when:
53-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
54+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
5455
generator.flush()
5556

5657
then:
@@ -70,7 +71,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
7071
def list = new MdxListWrapper("transactions", transactions)
7172

7273
when:
73-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
74+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
7475
generator.flush()
7576

7677
then:
@@ -83,7 +84,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
8384
def list = new MdxListWrapper("transactions", transactions)
8485

8586
when:
86-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
87+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
8788
generator.flush()
8889

8990
then:
@@ -110,7 +111,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
110111
def list = new MdxListWrapper("transactions", transactions.wrapped())
111112

112113
when:
113-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
114+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
114115
generator.flush()
115116

116117
then:
@@ -154,7 +155,7 @@ class MdxOnDemandMdxListSerializerTest extends Specification implements WithMock
154155
def list = new MdxListWrapper("accounts", transactions.wrapped())
155156

156157
when:
157-
subject.serialize(list, (JsonGenerator) generator, (SerializerProvider) null)
158+
subject.serialize(list, (JsonGenerator) generator, (SerializationContext) null)
158159

159160
then:
160161
def expectedResponse= "<mdx version=\"5.0\">\n" +

mdx-models/src/test/groovy/com/mx/path/model/mdx/model/ondemand/MdxOnDemandSerializerTest.groovy

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package com.mx.path.model.mdx.model.ondemand
22

3+
import tools.jackson.core.JsonGenerator
4+
import tools.jackson.databind.SerializationContext
5+
import tools.jackson.dataformat.xml.XmlFactory
6+
import tools.jackson.dataformat.xml.ser.ToXmlGenerator
7+
38
import static com.mx.path.extensions.StringStaticExtension.sanitizeXml
49

510
import java.time.LocalDate
611

7-
import com.fasterxml.jackson.core.JsonGenerator
8-
import com.fasterxml.jackson.databind.SerializerProvider
9-
import com.fasterxml.jackson.dataformat.xml.XmlFactory
10-
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator
1112
import com.mx.path.model.mdx.model.MdxList
1213
import com.mx.path.model.mdx.model.account.Account
1314
import com.mx.path.model.mdx.model.account.OnDemandAccounts
@@ -45,7 +46,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
4546
}
4647

4748
when:
48-
subject.serialize(account, (JsonGenerator) generator, (SerializerProvider) null)
49+
subject.serialize(account, (JsonGenerator) generator, (SerializationContext) null)
4950
generator.flush()
5051

5152
then:
@@ -69,7 +70,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
6970
}
7071

7172
when:
72-
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializerProvider) null)
73+
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializationContext) null)
7374
generator.flush()
7475

7576
then:
@@ -98,7 +99,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
9899
}
99100

100101
when:
101-
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializerProvider) null)
102+
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializationContext) null)
102103
generator.flush()
103104

104105
then:
@@ -139,7 +140,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
139140
def onDemandAccounts = new OnDemandAccounts(accounts)
140141

141142
when:
142-
subject.serialize(onDemandAccounts.wrapped(), (JsonGenerator) generator, (SerializerProvider) null)
143+
subject.serialize(onDemandAccounts.wrapped(), (JsonGenerator) generator, (SerializationContext) null)
143144
generator.flush()
144145

145146
then:
@@ -173,7 +174,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
173174
def onDemandAccounts = new OnDemandAccounts(accounts)
174175

175176
when:
176-
subject.serialize(onDemandAccounts.wrapped(), (JsonGenerator) generator, (SerializerProvider) null)
177+
subject.serialize(onDemandAccounts.wrapped(), (JsonGenerator) generator, (SerializationContext) null)
177178
generator.flush()
178179

179180
then:
@@ -191,7 +192,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
191192
}
192193

193194
when:
194-
subject.serialize(transaction, (JsonGenerator) generator, (SerializerProvider) null)
195+
subject.serialize(transaction, (JsonGenerator) generator, (SerializationContext) null)
195196
generator.flush()
196197

197198
then:
@@ -214,7 +215,7 @@ class MdxOnDemandSerializerTest extends Specification implements WithMockery {
214215

215216
when:
216217
print("BALANCE: "+account.balance)
217-
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializerProvider) null)
218+
subject.serialize(account.wrapped(), (JsonGenerator) generator, (SerializationContext) null)
218219
generator.flush()
219220

220221
then:

0 commit comments

Comments
 (0)