From 3c7e6f6dae09e69df5fe14c1b8f9df91952a7981 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 18 Nov 2021 16:27:43 +0100 Subject: [PATCH] OZG-1701 add wsdl --- formsolutions-adapter/pom.xml | 30 ++++++++++++--- .../formsolutions/FormSolutionsMapper.java | 36 ------------------ .../formsolutions/SendFormEndpoint.java | 33 ++++------------- .../WebServiceConfiguration.java | 37 +++++++++++-------- .../src/main/resources/application-local.yml | 20 ++++++++++ .../src/main/resources/wsdl/jsonWrap.wsdl | 37 +++++++++++++++++++ .../src/main/resources/wsdl/jsonWrap.xsd | 17 +++++++++ .../src/main/resources/application-local.yml | 3 ++ 8 files changed, 129 insertions(+), 84 deletions(-) delete mode 100644 formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java create mode 100644 formsolutions-adapter/src/main/resources/application-local.yml create mode 100644 formsolutions-adapter/src/main/resources/wsdl/jsonWrap.wsdl create mode 100644 formsolutions-adapter/src/main/resources/wsdl/jsonWrap.xsd diff --git a/formsolutions-adapter/pom.xml b/formsolutions-adapter/pom.xml index 4b44e458b..05f81c4f5 100644 --- a/formsolutions-adapter/pom.xml +++ b/formsolutions-adapter/pom.xml @@ -55,6 +55,11 @@ <!-- end::springws[] --> <!-- Dev --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-devtools</artifactId> + <scope>runtime</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> @@ -88,16 +93,29 @@ <build> <finalName>${project.artifactId}</finalName> <plugins> - <!-- tag::xsd[] --> + <!-- tag::wsdl/xsd[] --> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>jaxb2-maven-plugin</artifactId> + <groupId>org.jvnet.jaxb2.maven2</groupId> + <artifactId>maven-jaxb2-plugin</artifactId> <configuration> - <sources> - <source>${project.basedir}/src/main/resources/formsolutions/formdata.xsd</source> - </sources> + <schemaLanguage>WSDL</schemaLanguage> + <generatePackage>de.itvsh.kop.eingangsadapter.formsolutions</generatePackage> + <schemas> + <schema> + <fileset> + <directory>${basedir}/src/main/resources/wsdl</directory> + <includes> + <include>*.wsdl</include> + </includes> + </fileset> + </schema> + </schemas> </configuration> </plugin> + + <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> + <configuration> <sources> <source>${project.basedir}/src/main/resources/formsolutions/formdata.xsd</source> + </sources> </configuration> </plugin> --> <!-- end::xsd[] --> <plugin> diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java deleted file mode 100644 index ee1124ed7..000000000 --- a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsMapper.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.itvsh.kop.eingangsadapter.formsolutions; - -import java.time.ZonedDateTime; -import java.util.Map; -import java.util.UUID; - -import org.springframework.stereotype.Component; - -import de.itvsh.kop.eingangsadapter.common.formdata.Antragsteller; -import de.itvsh.kop.eingangsadapter.common.formdata.FormData; -import de.itvsh.kop.eingangsadapter.common.formdata.FormHeader; -import de.itvsh.kop.eingangsadapter.common.formdata.ZustaendigeStelle; -import de.ozg_sh.forms.formsolutions.SendFormRequest; - -@Component -public class FormSolutionsMapper { - - FormData map(SendFormRequest wsRequest) { - - return FormData.builder() // - .id(UUID.randomUUID()) // - .header(FormHeader.builder() // - .formName(wsRequest.getFormName()) - .createdAt(ZonedDateTime.now()) // - .build()) // - .antragsteller(Antragsteller.builder() // - .vorname(wsRequest.getVorname()) // - .nachname(wsRequest.getNachname()) // - .build()) // - .zustaendigeStelle(ZustaendigeStelle.builder() // - .organisationseinheitenId(wsRequest.getOrganisationseinheitenId()) // - .build()) // - .formData(Map.of("Hamstername", wsRequest.getNamedeshamsters())) // - .build(); - } -} diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java index 3666fbe00..23313e2c5 100644 --- a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java +++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/SendFormEndpoint.java @@ -1,42 +1,23 @@ package de.itvsh.kop.eingangsadapter.formsolutions; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ws.server.endpoint.annotation.Endpoint; import org.springframework.ws.server.endpoint.annotation.PayloadRoot; import org.springframework.ws.server.endpoint.annotation.RequestPayload; import org.springframework.ws.server.endpoint.annotation.ResponsePayload; -import de.itvsh.kop.eingangsadapter.common.formdata.FormData; -import de.itvsh.kop.eingangsadapter.router.VorgangService; -import de.ozg_sh.forms.formsolutions.SendFormRequest; -import de.ozg_sh.forms.formsolutions.SendFormResponse; -import lombok.extern.log4j.Log4j2; - @Endpoint -@Log4j2 public class SendFormEndpoint { - private static final String NAMESPACE_URI = "http://forms.ozg-sh.de/formsolutions"; - - @Autowired - private FormSolutionsMapper mapper; - - @Autowired - private VorgangService vorgangService; - - @PayloadRoot(namespace = NAMESPACE_URI, localPart = "sendFormRequest") + @PayloadRoot(namespace = WebServiceConfiguration.NAMESPACE_URI, localPart = "Request") @ResponsePayload - public SendFormResponse getFormData(@RequestPayload SendFormRequest request) { - - LOG.info("FormsolutionsRequest received: " + request.getFormName() + ";" + request.getVorname()); - - FormData formData = mapper.map(request); - - vorgangService.createVorgang(formData); + public Response receiveForm(@RequestPayload Request request) { + return buildSuccessResponse(); + } - SendFormResponse response = new SendFormResponse(); - response.setStatus("OK, alles klar " + request.getVorname()); + private Response buildSuccessResponse() { + var response = new Response(); + response.setStatus("OK"); return response; } } diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java index 68373389d..241d92326 100644 --- a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java +++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/WebServiceConfiguration.java @@ -1,39 +1,44 @@ package de.itvsh.kop.eingangsadapter.formsolutions; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.ws.config.annotation.EnableWs; import org.springframework.ws.config.annotation.WsConfigurerAdapter; +import org.springframework.ws.transport.http.MessageDispatcherServlet; import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition; import org.springframework.xml.xsd.SimpleXsdSchema; import org.springframework.xml.xsd.XsdSchema; -import org.springframework.xml.xsd.XsdSchemaCollection; -import org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection; @EnableWs @Configuration class WebServiceConfiguration extends WsConfigurerAdapter { - @Bean(name = "formsolutions_formDatas") - public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema formDataSchema) { - DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition(); - wsdl11Definition.setPortTypeName("FormDatasPort"); - wsdl11Definition.setLocationUri("/ws"); - wsdl11Definition.setTargetNamespace("http://forms.ozg-sh.de/formsolutions"); - wsdl11Definition.setSchema(formDataSchema); - return wsdl11Definition; - } + private static final String XSD_LOCATION = "wsdl/jsonWrap.xsd"; + static final String NAMESPACE_URI = "urn:JSONWrap"; @Bean - public XsdSchemaCollection formDataSchemata() { - CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new ClassPathResource("formsolutions/formdata.xsd")); - xsds.setInline(false); - return xsds; + public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext) { + MessageDispatcherServlet servlet = new MessageDispatcherServlet(); + servlet.setApplicationContext(applicationContext); + servlet.setTransformWsdlLocations(true); + return new ServletRegistrationBean<>(servlet, "/ws/*"); } @Bean public XsdSchema formDataSchema() { - return new SimpleXsdSchema(new ClassPathResource("formsolutions/formdata.xsd")); + return new SimpleXsdSchema(new ClassPathResource(XSD_LOCATION)); + } + + @Bean(name = "formsolutions_formDatas") + public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema formDataSchema) { + DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition(); + wsdl11Definition.setPortTypeName("JSONWrapWebService"); + wsdl11Definition.setLocationUri("/ws"); + wsdl11Definition.setTargetNamespace(NAMESPACE_URI); + wsdl11Definition.setSchema(formDataSchema); + return wsdl11Definition; } } diff --git a/formsolutions-adapter/src/main/resources/application-local.yml b/formsolutions-adapter/src/main/resources/application-local.yml new file mode 100644 index 000000000..5ebda1217 --- /dev/null +++ b/formsolutions-adapter/src/main/resources/application-local.yml @@ -0,0 +1,20 @@ +grpc: + client: + pluto-local: + address: static://127.0.0.1:9090 + negotiationType: PLAINTEXT + +management: + server: + port: 8082 + +server: + port: 9292 + +kop: + adapter: + targetPlutoName: local + fallbackStrategy: DENY + routingStrategy: SINGLE + + diff --git a/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.wsdl b/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.wsdl new file mode 100644 index 000000000..28139265f --- /dev/null +++ b/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.wsdl @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions name="IOnlineAnhoerungWebServiceservice" targetNamespace="https://form-solutions.de/jsonWrap" xmlns:tns="https://form-solutions.de/jsonWrap" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jw="urn:JSONWrap"> + <types> + <xsd:schema> + <xsd:import namespace="urn:JSONWrap" schemaLocation="jsonWrap.xsd"/> + </xsd:schema> + </types> + <message name="Request"> + <part element="jw:Request"/> + </message> + <message name="Response"> + <part element="jw:Response"/> + </message> + <portType name="JSONWrapWebService"> + <operation name="json"> + <input message="tns:Request"/> + <output message="tns:Response"/> + </operation> + </portType> + <binding name="JSONWrapWebServicebinding" type="tns:JSONWrapWebService"> + <binding transport="http://schemas.xmlsoap.org/soap/http" xmlns="http://schemas.xmlsoap.org/wsdl/soap/"/> + <operation name="json"> + <operation soapAction="urn:JSONWrapWebService#json" xmlns="http://schemas.xmlsoap.org/wsdl/soap/"/> + <input> + <body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/soap/" namespace="urn:JSONWrap"/> + </input> + <output> + <body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/soap/" namespace="urn:JSONWrap"/> + </output> + </operation> + </binding> + <service name="JSONWrapWebServiceservice"> + <port name="JSONWrapWebServicePort" binding="tns:JSONWrapWebServicebinding"> + <address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="https://partnertest.form-solutions.de/soap/JSONWrap"/> + </port> + </service> +</definitions> diff --git a/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.xsd b/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.xsd new file mode 100644 index 000000000..fce587685 --- /dev/null +++ b/formsolutions-adapter/src/main/resources/wsdl/jsonWrap.xsd @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:JSONWrap" xmlns:jw="urn:JSONWrap"> + <xs:element name="Request"> + <xs:complexType> + <xs:sequence> + <xs:element name="JSON" type="xsd:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Response"> + <xs:complexType> + <xs:sequence> + <xs:element name="status" type="xsd:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/intelliform-adapter/src/main/resources/application-local.yml b/intelliform-adapter/src/main/resources/application-local.yml index ca271bcfb..5ebda1217 100644 --- a/intelliform-adapter/src/main/resources/application-local.yml +++ b/intelliform-adapter/src/main/resources/application-local.yml @@ -8,6 +8,9 @@ management: server: port: 8082 +server: + port: 9292 + kop: adapter: targetPlutoName: local -- GitLab