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/28 05:51:33 UTC
svn commit: r533289 - in /incubator/cxf/trunk/tools:
common/src/main/java/org/apache/cxf/tools/common/model/
javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/
javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/ja...
Author: mmao
Date: Fri Apr 27 20:51:31 2007
New Revision: 533289
URL: http://svn.apache.org/viewvc?view=rev&rev=533289
Log:
CXF-611 Java2Wsdl support generate wrapper beans in different package
Added:
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/fortest/withannotation/doc/GreeterNoWrapperBean.java
Modified:
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGenerator.java
incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java
incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/WrapperTest.java
Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java?view=diff&rev=533289&r1=533288&r2=533289
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaInterface.java Fri Apr 27 20:51:31 2007
@@ -213,4 +213,14 @@
sb.append(getName());
return sb.toString();
}
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ for (String anno : annotations) {
+ sb.append(anno);
+ sb.append("\n");
+ }
+ sb.append(getFullClassName());
+ return sb.toString();
+ }
}
Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGenerator.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGenerator.java?view=diff&rev=533289&r1=533288&r2=533289
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGenerator.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGenerator.java Fri Apr 27 20:51:31 2007
@@ -97,13 +97,11 @@
if (op.getUnwrappedOperation() != null) {
if (op.hasInput()) {
QName wrapperBeanName = op.getInput().getMessageParts().get(0).getElementQName();
-
RequestWrapper requestWrapper = new RequestWrapper();
requestWrapper.setName(wrapperBeanName);
requestWrapper.setMethod((Method) op.getProperty(Method.class.getName()));
JavaClass jClass = requestWrapper.getJavaClass();
-
- if (requestWrapper.isWrapperAbsent()) {
+ if (requestWrapper.isWrapperAbsent() || requestWrapper.isToDifferentPackage()) {
nsPkgMapping.put(wrapperBeanName.getNamespaceURI(), jClass.getPackageName());
}
@@ -118,7 +116,7 @@
responseWrapper.setMethod((Method) op.getProperty(Method.class.getName()));
JavaClass jClass = responseWrapper.getJavaClass();
- if (responseWrapper.isWrapperAbsent()) {
+ if (responseWrapper.isWrapperAbsent() || responseWrapper.isToDifferentPackage()) {
nsPkgMapping.put(wrapperBeanName.getNamespaceURI(), jClass.getPackageName());
}
@@ -132,7 +130,6 @@
if (wrapperClasses.isEmpty()) {
return;
}
-
Map<String, Element> schemas = new HashMap<String, Element>();
for (SchemaInfo s : serviceInfo.getSchemas()) {
Modified: incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java?view=diff&rev=533289&r1=533288&r2=533289
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java (original)
+++ incubator/cxf/trunk/tools/javato/src/main/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/Wrapper.java Fri Apr 27 20:51:31 2007
@@ -26,6 +26,7 @@
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.tools.common.ToolException;
import org.apache.cxf.tools.common.model.JavaClass;
import org.apache.cxf.tools.util.AnnotationUtil;
@@ -37,6 +38,7 @@
private QName name;
private JavaClass javaClass;
private Method mehtod;
+ private boolean isSamePackage;
public void setMethod(Method m) {
this.mehtod = m;
@@ -55,7 +57,6 @@
if (wrapperBeanName == null) {
return jClass;
}
-
String ns = wrapperBeanName.getNamespaceURI();
jClass.setNamespace(ns);
jClass.setPackageName(URIParserUtil.getPackageName(ns));
@@ -64,15 +65,18 @@
}
private JavaClass merge(final JavaClass c1, final JavaClass c2) {
- if (c1.getNamespace() == null) {
+ if (StringUtils.isEmpty(c1.getNamespace())) {
c1.setNamespace(c2.getNamespace());
}
- if (c1.getPackageName() == null) {
+ if (StringUtils.isEmpty(c1.getPackageName())) {
c1.setPackageName(c2.getPackageName());
+ } else {
+ this.isSamePackage = c1.getPackageName().equals(c2.getPackageName());
}
- if (c1.getName() == null) {
+
+ if (StringUtils.isEmpty(c1.getName())) {
c1.setName(c2.getName());
}
return c1;
@@ -108,6 +112,10 @@
} catch (ToolException e) {
return true;
}
+ }
+
+ public boolean isToDifferentPackage() {
+ return !isSamePackage;
}
public Class getWrapperClass() {
Added: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/fortest/withannotation/doc/GreeterNoWrapperBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/fortest/withannotation/doc/GreeterNoWrapperBean.java?view=auto&rev=533289
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/fortest/withannotation/doc/GreeterNoWrapperBean.java (added)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/fortest/withannotation/doc/GreeterNoWrapperBean.java Fri Apr 27 20:51:31 2007
@@ -0,0 +1,33 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.tools.fortest.withannotation.doc;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+@WebService(name = "Hello")
+public interface GreeterNoWrapperBean {
+ @WebMethod
+ @RequestWrapper(className = "org.apache.cxf.SayHi")
+ @ResponseWrapper(className = "org.apache.cxf.SayHiResponse")
+ String sayHi();
+}
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=533289&r1=533288&r2=533289
==============================================================================
--- 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 Fri Apr 27 20:51:31 2007
@@ -272,5 +272,19 @@
assertTrue(responseWrapperClass.exists());
}
+ @Test
+ public void testGenWrapperInAnotherPackage() throws Exception {
+ env.put(ToolConstants.CFG_CLASSNAME,
+ "org.apache.cxf.tools.fortest.withannotation.doc.GreeterNoWrapperBean");
+ env.put(ToolConstants.CFG_OUTPUTFILE, output.getPath() + "/my_greeter_no_wrapper.wsdl");
+ processor.setEnvironment(env);
+ processor.process();
+
+ String pkgBase = "org/apache/cxf";
+ File requestWrapperClass = new File(output, pkgBase + "/SayHi.java");
+ File responseWrapperClass = new File(output, pkgBase + "/SayHiResponse.java");
+ assertTrue(requestWrapperClass.exists());
+ assertTrue(responseWrapperClass.exists());
+ }
}
Modified: incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/WrapperTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/WrapperTest.java?view=diff&rev=533289&r1=533288&r2=533289
==============================================================================
--- incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/WrapperTest.java (original)
+++ incubator/cxf/trunk/tools/javato/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/WrapperTest.java Fri Apr 27 20:51:31 2007
@@ -75,6 +75,7 @@
Wrapper wrapper = new RequestWrapper();
wrapper.setMethod(method);
assertTrue(wrapper.isWrapperAbsent());
+ assertTrue(wrapper.isToDifferentPackage());
assertFalse(wrapper.isWrapperBeanClassNotExist());
assertEquals(pkgName + ".jaxws", wrapper.getJavaClass().getPackageName());
assertEquals("GetPrice", wrapper.getJavaClass().getName());
@@ -86,6 +87,7 @@
wrapper = new RequestWrapper();
wrapper.setMethod(method);
assertFalse(wrapper.isWrapperAbsent());
+ assertTrue(wrapper.isToDifferentPackage());
assertFalse(wrapper.isWrapperBeanClassNotExist());
assertEquals(pkgName + ".jaxws", wrapper.getJavaClass().getPackageName());
assertEquals("GetPrice", wrapper.getJavaClass().getName());
@@ -97,6 +99,7 @@
wrapper = new RequestWrapper();
wrapper.setMethod(method);
assertFalse(wrapper.isWrapperAbsent());
+ assertTrue(wrapper.isToDifferentPackage());
assertFalse(wrapper.isWrapperBeanClassNotExist());
assertEquals(pkgName, wrapper.getJavaClass().getPackageName());
assertEquals("SayHi", wrapper.getJavaClass().getName());