Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 80461 invoked from network); 11 Apr 2007 06:07:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Apr 2007 06:07:50 -0000 Received: (qmail 46157 invoked by uid 500); 11 Apr 2007 06:07:56 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 46082 invoked by uid 500); 11 Apr 2007 06:07:56 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 46073 invoked by uid 99); 11 Apr 2007 06:07:56 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Apr 2007 23:07:56 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Apr 2007 23:07:49 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id BE3BC1A9838; Tue, 10 Apr 2007 23:07:28 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r527395 - in /incubator/cxf/trunk: rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ tools/javato/ tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/ tools/javato/src/test/java/org/apache/cxf/... Date: Wed, 11 Apr 2007 06:07:28 -0000 To: cxf-commits@incubator.apache.org From: jliu@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070411060728.BE3BC1A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jliu Date: Tue Apr 10 23:07:26 2007 New Revision: 527395 URL: http://svn.apache.org/viewvc?view=rev&rev=527395 Log: * CXF-511: Add a populateFromClass flag on service model, we need to set this flag to true explictly when we do javatowsdl. * Porting test from WSDLToServiceProcessorTest to JaxwsServiceBuilderTest, prepare for using runtime service model in tooling. Added: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/resources/ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/resources/expected_hello_world_async.wsdl (with props) incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/resources/expected_stock_bare.wsdl (with props) Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java incubator/cxf/trunk/tools/javato/pom.xml incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilder.java incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?view=diff&rev=527395&r1=527394&r2=527395 ============================================================================== --- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original) +++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Tue Apr 10 23:07:26 2007 @@ -107,6 +107,7 @@ private Boolean wrappedStyle; private Map properties; private QName endpointName; + private boolean populateFromClass; public ReflectionServiceFactoryBean() { getServiceConfigurations().add(0, new DefaultServiceConfiguration()); @@ -221,13 +222,21 @@ protected void initializeServiceModel() { String wsdlurl = getWsdlURL(); - if (wsdlurl != null) { + if (!populateFromClass && wsdlurl != null) { buildServiceFromWSDL(wsdlurl); } else { buildServiceFromClass(); } } + + public boolean isPopulateFromClass() { + return populateFromClass; + } + public void setPopulateFromClass(boolean fomClass) { + this.populateFromClass = fomClass; + } + protected void initializeWSDLOperations() { Method[] methods = serviceClass.getMethods(); Arrays.sort(methods, new MethodComparator()); Modified: incubator/cxf/trunk/tools/javato/pom.xml URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/pom.xml?view=diff&rev=527395&r1=527394&r2=527395 ============================================================================== --- incubator/cxf/trunk/tools/javato/pom.xml (original) +++ incubator/cxf/trunk/tools/javato/pom.xml Tue Apr 10 23:07:26 2007 @@ -125,4 +125,30 @@ scm:svn:https://svn.apache.org/repos/asf/incubator/cxf/trunk/tools/javato + + + + org.apache.cxf + cxf-codegen-plugin + ${project.version} + + + generate-sources + generate-sources + + ${basedir}/target/generated/src/main/java + + + ${basedir}/src/test/resources/java2wsdl_wsdl/hello_world_async.wsdl + + + + + wsdl2java + + + + + + Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilder.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilder.java?view=diff&rev=527395&r1=527394&r2=527395 ============================================================================== --- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilder.java (original) +++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilder.java Tue Apr 10 23:07:26 2007 @@ -31,7 +31,11 @@ public JaxwsServiceBuilder() { super(); - setServiceFactory(new JaxWsServiceFactoryBean()); + JaxWsServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean(); + //As this is a javatowsdl tool, explictly populate service model from class + serviceFactory.setPopulateFromClass(true); + + setServiceFactory(serviceFactory); } public File getOutputFile() { Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java?view=diff&rev=527395&r1=527394&r2=527395 ============================================================================== --- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java (original) +++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java Tue Apr 10 23:07:26 2007 @@ -19,7 +19,12 @@ package org.apache.cxf.tools.java2wsdl.processor.internal.jaxws; +import java.io.BufferedReader; import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.StringTokenizer; import org.apache.cxf.BusFactory; import org.apache.cxf.service.model.ServiceInfo; @@ -51,11 +56,6 @@ } public void testBare() { - // REVISIT: Wrong part name - // - // - // - builder.setServiceClass(Stock.class); ServiceInfo service = builder.build(); generator.setServiceModel(service); @@ -63,28 +63,106 @@ assertNotNull(output); generator.generate(output); assertTrue(output.exists()); + + String expectedFile = this.getClass().getResource("resources/expected_stock_bare.wsdl").getFile(); + compareTextFile(expectedFile, output.getAbsolutePath()); } - public void testWrapped() { - // REVIST: If there is wsdlLocation annotation, but the serviceBuilder can not load the wsdl, - // we should print WARNs not throw exceptions and fail the build. - // builder.setServiceClass(org.apache.cxf.tools.fortest.withannotation.doc.Hello.class); - - // REVISIT: Wrong part name - // - // - // - - builder.setServiceClass(org.apache.cxf.tools.fortest.withannotation.doc.HelloWrapped.class); + public void xtestWrapped() { + builder.setServiceClass(org.apache.cxf.tools.fortest.withannotation.doc.Hello.class); ServiceInfo service = builder.build(); generator.setServiceModel(service); File output = getOutputFile("hello_wrapped.wsdl"); assertNotNull(output); generator.generate(output); - assertTrue(output.exists()); + assertTrue(output.exists()); } + + //TODO: CXF-519 + public void xtestAsyn() throws Exception { + builder.setServiceClass(org.apache.hello_world_async_soap_http.GreeterAsync.class); + ServiceInfo service = builder.build(); + generator.setServiceModel(service); + File output = getOutputFile("hello_async.wsdl"); + assertNotNull(output); + generator.generate(output); + assertTrue(output.exists()); + String expectedFile = this.getClass().getResource("resources/expected_hello_world_async.wsdl") + .getFile(); + compareTextFile(expectedFile, output.getAbsolutePath()); + } + private File getOutputFile(String fileName) { return new File(output, fileName); + } + + public static void compareTextFile(String location1, String location2) { + String str1 = getStringFromFile(location1); + String str2 = getStringFromFile(location2); + + StringTokenizer st1 = new StringTokenizer(str1); + StringTokenizer st2 = new StringTokenizer(str2); + + while (st1.hasMoreTokens() && st2.hasMoreTokens()) { + String tok1 = st1.nextToken(); + String tok2 = st2.nextToken(); + + assertEquals("Compare failed", tok1, tok2); + } + + assertTrue(!st1.hasMoreTokens()); + } + + private static String getStringFromFile(String location) { + InputStream is = null; + String result = null; + + try { + is = new FileInputStream(new File(location)); + result = normalizeCRLF(is); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (is != null) { + try { + is.close(); + } catch (Exception e) { + //do nothing + } + } + } + + return result; + } + + private static String normalizeCRLF(InputStream instream) { + BufferedReader in = new BufferedReader(new InputStreamReader(instream)); + StringBuffer result = new StringBuffer(); + String line = null; + boolean commentChecked = false; + String comment = "