Nikhil,

I don't think there is an objection for adding jaxws-tools as a _test_
dependency. So as long you add the jaxws-tools dependency with
<scope>test</scope> there shouldn't be a problem.

Jarek

On Wed, Jul 14, 2010 at 10:40 PM, Nikhil V Thaker
<[email protected]> wrote:
>
> Thanks Jarek for the suggestion.
>
> The fact that there is an objection to putting jaxws-tools.jar as a 
> dependency would mean we cannot run wsGen. Unless I misunderstood Andreas 
> comments. To me we should always have jaxws-tools as dependency to jaxws 
> module, after all jaxws tools are prerequisite to jaxws runtime, a user of 
> jaxws runtime has to run wsGen or wsImport to build webservices application.
>
> Anyways, I will look and see if there is an alternate way to add these test 
> cases.
>
> Regards,
>
> Nikhil Thaker
> office: 919 254 9964
> [email protected]
>
>
> Jarek Gawor <[email protected]>
>
> 07/14/2010 03:38 PM
>
> Please respond to
> [email protected]
> To
> [email protected]
> cc
> Subject
> Re: svn commit: r963508 - in /axis/axis2/java/core/trunk/modules/jaxws:       
>   ./ src/org/apache/axis2/jaxws/runtime/description/marshal/impl/         
> test/org/apache/axis2/jaxws/wrapper/ 
> test/org/apache/axis2/jaxws/wrapper/beans/
>
>
>
>
> Just a couple of thoughts:
>
> 1) Since you already have wsgen-tests.xml ant script to run the wsgen
> you could setup the appropriate classpath to the tools.jar or
> classes.jar or whatever in it. You just might need to fork the ant
> process.
>
> 2) I don't think it's that horrible to commit some generate code
> especially if there isn't too much of it and the test case is
> important. Besides, Axis2 already has some generated code checked it.
>
> Jarek
>
> On Wed, Jul 14, 2010 at 4:00 PM, Nikhil V Thaker
> <[email protected]> wrote:
> >
> > Yes Andreas,
> >  I am running antrun plugin as the wsGen plugin has errors and is not fully 
> > matured, here's the URL that explains the issue I ran into 
> > http://jira.codehaus.org/browse/MNG-3586.
> >
> > So since I cannot run wsGen or cannot include generated artifacts I will 
> > just remove the test case. I will commit the changes soon.
> >
> > Regards,
> >
> > Nikhil Thaker
> > office: 919 254 9964
> > [email protected]
> >
> >
> > Andreas Veithen <[email protected]>
> >
> > 07/14/2010 02:48 PM
> >
> > Please respond to
> > [email protected]
> > To
> > [email protected]
> > cc
> > Subject
> > Re: svn commit: r963508 - in /axis/axis2/java/core/trunk/modules/jaxws:     
> >     ./ src/org/apache/axis2/jaxws/runtime/description/marshal/impl/         
> > test/org/apache/axis2/jaxws/wrapper/ 
> > test/org/apache/axis2/jaxws/wrapper/beans/
> >
> >
> >
> >
> > No, you are using the antrun plugin to execute the wsgen ant task.
> > What I meant was to use a real Maven plugin (either the one from
> > java.net or the one from CXF).
> >
> > -1 to commit any generated stuff into SVN.
> >
> > Andreas
> >
> > On Wed, Jul 14, 2010 at 21:42, Nikhil V Thaker
> > <[email protected]> wrote:
> > >
> > > Andreas - I had to add the tools.jar bit because maven plugin for wsGen 
> > > gave NoClassDef Found errors for classes packaged in tools.jar.
> > >
> > > Since this is causing a problem I will just package the generated 
> > > artifacts and remove the wsGen dependency.
> > >
> > > Thanks,
> > >
> > > Nikhil Thaker
> > > office: 919 254 9964
> > > [email protected]
> > >
> > >
> > > Andreas Veithen <[email protected]>
> > >
> > > 07/14/2010 01:44 PM
> > >
> > > Please respond to
> > > [email protected]
> > > To
> > > [email protected]
> > > cc
> > > Subject
> > > Re: svn commit: r963508 - in /axis/axis2/java/core/trunk/modules/jaxws:   
> > >       ./ src/org/apache/axis2/jaxws/runtime/description/marshal/impl/     
> > >     test/org/apache/axis2/jaxws/wrapper/ 
> > > test/org/apache/axis2/jaxws/wrapper/beans/
> > >
> > >
> > >
> > >
> > > Nikhil,
> > >
> > > I have some issues with the tools and jaxws-tools dependencies
> > > introduced by this change:
> > >
> > > * The change causes a build failure in Hudson. There will also be
> > > additional issues with tools.jar, because the way to declare this as a
> > > system dependency varies from one JDK to another. For example, I
> > > remember that on Mac OS X, it is completely different than on other
> > > JDKs.
> > >
> > > * I don't like the fact that jaxws-tools becomes a dependency of
> > > axis2-jaxws in scope compile, because it looks like this is only
> > > needed during the build and/or during the tests.
> > >
> > > I didn't review the change in detail, but wouldn't it be smarter to
> > > use one of the existing Maven plugins to do the wsgen stuff? They will
> > > take care of the tools.jar stuff as well.
> > >
> > > Andreas
> > >
> > > On Tue, Jul 13, 2010 at 00:16,  <[email protected]> wrote:
> > > > Author: nthaker
> > > > Date: Mon Jul 12 22:16:54 2010
> > > > New Revision: 963508
> > > >
> > > > URL: http://svn.apache.org/viewvc?rev=963508&view=rev
> > > > Log:
> > > > AXIS2-4775
> > > > This change ensures that we will use Request and Response wrapper Bean 
> > > > packaged by customer or we will Generate Wrappers if they are not 
> > > > packaged.
> > > >
> > > > Added:
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersException.java
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersService.java
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/WrapperBeanMarshallTests.java
> > > >    axis/axis2/java/core/trunk/modules/jaxws/wsgen-tests.xml
> > > > Modified:
> > > >    axis/axis2/java/core/trunk/modules/jaxws/pom.xml
> > > >    
> > > > axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/ArtifactProcessor.java
> > > >
> > > > Modified: axis/axis2/java/core/trunk/modules/jaxws/pom.xml
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/pom.xml?rev=963508&r1=963507&r2=963508&view=diff
> > > > ==============================================================================
> > > > --- axis/axis2/java/core/trunk/modules/jaxws/pom.xml (original)
> > > > +++ axis/axis2/java/core/trunk/modules/jaxws/pom.xml Mon Jul 12 
> > > > 22:16:54 2010
> > > > @@ -1,5 +1,4 @@
> > > >  <?xml version="1.0" encoding="UTF-8"?>
> > > > -
> > > >  <!-- >   ~ Licensed to the Apache Software Foundation (ASF) under one
> > > >   ~ or more contributor license agreements. See the NOTICE file
> > > > @@ -20,7 +19,7 @@
> > > >   -->
> > > >
> > > >  <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > > -         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> > > > http://maven.apache.org/maven-v4_0_0.xsd";>
> > > > +         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> > > > http://maven.apache.org/maven-v4_0_0.xsd";>
> > > >     <modelVersion>4.0.0</modelVersion>
> > > >     <parent>
> > > >         <groupId>org.apache.axis2</groupId>
> > > > @@ -98,7 +97,25 @@
> > > >             <version>${version}</version>
> > > >             <scope>test</scope>
> > > >         </dependency>
> > > > +        <dependency>
> > > > +            <groupId>wsdl4j</groupId>
> > > > +            <artifactId>wsdl4j</artifactId>
> > > > +        </dependency>
> > > > +        <dependency>
> > > > +            <groupId>com.sun.xml.ws</groupId>
> > > > +            <artifactId>jaxws-tools</artifactId>
> > > > +            <version>2.1.3</version>
> > > > +        </dependency>
> > > > +        <!-- If we dont include tools.jar as dependency, maven throws 
> > > > NoClassDefFound on wsGen run -->
> > > > +        <dependency>
> > > > +            <groupId>java</groupId>
> > > > +            <artifactId>tools</artifactId>
> > > > +            <version>$version</version>
> > > > +            <scope>system</scope>
> > > > +            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
> > > > +        </dependency>
> > > >     </dependencies>
> > > > +
> > > >     <build>
> > > >         <sourceDirectory>src</sourceDirectory>
> > > >         <testSourceDirectory>test</testSourceDirectory>
> > > > @@ -203,34 +220,39 @@
> > > >                     <compilerVersion>1.5</compilerVersion>
> > > >                     <source>1.5</source>
> > > >                     <target>1.5</target>
> > > > +
> > > >                 </configuration>
> > > >             </plugin>
> > > >             <plugin>
> > > >                 <groupId>org.apache.maven.plugins</groupId>
> > > >                 <artifactId>maven-antrun-plugin</artifactId>
> > > > +
> > > >                 <executions>
> > > >                     <execution>
> > > >                         <id>gen-ts</id>
> > > >                         <phase>generate-test-sources</phase>
> > > >                         <configuration>
> > > > -                            <tasks unless="maven.test.skip">
> > > > +                            <tasks unless="maven.test.skip">
> > > >                                 <!-- Theres got to be a better way to 
> > > > do this -->
> > > >                                 <property name="schema.source.dir" 
> > > > value="test-resources/xsd"/>
> > > >                                 <property name="wsdl.source.dir" 
> > > > value="test-resources/wsdl"/>
> > > > -                                <property 
> > > > name="schema.output.base.dir" value="target/schema"/>
> > > > +                                <property 
> > > > name="schema.output.base.dir" value="target/schema"/>
> > > >                                 <property 
> > > > name="schema.generated.src.dir" value="${schema.output.base.dir}/src"/>
> > > >                                 <property 
> > > > name="schema.generated.classes.dir"
> > > >                                           
> > > > value="${schema.output.base.dir}/classes"/>
> > > > +
> > > >                                 <!-- make the dirs -->
> > > >                                 <mkdir dir="${schema.output.base.dir}"/>
> > > >                                 <mkdir 
> > > > dir="${schema.generated.src.dir}"/>
> > > >                                 <mkdir 
> > > > dir="${schema.generated.classes.dir}"/>
> > > > +
> > > >                                 <!-- Run JAXB schema compiler with 
> > > > designated schemas -->
> > > >                                 <echo>Generating JAX-B classes from 
> > > > XSDs</echo>
> > > >
> > > >                                 <echo>Generating java from 
> > > > echo.xsd</echo>
> > > >                                 <java 
> > > > classname="com.sun.tools.xjc.Driver" fork="true">
> > > >                                     <classpath 
> > > > refid="maven.runtime.classpath"/>
> > > > +
> > > >                                     <classpath 
> > > > location="${compiled.classes.dir}"/>
> > > >                                     <arg line="-d 
> > > > ${schema.generated.src.dir} -quiet  ${schema.source.dir}/echo.xsd"/>
> > > >                                 </java>
> > > > @@ -266,7 +288,7 @@
> > > >                                     <classpath 
> > > > refid="maven.runtime.classpath"/>
> > > >                                     <classpath 
> > > > location="${compiled.classes.dir}"/>
> > > >                                     <arg line="-d 
> > > > ${schema.generated.src.dir} -quiet -wsdl 
> > > > ${wsdl.source.dir}/AddNumbers.wsdl"/>
> > > > -                                </java>
> > > > +                                </java>
> > > >                             </tasks>
> > > >                         </configuration>
> > > >                         <goals>
> > > > @@ -287,6 +309,22 @@
> > > >                                 <property name="addressing_version" 
> > > > value="${version}"/>
> > > >                                 <ant antfile="build.xml" 
> > > > inheritall="true" inheritrefs="true"
> > > >                                      dir="." target="build-repo"/>
> > > > +
> > > > +                                                               
> > > > <property name="compile_classpath" refid="maven.compile.classpath" />
> > > > +                                                               
> > > > <property name="runtime_classpath" refid="maven.runtime.classpath" />
> > > > +                                                               
> > > > <property name="test_classpath" refid="maven.test.classpath" />
> > > > +                                                               
> > > > <property name="plugin_classpath" refid="maven.plugin.classpath" />
> > > > +
> > > > +                                <!-- Defining wsGen task -->
> > > > +                                                               
> > > > <taskdef name="wsgen" loaderRef="refwsgen" 
> > > > classname="com.sun.tools.ws.ant.WsGen">
> > > > +                                                                       
> > > > <classpath>
> > > > +                                                                       
> > > >         <path refid="maven.runtime.classpath" />
> > > > +                                                                       
> > > >         <path refid="maven.compile.classpath" />
> > > > +                                                                       
> > > > </classpath>
> > > > +                                                               
> > > > </taskdef>
> > > > +                                                               <!-- 
> > > > Invoking test cases that need to generate artifacts using wsGen -->
> > > > +                                <ant antfile="wsgen-tests.xml" 
> > > > inheritall="true" inheritrefs="true"
> > > > +                                     dir="." target="run-wsgen-tests"/>
> > > >                             </tasks>
> > > >                         </configuration>
> > > >                         <goals>
> > > > @@ -374,6 +412,13 @@
> > > >             <plugin>
> > > >                 <groupId>org.apache.maven.plugins</groupId>
> > > >                 <artifactId>maven-surefire-report-plugin</artifactId>
> > > > +                <reportSets>
> > > > +                    <reportSet>
> > > > +                        <reports>
> > > > +                            <report>report-only</report>
> > > > +                        </reports>
> > > > +                    </reportSet>
> > > > +                </reportSets>
> > > >             </plugin>
> > > >         </plugins>
> > > >     </reporting>
> > > >
> > > > Modified: 
> > > > axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/ArtifactProcessor.java
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/ArtifactProcessor.java?rev=963508&r1=963507&r2=963508&view=diff
> > > > ==============================================================================
> > > > --- 
> > > > axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/ArtifactProcessor.java
> > > >  (original)
> > > > +++ 
> > > > axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/ArtifactProcessor.java
> > > >  Mon Jul 12 22:16:54 2010
> > > > @@ -238,12 +238,27 @@ class ArtifactProcessor {
> > > >                                 wrapperClass = newValue;
> > > >                             }
> > > >                         }
> > > > -                        if(cls==null && (type.equals("@WebFault")|| 
> > > > type.equals("faultInfo"))){
> > > > +
> > > > +                        if(cls==null &&
> > > > +                            (type.equals("@RequestWrapper")|| 
> > > > type.equals("@ResponseWrapper")||type.equals("@WebFault")|| 
> > > > type.equals("faultInfo"))){
> > > > +
> > > > +                            //Support for Fault Bean Generation
> > > >                             //As per JAX-WS 2.2 Specification section 
> > > > 3.7 an application programmer can choose not to
> > > >                             //package the faultBeans, if we have 
> > > > reached this point in the code then user has choosen
> > > >                             //not to package the fault bean. If there 
> > > > is a cache of generated artifacts available then
> > > >                             //lets look for the missing faultBean there.
> > > > -
> > > > +
> > > > +                            //Support for Wrapper Bean Generation
> > > > +                            //As per JAX-WS 2.2 Specificaiton section 
> > > > 3.6.2.1 pg 41 an application programmer does not use
> > > > +                            //the wrapper bean classes, so the 
> > > > application need not package these classes. If we have reached
> > > > +                            //this point in the code then user has 
> > > > choosen not to package these beans.
> > > > +
> > > > +                            //NOTE:If we find Generated artifacts from 
> > > > cache this guarantees that we will not use
> > > > +                            //DocLitWrappedMinimum marshaller code. 
> > > > The advantage of normal DocLitWrappedMarshaller is
> > > > +                            //that it is very robust and has support 
> > > > of lot more datatypes than in DocLitWrappedMinimum.
> > > > +                            if(log.isDebugEnabled()){
> > > > +                                log.debug("Adding cache to classpath");
> > > > +                            }
> > > >                             ClassFinderFactory cff =
> > > >                                 
> > > > (ClassFinderFactory)FactoryRegistry.getFactory(ClassFinderFactory.class);
> > > >                             ClassFinder cf = cff.getClassFinder();
> > > > @@ -317,11 +332,26 @@ class ArtifactProcessor {
> > > >                         if (cls2 == null) {
> > > >                             cls2 = loadClassOrNull(defaultValue, 
> > > > altClassLoader);
> > > >                         }
> > > > -                        if(cls2==null && (type.equals("faultInfo")|| 
> > > > type.equals("@WebFault"))){
> > > > -                            //As per JAX-WS 2.2 Specification section 
> > > > 3.7 an application programmer can choose not to
> > > > -                            //package the faultBeans, if we have 
> > > > reached this point in the code then user has choosen
> > > > -                            //not to package the fault bean. If there 
> > > > is a cache of generated artifacts available then
> > > > -                            //lets look for the missing faultBean 
> > > > there.
> > > > +                        if(cls2==null &&
> > > > +                                       
> > > > (type.equals("@RequestWrapper")|| 
> > > > type.equals("@ResponseWrapper")||type.equals("@WebFault")|| 
> > > > type.equals("faultInfo"))){
> > > > +
> > > > +                               //Support for Fault Bean Generation
> > > > +                               //As per JAX-WS 2.2 Specification 
> > > > section 3.7 an application programmer can choose not to
> > > > +                               //package the faultBeans, if we have 
> > > > reached this point in the code then user has choosen
> > > > +                               //not to package the fault bean. If 
> > > > there is a cache of generated artifacts available then
> > > > +                               //lets look for the missing faultBean 
> > > > there.
> > > > +
> > > > +                               //Support for Wrapper Bean Generation
> > > > +                               //As per JAX-WS 2.2 Specificaiton 
> > > > section 3.6.2.1 pg 41 an application programmer does not use
> > > > +                               //the wrapper bean classes, so the 
> > > > application need not package these classes. If we have reached
> > > > +                               //this point in the code then user has 
> > > > choosen not to package these beans.
> > > > +
> > > > +                               //NOTE:If we find Generated artifacts 
> > > > from cache this guarantees that we will not use
> > > > +                               //DocLitWrappedMinimum marshaller code. 
> > > > The advantage of normal DocLitWrappedMarshaller is
> > > > +                               //that it is very robust and has 
> > > > support of lot more datatypes than in DocLitWrappedMinimum.
> > > > +                               if(log.isDebugEnabled()){
> > > > +                                       log.debug("Adding cache to 
> > > > classpath");
> > > > +                               }
> > > >                             if(log.isDebugEnabled()){
> > > >                                 log.debug("Adding cache to classpath");
> > > >                             }
> > > >
> > > > Added: 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersException.java
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersException.java?rev=963508&view=auto
> > > > ==============================================================================
> > > > --- 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersException.java
> > > >  (added)
> > > > +++ 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersException.java
> > > >  Mon Jul 12 22:16:54 2010
> > > > @@ -0,0 +1,18 @@
> > > > +
> > > > +package org.apache.axis2.jaxws.wrapper.beans;
> > > > +
> > > > +import javax.xml.ws.WebFault;
> > > > +
> > > > +...@webfault(name = "AddNumbersFault", targetNamespace = 
> > > > "http://org/test/addnumbers";)
> > > > +public class AddNumbersException extends Exception
> > > > +{
> > > > +
> > > > +       private String message = null;
> > > > +       public AddNumbersException(){}
> > > > +       public AddNumbersException(String message){
> > > > +               this.message = message;
> > > > +       }
> > > > +       public String getInfo(){
> > > > +               return message;
> > > > +       }
> > > > +}
> > > >
> > > > Added: 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersService.java
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersService.java?rev=963508&view=auto
> > > > ==============================================================================
> > > > --- 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersService.java
> > > >  (added)
> > > > +++ 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/AddNumbersService.java
> > > >  Mon Jul 12 22:16:54 2010
> > > > @@ -0,0 +1,15 @@
> > > > +package org.apache.axis2.jaxws.wrapper.beans;
> > > > +
> > > > +
> > > > +
> > > > [email protected] 
> > > > (targetNamespace="http://org/test/addnumbers";, 
> > > > serviceName="AddNumbersService", portName="AddNumbersPort")
> > > > +public class AddNumbersService{
> > > > +
> > > > +    public int addNumbers(int arg0, int arg1) throws 
> > > > AddNumbersException {
> > > > +       if(arg0+arg1<0){
> > > > +                       throw new AddNumbersException("sum is less than 
> > > > 0");
> > > > +               }
> > > > +        return arg0+arg1;
> > > > +    }
> > > > +
> > > > +}
> > > > \ No newline at end of file
> > > >
> > > > Added: 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/WrapperBeanMarshallTests.java
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/WrapperBeanMarshallTests.java?rev=963508&view=auto
> > > > ==============================================================================
> > > > --- 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/WrapperBeanMarshallTests.java
> > > >  (added)
> > > > +++ 
> > > > axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/wrapper/beans/WrapperBeanMarshallTests.java
> > > >  Mon Jul 12 22:16:54 2010
> > > > @@ -0,0 +1,114 @@
> > > > +/**
> > > > + *
> > > > + */
> > > > +package org.apache.axis2.jaxws.wrapper.beans;
> > > > +
> > > > +
> > > > +import org.apache.axis2.jaxws.Constants;
> > > > +import org.apache.axis2.jaxws.description.DescriptionFactory;
> > > > +import org.apache.axis2.jaxws.description.EndpointDescription;
> > > > +import org.apache.axis2.jaxws.description.EndpointDescriptionJava;
> > > > +import org.apache.axis2.jaxws.description.OperationDescription;
> > > > +import org.apache.axis2.jaxws.description.ServiceDescription;
> > > > +import org.apache.axis2.jaxws.marshaller.MethodMarshaller;
> > > > +import 
> > > > org.apache.axis2.jaxws.marshaller.factory.MethodMarshallerFactory;
> > > > +import 
> > > > org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMinimalMethodMarshaller;
> > > > +import org.apache.axis2.jaxws.unitTest.TestLogger;
> > > > +
> > > > +import java.io.File;
> > > > +
> > > > +import junit.framework.TestCase;
> > > > +
> > > > +public class WrapperBeanMarshallTests extends TestCase {
> > > > +    /**
> > > > +     * This is the negative test case, when we do not use generated 
> > > > artifacts from cache
> > > > +     * and user did not package wrapper beans, we should see use of 
> > > > DocLitWrappedMinumumMarshaller.
> > > > +     */
> > > > +    public void testGetMarshallerOperationDescriptionBooleanNegative() 
> > > > {
> > > > +        
> > > > TestLogger.logger.debug("---------------------------------------");
> > > > +        TestLogger.logger.debug("test: " + getName());
> > > > +
> > > > +        String cache_location = "/target/wscache/classes";
> > > > +        try{
> > > > +            String baseDir = new 
> > > > File(System.getProperty("basedir",".")).getCanonicalPath();
> > > > +            cache_location = new 
> > > > File(baseDir+cache_location).getAbsolutePath();
> > > > +            TestLogger.logger.debug("cache location ="+cache_location);
> > > > +
> > > > +            //Get EndpointDescription.
> > > > +            //Set location on AxisConfiguraiton.
> > > > +            Class sei = AddNumbersService.class;
> > > > +            EndpointDescription description = getEndpointDesc(sei);
> > > > +            TestLogger.logger.debug("description objects where created 
> > > > successfully");
> > > > +            OperationDescription[] ops 
> > > > =description.getEndpointInterfaceDescription().getOperations();
> > > > +            assertNotNull( "OperationDescriptions where null", ops);
> > > > +            assertTrue("No Operation Descriptions where found", 
> > > > ops.length>0);
> > > > +            OperationDescription op = ops[0];
> > > > +            TestLogger.logger.debug("operation found, java 
> > > > methodName="+op.getJavaMethodName());
> > > > +            //Don not Set cache on AxisConfiguration.
> > > > +            //get Marshaller, verify its not DoclitWrappedMinimum.
> > > > +            TestLogger.logger.debug("ws_cache location NOT set on 
> > > > AxisConfigContext, location="+cache_location);
> > > > +            MethodMarshaller mm = 
> > > > MethodMarshallerFactory.getMarshaller(op, false);
> > > > +            assertNotNull("getMarshaller returned null", mm );
> > > > +            TestLogger.logger.debug("MethodMarshaller was created, 
> > > > type="+mm.getClass().getName());
> > > > +            assertTrue("Generated artifacts not found, Method 
> > > > marshaller should be DocLitWrappedMinimumMarshaller", (mm instanceof 
> > > > DocLitWrappedMinimalMethodMarshaller));
> > > > +        }catch(Exception e){
> > > > +            TestLogger.logger.debug("Exception ="+e.getMessage());
> > > > +            fail(e.getMessage());
> > > > +        }
> > > > +
> > > > +    }
> > > > +    /**
> > > > +     * In this test case user did not package wrapper beans but we add 
> > > > generated artifacts from cache, we should see use of
> > > > +     * DocLitWrappedMarshaller.
> > > > +     * Test method for {...@link 
> > > > org.apache.axis2.jaxws.marshaller.factory.MethodMarshallerFactory#getMarshaller(org.apache.axis2.jaxws.description.OperationDescription,
> > > >  boolean)}.
> > > > +     */
> > > > +    public void testGetMarshallerOperationDescriptionBoolean() {
> > > > +        
> > > > TestLogger.logger.debug("---------------------------------------");
> > > > +        TestLogger.logger.debug("test: " + getName());
> > > > +
> > > > +        String cache_location = "/target/wscache/classes";
> > > > +        try{
> > > > +            String baseDir = new 
> > > > File(System.getProperty("basedir",".")).getCanonicalPath();
> > > > +            cache_location = new 
> > > > File(baseDir+cache_location).getAbsolutePath();
> > > > +            TestLogger.logger.debug("cache location ="+cache_location);
> > > > +
> > > > +            //Get EndpointDescription.
> > > > +            //Set location on AxisConfiguraiton.
> > > > +            Class sei = AddNumbersService.class;
> > > > +            EndpointDescription description = getEndpointDesc(sei);
> > > > +            TestLogger.logger.debug("description objects where created 
> > > > successfully");
> > > > +            OperationDescription[] ops 
> > > > =description.getEndpointInterfaceDescription().getOperations();
> > > > +            assertNotNull( "OperationDescriptions where null", ops);
> > > > +            assertTrue("No Operation Descriptions where found", 
> > > > ops.length>0);
> > > > +            OperationDescription op = ops[0];
> > > > +            TestLogger.logger.debug("operation found, java 
> > > > methodName="+op.getJavaMethodName());
> > > > +            //Set cache on AxisConfiguration.
> > > > +            //get Marshaller, verify its not DoclitWrappedMinimum.
> > > > +            
> > > > description.getServiceDescription().getAxisConfigContext().setProperty(Constants.WS_CACHE,
> > > >  cache_location);
> > > > +            TestLogger.logger.debug("ws_cache location set on 
> > > > AxisConfigContext, location="+cache_location);
> > > > +            MethodMarshaller mm = 
> > > > MethodMarshallerFactory.getMarshaller(op, false);
> > > > +            assertNotNull("getMarshaller returned null", mm );
> > > > +            TestLogger.logger.debug("MethodMarshaller was created, 
> > > > type="+mm.getClass().getName());
> > > > +            assertTrue("Generated artifacts are in cache, Method 
> > > > marshaller should not be DocLitWrappedMinimumMarshaller", !(mm 
> > > > instanceof DocLitWrappedMinimalMethodMarshaller));
> > > > +        }catch(Exception e){
> > > > +            TestLogger.logger.debug("Exception ="+e.getMessage());
> > > > +            fail(e.getMessage());
> > > > +        }
> > > > +
> > > > +    }
> > > > +
> > > > +    private EndpointDescription getEndpointDesc(Class 
> > > > implementationClass) {
> > > > +        // Use the description factory directly; this will be done 
> > > > within the JAX-WS runtime
> > > > +        ServiceDescription serviceDesc =
> > > > +                
> > > > DescriptionFactory.createServiceDescription(implementationClass);
> > > > +        assertNotNull(serviceDesc);
> > > > +
> > > > +        EndpointDescription[] endpointDesc = 
> > > > serviceDesc.getEndpointDescriptions();
> > > > +        assertNotNull(endpointDesc);
> > > > +        assertEquals(1, endpointDesc.length);
> > > > +
> > > > +        // TODO: How will the JAX-WS dispatcher get the appropriate 
> > > > port (i.e. endpoint)?  Currently assumes [0]
> > > > +        EndpointDescription testEndpointDesc = endpointDesc[0];
> > > > +        return testEndpointDesc;
> > > > +    }
> > > > +}
> > > >
> > > > Added: axis/axis2/java/core/trunk/modules/jaxws/wsgen-tests.xml
> > > > URL: 
> > > > http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/wsgen-tests.xml?rev=963508&view=auto
> > > > ==============================================================================
> > > > --- axis/axis2/java/core/trunk/modules/jaxws/wsgen-tests.xml (added)
> > > > +++ axis/axis2/java/core/trunk/modules/jaxws/wsgen-tests.xml Mon Jul 12 
> > > > 22:16:54 2010
> > > > @@ -0,0 +1,34 @@
> > > > +<?xml version="1.0" encoding="UTF-8"?>
> > > > +
> > > > +<project basedir="." default="run-wsgen-tests" name="wsgen-tests">
> > > > +
> > > > +       <property name="wscache.output.base.dir" value="target/wscache" 
> > > > />
> > > > +       <property name="wscache.generated.src.dir" 
> > > > value="${wscache.output.base.dir}/src" />
> > > > +       <property name="wscache.generated.classes.dir" 
> > > > value="${wscache.output.base.dir}/classes" />
> > > > +       <property name="compile.test.classes" 
> > > > value="target/test-classes" />
> > > > +
> > > > +
> > > > +    <target name="run-wsgen-tests" depends="wrapper-beans"/>
> > > > +
> > > > +
> > > > +       <target name="create-cache">
> > > > +               <mkdir dir="${wscache.output.base.dir}" />
> > > > +               <mkdir dir="${wscache.generated.src.dir}" />
> > > > +               <mkdir dir="${wscache.generated.classes.dir}" />
> > > > +       </target>
> > > > +
> > > > +       <target name="wrapper-beans" depends="create-cache">
> > > > +          <echo>Generating artifacts for 
> > > > org.apache.axis2.jaxws.wrapper.beans.AddNumbersService </echo>
> > > > +               <wsgen
> > > > +                 
> > > > sei="org.apache.axis2.jaxws.wrapper.beans.AddNumbersService"
> > > > +                 destdir="${wscache.generated.classes.dir}"
> > > > +                 resourcedestdir="${wscache.generated.src.dir}"
> > > > +                 keep="false"
> > > > +                 verbose="false"
> > > > +                 genwsdl="true">
> > > > +                 <classpath>
> > > > +                  <pathelement path="${compile.test.classes}" />
> > > > +                  </classpath>
> > > > +               </wsgen>
> > > > +       </target>
> > > > +</project>
> > > > \ No newline at end of file
> > > >
> > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to