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