aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
AgeCommit message (Collapse)AuthorFilesLines
2019-05-08Fix Namespace Prefixes in Marshaled Messages (msg: instead of ns#:)Christof Rabensteiner3-10/+106
- Implement own NamespacePrefixMapper that maps prefixes depending on whether a msg or a mzs object is being marshaled. - Namespaces are not hardcoded but extracted from jaxb's generated sources (somewhat indirect, can be considered a hack, but there's no public API to extract namespaces)
2019-05-08Implement Pipeline Flow and mzs2msg ConversionChristof Rabensteiner4-11/+420
- Implement and test conversion from mzs:DeliveryRequest to msg:DeliveryRequest with the "convert-pojos-by-hand"-strategy. Reason: The chosen strategy benefits from JAXB's strong typing, which is useful in this scenario: Differences between msg and mzs are nuanced and easy to overlook. The chosen strategy is, unfortunately, verbose and could become expensive to maintain. - Update SameThreadDeliveryPipeline: Integrate tnvz query, conversion, and msg query. - Add MsgClient stub. tnvz: - Change TnvzClient stub interface. - Implement mimetype mismatch check from tnvz Response. - Put p:Identification from tnvz response into msg:DeliveryRequest. MZS Schema changes: - Replace DeliveryRequest/Sender/Person with CorporateBody (because thats the only sender that is allowed by zusemsg) and add a SenderProfile choice. - Add ID Attribute to DeliveryRequest/Sender because msg/DeliveryRequest/Sender/AbstractSenderPersonType also has an id attribute. - Remove PersonDataType because it's dead code.
2019-05-06WIP tnvz integrationChristof Rabensteiner2-2/+3
2019-05-06Change Package Namespaces of JAXB Generated SourcesChristof Rabensteiner9-30/+25
- Reason: Improves readability and makes import statetemens shorter and more consistent
2019-04-30Generate SoapFault instead of DRStatus/Error MessageChristof Rabensteiner1-22/+7
- App2MZS Server: Instead of generating a DeliveryRequestStatus/Error Message, we throw an exception. This will generate a SoapFault (including a 500 http status code), which is more appropriate. - Fix possible NPE of deliveryRequest.getMetadata().getAppDeliveryID() by moving appDeliveryID initialization into the TimeOutException catch block - pom.xml: Remove hamcrest dependency, as not needed for now.
2019-04-30Refactor: Reduce Vertical Space Bewteen Method Def. and Invoc.Christof Rabensteiner1-13/+13
2019-04-30Add Optional mzs:DeliveryRequest/Config & Validate / Augment ItChristof Rabensteiner5-35/+84
Add Optional "Config" to MZS Schema: - Add mzs:DeliveryRequest/Config Element with a "PerformQueryPersonRequest" node - The config element contains parameters that are interpreted by moa-zs and not forwarded to the ZD - The boolean PerformQueryPersonRequest tells moa-zs if moa-zs should perform a QueryPersonRequest towards the TNVZ. - If config is missing, moa-zs augments the delivery request with parameters from the app's configuartion or the default configuartion Other Changes: - Validate and augment incoming requests with the DeliveryPreprocessor. - Add stub for TlnvzClient. - Remove some leftover ObjectFactory imports (because of the builder they are not needed anymore) Fixes - Fixed incorrect API usage of Messageformat.format: format string needs an index. pom.xml - Add Hamcrest Dependency (for writing more expressive tests) - Add copy constructor to JAXB Builder Testing - Test validation of incoming request - Refactor testcases to improve readability
2019-04-29Make JAXB Objects Immutable and Add Builder UtilityChristof Rabensteiner1-19/+24
- 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.
2019-04-29Document DeliveryPipeline InterfaceChristof Rabensteiner1-1/+6
2019-04-18Mock Pipeline in App2MzsServiceTestsChristof Rabensteiner1-12/+1
- Reason: App2MzsServiceTests only run through the app2mzs front end without doing any pipeline work.
2019-04-18Change App2mzs Interface and Init Delivery PipelineChristof Rabensteiner9-77/+198
- Change app2mzs interface: output message from app2mzs:DeliveryRequest was app2mzs:DeliveryResponse, now its msg:DeliveryRequestStatus. Reason: ZD returns msg:DeliveryRequestStatus which is signed. Moazs does not convert msg:DeliveryRequestStatus into app2mzs:DeliveryResponse because the conversion woudl break the signature. - App2MzsService: Make beans final and inject them with constructor; Refactor DeliveryRequestHandler into App2MZSService. - DeliveryPipeline: Add Interface and a "SameThreadImplementation" that executes the pipeline in the same threat and can be used in single mode. - DeliveryRepository: Augment interface for storing and retrieving request status objects; Add in-memory-implementation for status objects. - Utils: Add helper function for coalescing multiple values
2019-04-17Refactor: Move Configs to config PackageChristof Rabensteiner3-3/+4
2019-04-17Refactor: Move Repositories to Repository PackageChristof Rabensteiner4-3/+5
2019-04-17Add Redis and InMemory Implementation of DeliveryRequestRepositoryChristof Rabensteiner5-23/+71
- Deployer can choose which implementation to use (by activating - corresponding profile) - Add guava dependency - Extract DeliveryRequestRepository to Interface - Implement InMemory Repository using guava's cache
2019-04-16Add Getter for Repository + Refactor MarshallingChristof Rabensteiner4-28/+25
- mv MyMarshaller Marshaller - Remove jaxbcontext bean - Move Marshaller config to MarshallerConfig class
2019-04-16Store incoming delivery request on redis serverChristof Rabensteiner5-42/+164
- Connect to Redis server and implement RedisRepository - Add redis dependencies (spring-boot-starter, jedis, apache commons io). Latter dependencies are apparently needed and not included in the sprint-boot-starter; See https://github.com/spring-projects/spring-boot/issues/5718 and https://www.concretepage.com/questions/599 - Connect DeliveryRequestHandler to RedisRepository - Rewrote Marshalling: replace JaxbContext with spring-oxm JaxbMarshaller - Catch and log all exceptions in App2MZSService; Former: certain exceptions would go unnoticed, e.g. ConnectionRefused
2019-04-15Add Marshaller for autogenerated Schema TypesChristof Rabensteiner2-0/+73
2019-04-08Update Codebase to Match MZS Schema ChangesChristof Rabensteiner2-2/+12
- Important Fix: I forgot to annotate App2MzsService with @Service and autowire the App2MzsService object when creating the endpoint bean. For this reason, Spring did not autowire the dependencies in App2MzsService and I ended up with NullPointerExceptions in the testsuite. - Updated some more namespaces - Add objectFactory bean. objectfactory is autogenerated via the cxf-code-generation plugin, so i cannot annotate it with @Component or @Service. Alternative: create the @Bean by myself - Update the validDeliveryRequest SOAP Message to match the mzs 2.0.0 scheme.
2019-04-08Update Namespace Package References to Schema filesChristof Rabensteiner3-7/+5
2019-04-03Add Stubs for RequestHandler and MZS2AppClientChristof Rabensteiner2-0/+40
2019-04-03Init: Add Timeout to Delivery Request HandlerChristof Rabensteiner1-12/+54
2019-03-19Add Unit Test Stub for App2MzsServiceChristof Rabensteiner2-3/+4
- Unit test makes a http request to the service - Fix NPE by adding endpoint.setAdress("/") - Choose better name for App2MzsService
2019-03-19Add App2MzsService StubChristof Rabensteiner3-0/+69
- Try it out with mvn spring-boot:run