You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by mm...@apache.org on 2007/04/26 05:44:45 UTC

svn commit: r532594 - in /incubator/cxf/trunk: rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/ tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/ tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/intern...

Author: mmao
Date: Wed Apr 25 20:44:44 2007
New Revision: 532594

URL: http://svn.apache.org/viewvc?view=rev&rev=532594
Log:
CXF-545 Set the serviceName through java2wsdl using the JaxwsServiceFactoryBean

Added:
    incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl
Modified:
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessor.java
    incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilderFactory.java
    incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?view=diff&rev=532594&r1=532593&r2=532594
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Wed Apr 25 20:44:44 2007
@@ -406,6 +406,7 @@
             setDataBinding(new SourceDataBinding());
         } else {
             jaxWsConfiguration = new JaxWsServiceConfiguration();
+            jaxWsConfiguration.setServiceFactory(this);
             getServiceConfigurations().add(0, jaxWsConfiguration);
         }
         methodDispatcher = new JAXWSMethodDispatcher(implInfo);

Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessor.java?view=diff&rev=532594&r1=532593&r2=532594
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessor.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessor.java Wed Apr 25 20:44:44 2007
@@ -21,6 +21,7 @@
 
 import java.io.File;
 import java.util.logging.Logger;
+import javax.xml.namespace.QName;
 import javax.xml.ws.BindingType;
 import javax.xml.ws.soap.SOAPBinding;
 
@@ -32,6 +33,8 @@
 import org.apache.cxf.binding.soap.SoapBindingConfiguration;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.util.StringUtils;
+import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.tools.common.Processor;
 import org.apache.cxf.tools.common.ToolConstants;
@@ -50,6 +53,25 @@
     private ToolContext context;
 
     public void process() throws ToolException {
+        ServiceBuilder builder = getServiceBuilder();
+        ServiceInfo service = builder.build();
+        
+        File output = getOutputFile(builder.getOutputFile(),
+                                    service.getName().getLocalPart() + ".wsdl");
+        generate(service, output);
+    }
+
+    public void generate(ServiceInfo service, File output) throws ToolException {
+        WSDLGeneratorFactory factory = WSDLGeneratorFactory.getInstance();
+        factory.setWSDLVersion(getWSDLVersion());
+
+        AbstractGenerator generator = factory.newGenerator();
+        generator.setAllowImports(context.containsKey(ToolConstants.CFG_CREATE_XSD_IMPORTS));
+        generator.setServiceModel(service);
+        generator.generate(output);
+    }
+
+    public ServiceBuilder getServiceBuilder() throws ToolException {
         init();
         ServiceBuilderFactory builderFactory = ServiceBuilderFactory.getInstance();
         builderFactory.setServiceClass(getServiceClass());
@@ -61,18 +83,16 @@
         builder.setBus(getBus());
         builder.setBindingConfig(getBindingConfig());
 
-        ServiceInfo service = builder.build();
+        ReflectionServiceFactoryBean serviceFactory = builder.getServiceFactory();
 
-        File output = getOutputFile(builder.getOutputFile(),
-                                    service.getName().getLocalPart() + ".wsdl");
-
-        WSDLGeneratorFactory factory = WSDLGeneratorFactory.getInstance();
-        factory.setWSDLVersion(getWSDLVersion());
-
-        AbstractGenerator generator = factory.newGenerator();
-        generator.setAllowImports(context.containsKey(ToolConstants.CFG_CREATE_XSD_IMPORTS));
-        generator.setServiceModel(service);
-        generator.generate(output);
+        if (!StringUtils.isEmpty(getServiceName())) {
+            QName serviceQName = serviceFactory.getServiceQName();
+            if (serviceQName != null) {
+                serviceFactory.setServiceName(new QName(serviceQName.getNamespaceURI(), getServiceName()));
+            }
+        }
+        
+        return builder;
     }
 
     protected String getTransportId() {
@@ -146,6 +166,10 @@
         return wsVersion;
     }
 
+    public String getServiceName() {
+        return (String) this.context.get(ToolConstants.CFG_SERVICENAME);
+    }
+    
     public Bus getBus() {
         return BusFactory.getDefaultBus();
     }

Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilderFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilderFactory.java?view=diff&rev=532594&r1=532593&r2=532594
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilderFactory.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ServiceBuilderFactory.java Wed Apr 25 20:44:44 2007
@@ -51,6 +51,7 @@
             throw new ToolException("Can not find the ServiceBulider for style: " + s, e);
         }
         builder.setServiceClass(serviceClass);
+        builder.getServiceFactory().setServiceClass(serviceClass);
         return builder;
     }
 

Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java?view=diff&rev=532594&r1=532593&r2=532594
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java Wed Apr 25 20:44:44 2007
@@ -154,15 +154,37 @@
 
     @Test
     public void testDataBase() throws Exception {
-        ToolContext context = new ToolContext();
-        context.put(ToolConstants.CFG_CLASSNAME, "org.apache.cxf.tools.fortest.cxf523.Database");
-        context.put(ToolConstants.CFG_OUTPUTFILE, output.getPath() + "/db.wsdl");
+        env.put(ToolConstants.CFG_CLASSNAME, "org.apache.cxf.tools.fortest.cxf523.Database");
+        env.put(ToolConstants.CFG_OUTPUTFILE, output.getPath() + "/db.wsdl");
         
-        processor.setEnvironment(context);
+        processor.setEnvironment(env);
         processor.process();
 
         String expectedFile = getClass().getResource("expected/db.wsdl").getFile();
         assertFileEquals(new File(expectedFile), new File(output, "db.wsdl"));
     }
 
+    @Test
+    public void testGetServiceName() throws Exception {
+        processor.setEnvironment(env);
+        assertNull(processor.getServiceName());
+
+        env.put(ToolConstants.CFG_SERVICENAME, "myservice");
+        processor.setEnvironment(env);
+        assertEquals("myservice", processor.getServiceName());
+    }
+
+    @Test
+    public void testSetServiceName() throws Exception {
+        env.put(ToolConstants.CFG_CLASSNAME, "org.apache.hello_world_soap12_http.Greeter");
+        env.put(ToolConstants.CFG_SOAP12, "soap12");
+        env.put(ToolConstants.CFG_OUTPUTFILE, output.getPath() + "/my_hello_soap12.wsdl");
+        env.put(ToolConstants.CFG_SERVICENAME, "MyService");
+        
+        processor.setEnvironment(env);
+        processor.process();
+
+        String expectedFile = getClass().getResource("expected/my_hello_soap12.wsdl").getFile();
+        assertFileEquals(new File(expectedFile), new File(output, "my_hello_soap12.wsdl"));
+    }
 }

Added: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl?view=auto&rev=532594
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl (added)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/expected/my_hello_soap12.wsdl Wed Apr 25 20:44:44 2007
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="MyService" targetNamespace="http://apache.org/hello_world_soap12_http" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns1="http://apache.org/hello_world_soap12_http" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://apache.org/hello_world_soap12_http/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsdl:types>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/hello_world_soap12_http/types" version="1.0">
+<xs:element name="faultDetail">
+<xs:complexType>
+<xs:sequence>
+<xs:element form="qualified" name="minor" type="xs:short"/>
+<xs:element form="qualified" name="major" type="xs:short"/>
+</xs:sequence>
+</xs:complexType>
+</xs:element>
+<xs:element name="pingMe">
+<xs:complexType/>
+</xs:element>
+<xs:element name="pingMeResponse">
+<xs:complexType/>
+</xs:element>
+<xs:element name="sayHi">
+<xs:complexType/>
+</xs:element>
+<xs:element name="sayHiResponse">
+<xs:complexType>
+<xs:sequence>
+<xs:element form="qualified" name="responseType" type="xs:string"/>
+</xs:sequence>
+</xs:complexType>
+</xs:element>
+</xs:schema>
+  </wsdl:types>
+  <wsdl:message name="sayHi">
+    <wsdl:part name="sayHi" element="ns2:sayHi">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="sayHiResponse">
+    <wsdl:part name="sayHiResponse" element="ns2:sayHiResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="faultDetail">
+    <wsdl:part name="faultDetail" element="ns2:faultDetail">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="pingMeResponse">
+    <wsdl:part name="pingMeResponse" element="ns2:pingMeResponse">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:message name="pingMe">
+    <wsdl:part name="pingMe" element="ns2:pingMe">
+    </wsdl:part>
+  </wsdl:message>
+  <wsdl:portType name="Greeter">
+    <wsdl:operation name="sayHi">
+      <wsdl:input name="sayHi" message="ns1:sayHi">
+    </wsdl:input>
+      <wsdl:output name="sayHiResponse" message="ns1:sayHiResponse">
+    </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="pingMe">
+      <wsdl:input name="pingMe" message="ns1:pingMe">
+    </wsdl:input>
+      <wsdl:output name="pingMeResponse" message="ns1:pingMeResponse">
+    </wsdl:output>
+      <wsdl:fault name="faultDetail" message="ns2:faultDetail">
+    </wsdl:fault>
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="MyServiceSoapBinding" type="ns1:Greeter">
+    <soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
+    <wsdl:operation name="sayHi">
+      <soap12:operation soapAction="" style="document"/>
+      <wsdl:input name="sayHi">
+        <soap12:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="sayHiResponse">
+        <soap12:body use="literal"/>
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="pingMe">
+      <soap12:operation soapAction="" style="document"/>
+      <wsdl:input name="pingMe">
+        <soap12:body use="literal"/>
+      </wsdl:input>
+      <wsdl:output name="pingMeResponse">
+        <soap12:body use="literal"/>
+      </wsdl:output>
+      <wsdl:fault name="faultDetail">
+        <soap12:fault name="faultDetail" use="literal"/>
+      </wsdl:fault>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="MyService">
+    <wsdl:port name="GreeterPort" binding="ns1:MyServiceSoapBinding">
+      <soap12:address location="http://localhost:9090/hello"/>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>