package at.gv.egiz.moazs; import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.DeliveryRequestType; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import java.math.BigInteger; import java.nio.charset.Charset; import java.util.GregorianCalendar; public class JaxbMarshallerTest { private static final Logger logger = LoggerFactory.getLogger(JaxbMarshallerTest.class); private Marshaller createMarshaller() throws JAXBException { JAXBContext context = JAXBContext.newInstance( at.gv.e_government.reference.namespace.zustellung.mzs.persondata_.ObjectFactory.class, at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.ObjectFactory.class, at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.ObjectFactory.class, at.gv.e_government.reference.namespace.persondata.phase2._20181206_.ObjectFactory.class); var m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); return m; } private JAXBElement generateSampleRequest() throws DatatypeConfigurationException { var pof = new at.gv.e_government.reference.namespace.zustellung.mzs.persondata_.ObjectFactory(); var mzsof = new at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.ObjectFactory(); var msgof = new at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.ObjectFactory(); var deliveryRequest = new DeliveryRequestType(); var sender = mzsof.createDeliveryRequestTypeSender(); var corporateBody = pof.createCorporateBodyType(); corporateBody.setFullName("Bundesministerium für Testzwecke"); sender.setPerson(pof.createCorporateBody(corporateBody)); deliveryRequest.setSender(sender); var receiver = mzsof.createDeliveryRequestTypeReceiver(); var physicalPerson = pof.createPhysicalPersonType(); var name = pof.createPersonNameType(); name.setGivenName("Maxi"); var familyName = pof.createPersonNameTypeFamilyName(); familyName.setValue("Mustermann1"); name.setFamilyName(familyName); physicalPerson.setName(name); var cal = new GregorianCalendar(1984, 1, 24); var xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal); physicalPerson.setDateOfBirth(pof.createDateOfBirth(xmlDate).getValue()); receiver.setPerson(pof.createPhysicalPerson(physicalPerson)); var postal = pof.createPostalAddressType(); postal.setCountryCode("AT"); postal.setPostalCode("1010"); postal.setMunicipality("Wien"); var deliveryAddress = pof.createPostalAddressTypeDeliveryAddress(); deliveryAddress.setStreetName("Musterstraße"); deliveryAddress.setBuildingNumber("10"); postal.setDeliveryAddress(deliveryAddress); receiver.getAddress().add(pof.createAddress(postal)); deliveryRequest.setReceiver(receiver); var metadata = msgof.createMetaData(); metadata.setAppDeliveryID("asd"); metadata.setSubject("Wichtige Mitteilung!"); metadata.setDeliveryQuality("RSa"); deliveryRequest.setMetaData(metadata); var payload = mzsof.createDeliveryRequestTypePayload(); payload.setDocumentReference("https://authority.gv.at/files/73bdf969781ba41fa07df1ff8439cf685c0db1c3"); payload.setFileName("brief.xml"); payload.setMIMEType("text/xml"); payload.setSize(BigInteger.valueOf(123401)); var checksum = msgof.createCheckSumType(); checksum.setAlgorithmID("SHA1"); checksum.setValue("random".getBytes(Charset.forName("UTF-8"))); payload.setCheckSum(checksum); deliveryRequest.getPayload().add(payload); return mzsof.createDeliveryRequest(deliveryRequest); } @Test public void testMarshalling() throws JAXBException, DatatypeConfigurationException { logger.info("test marshalling...."); var request = generateSampleRequest(); var m = createMarshaller(); m.marshal(request, System.out); } }