Author: veithen
Date: Sat Mar 13 23:40:34 2010
New Revision: 922692
URL: http://svn.apache.org/viewvc?rev=922692&view=rev
Log:
AXIS2-4634: Allow to specify extraClasses on Java2WSDLTask. Based on a
contribution submitted by Vy Ho. Not updating any documentation because there
is no existing documentation for this ant task.
Added:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java
(with props)
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java
(with props)
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java
(with props)
Modified:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/pom.xml
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
Modified: axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/pom.xml?rev=922692&r1=922691&r2=922692&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/pom.xml Sat Mar 13
23:40:34 2010
@@ -110,6 +110,74 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <phase>test</phase>
+ <configuration>
+ <tasks>
+ <taskdef name="java2wsdl"
classname="org.apache.axis2.tool.ant.Java2WSDLTask">
+ <classpath>
+ <path refid="maven.test.classpath"/>
+ </classpath>
+ </taskdef>
+
+ <java2wsdl className="test.Service"
+
outputLocation="${project.build.directory}/java2wsdl"
+ outputFileName="extraclasses1.wsdl">
+ <extraclass name="test.ExtraClass1"/>
+ <extraclass name="test.ExtraClass2"/>
+ </java2wsdl>
+
+ <java2wsdl className="test.Service"
+
outputLocation="${project.build.directory}/java2wsdl"
+ outputFileName="extraclasses2.wsdl"
+
extraClasses="test.ExtraClass1,test.ExtraClass2"/>
+
+ <java2wsdl className="test.Service"
+
outputLocation="${project.build.directory}/java2wsdl"
+ outputFileName="extraclasses3.wsdl"
+ extraClasses="test.ExtraClass1">
+ <extraclass name="test.ExtraClass2"/>
+ </java2wsdl>
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <source>
+ import groovy.xml.*
+
+ def parser = new XmlParser()
+ def wsdl = new
Namespace('http://schemas.xmlsoap.org/wsdl/')
+ def xs = new
Namespace('http://www.w3.org/2001/XMLSchema')
+
+ for (i in 1..3) {
+ def wsdlDoc = parser.parse(new
File(project.build.directory, "java2wsdl/extraclasses${i}.wsdl"))
+ def complexTypes =
wsdlDoc[wsdl.types][xs.schema][xs.complexType].'@name'
+ assert complexTypes.contains('ExtraClass1')
+ assert complexTypes.contains('ExtraClass2')
+ }
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<distributionManagement>
Modified:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java?rev=922692&r1=922691&r2=922692&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
(original)
+++
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/main/java/org/apache/axis2/tool/ant/Java2WSDLTask.java
Sat Mar 13 23:40:34 2010
@@ -31,11 +31,25 @@ import org.apache.ws.java2wsdl.Namespace
import org.apache.ws.java2wsdl.utils.Java2WSDLCommandLineOption;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
public class Java2WSDLTask extends Task implements Java2WSDLConstants {
+ public static class ExtraClass {
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+ }
+
public static final String OPEN_BRACKET = "[";
public static final String CLOSE_BRACKET = "]";
public static final String COMMA = ",";
@@ -60,6 +74,8 @@ public class Java2WSDLTask extends Task
//names of java types not used in the service defn. directly, but for
which schema must be generated
private String[] extraClasses;
+ private final List<ExtraClass> extraClasses2 = new ArrayList<ExtraClass>();
+
//namespace generator classname
private String nsGenClassName = null;
@@ -352,11 +368,25 @@ public class Java2WSDLTask extends Task
}
public String[] getExtraClasses() {
- return extraClasses;
+ List<String> list = new ArrayList<String>((extraClasses == null ? 0 :
extraClasses.length)
+ + extraClasses2.size());
+ if (extraClasses != null) {
+ list.addAll(Arrays.asList(extraClasses));
+ }
+ for (ExtraClass extraClass : extraClasses2) {
+ list.add(extraClass.getName());
+ }
+ return list.toArray(new String[list.size()]);
}
- public void setExtraClasses(String[] extraClasses) {
- this.extraClasses = extraClasses;
+ public void setExtraClasses(String extraClasses) {
+ this.extraClasses = extraClasses.split(",");
+ }
+
+ public ExtraClass createExtraClass() {
+ ExtraClass extraClass = new ExtraClass();
+ extraClasses2.add(extraClass);
+ return extraClass;
}
public String getNsGenClassName() {
Added:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java?rev=922692&view=auto
==============================================================================
---
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java
(added)
+++
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java
Sat Mar 13 23:40:34 2010
@@ -0,0 +1,31 @@
+/*
+ * 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 test;
+
+public class ExtraClass1 {
+ private String property;
+
+ public String getProperty() {
+ return property;
+ }
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+}
Propchange:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass1.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java?rev=922692&view=auto
==============================================================================
---
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java
(added)
+++
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java
Sat Mar 13 23:40:34 2010
@@ -0,0 +1,31 @@
+/*
+ * 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 test;
+
+public class ExtraClass2 {
+ private String property;
+
+ public String getProperty() {
+ return property;
+ }
+
+ public void setProperty(String property) {
+ this.property = property;
+ }
+}
Propchange:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/ExtraClass2.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java?rev=922692&view=auto
==============================================================================
---
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java
(added)
+++
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java
Sat Mar 13 23:40:34 2010
@@ -0,0 +1,25 @@
+/*
+ * 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 test;
+
+public class Service {
+ public String echo(String in) {
+ return in;
+ }
+}
Propchange:
axis/axis2/java/core/trunk/modules/tool/axis2-ant-plugin/src/test/java/test/Service.java
------------------------------------------------------------------------------
svn:eol-style = native