From 9a038cf18d6ebd4c68218c20ebc174b779afa7fa Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Mon, 29 Apr 2019 14:28:48 +0200 Subject: Make JAXB Objects Immutable and Add Builder Utility - Use Immutable-XJC from https://github.com/sabomichal/immutable-xjc - Update existing JAXB-object manipulations to use the Builder - Remove jaxbMarshallerTest (as it relies on mutable JAXB interfaces) Reason for making JAXB objects immutable: I put JAXB objects in the repository. Depending on the configuration, the repository can be a simple hashmap; in that case I might end up sharing JAXB objects between threads. Immutable shared object should make life a little simpler. --- src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java') diff --git a/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java b/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java index 01b7745..5579f06 100644 --- a/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java +++ b/src/test/java/at/gv/egiz/moazs/App2MzsServiceTest.java @@ -1,5 +1,8 @@ package at.gv.egiz.moazs; +import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.DeliveryRequestStatusType; +import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.DeliveryRequestStatusType.DeliveryRequestStatusTypeBuilder; +import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.DeliveryRequestStatusType.Success.SuccessBuilder; import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.ObjectFactory; import at.gv.egiz.moazs.pipeline.DeliveryPipeline; import at.gv.egiz.moazs.repository.DeliveryRepository; @@ -42,16 +45,19 @@ public class App2MzsServiceTest { @Autowired private DeliveryRepository repository; - private final ObjectFactory factory = new ObjectFactory(); - @Bean @Primary public DeliveryPipeline deliveryPipelineThatAlwaysSucceeds() { return appDeliveryId -> { - var status = factory.createDeliveryRequestStatusType(); - var success = factory.createDeliveryRequestStatusTypeSuccess(); - success.setAppDeliveryID(appDeliveryId); - status.setSuccess(success); + + var success = new SuccessBuilder() + .withAppDeliveryID(appDeliveryId) + .build(); + + var status = new DeliveryRequestStatusTypeBuilder() + .withSuccess(success) + .build(); + repository.add(status); }; } -- cgit v1.2.3