<?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
  ~ 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.
  -->

<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">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-parent</artifactId>
        <version>1.5-beta-1</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
    <artifactId>axis2-jaxws-integration</artifactId>
    <name>Apache Axis2 - JAXWS Integration Tests</name>
    <description>Axis2 JAXWS Integration Tests</description>
    <dependencies>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-annotation_1.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>addressing</artifactId>
            <version>${version}</version>
            <type>mar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-saaj</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-metadata</artifactId>
            <version>${version}</version>
        </dependency>
         <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis2-transport-http</artifactId>
        </dependency>
         <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis2-transport-tcp</artifactId>
        </dependency>
         <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis2-transport-local</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxws</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>xml-resolver</groupId>
            <artifactId>xml-resolver</artifactId>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>jsr173</artifactId>
                    <groupId>javax.xml</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-xjc</artifactId>
        </dependency>
        <dependency>
            <groupId>xalan</groupId>
            <artifactId>xalan</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>jsr173</artifactId>
                    <groupId>javax.xml</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
            <resource>
                <directory>conf</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>src</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>test</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.wsdl</include>
                    <include>**/*.properties</include>
                </includes>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <compilerArgument>
                        -Xbootclasspath/p:${basedir}/../jaxws-api/target/classes${path.separator}${basedir}/../jws-api/target/classes
                    </compilerArgument>
                    <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>
                                <!-- 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.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 soap 11</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}/soap11.xsd"/>
                                </java>
                                <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>
                                <echo>Generating java from stock1.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}/stock1.xsd"/>
                                </java>
                                <echo>Generating java from stock2.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}/stock2.xsd"/>
                                </java>
                                <echo>Generating java from samplemtom.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}/samplemtom.xsd"/>
                                </java>
                                <echo>Generating java from greeterTypes.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}/greeterTypes.xsd"/>
                                </java>
                                <echo>Generating java from ProxyDocLitWrapped.wsdl</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 -p org.test.proxy.doclitwrapped -quiet -wsdl ${wsdl.source.dir}/ProxyDocLitWrapped.wsdl"/>
                                </java>
                                <echo>Generating java from AddNumbers.wsdl</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 -wsdl ${wsdl.source.dir}/AddNumbers.wsdl"/>
                                </java>
                                <echo>Generating java from ProxyDocLitnonWrapped.wsdl</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 -wsdl ${wsdl.source.dir}/ProxyDocLitnonWrapped.wsdl"/>
                                </java>
                                <echo>Generating java from samplemtomjpeg.wsdl</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 -wsdl ${wsdl.source.dir}/samplemtomjpeg.wsdl"/>
                                </java>
                                <echo>Generating java from RPCLit.wsdl</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} -p org.test.proxy.rpclit -quiet -wsdl ${wsdl.source.dir}/RPCLit.wsdl"/>
                                </java>
                                <echo>Generating java from RPCLitSWA.wsdl</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} -p org.test.proxy.rpclitswa -quiet -wsdl ${wsdl.source.dir}/RPCLitSWA.wsdl"/>
                                </java>
                                <echo>Generating java from gorilla_dlw.wsdl</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 -wsdl ${wsdl.source.dir}/gorilla_dlw.wsdl"/>
                                </java>
                                <echo>Generating java from SOAP12Echo.wsdl</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 -wsdl ${wsdl.source.dir}/SOAP12Echo.wsdl"/>
                                </java>
                                <echo>Generating java from AddNumbersHandler.wsdl</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 -wsdl ${wsdl.source.dir}/AddNumbersHandler.wsdl"/>
                                </java>
                                <echo>Generating java from async_doclitwr.wsdl</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 -wsdl ${wsdl.source.dir}/async_doclitwr.wsdl"/>
                                </java>
                                <echo>Generating java from async_doclitwr2.wsdl</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 -wsdl ${wsdl.source.dir}/async_doclitwr2.wsdl"/>
                                </java>
                                <echo>Generating java from FaultyWebService.wsdl</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 -wsdl ${wsdl.source.dir}/FaultyWebService.wsdl"/>
                                </java>
                                <echo>Generating java from FaultsService.wsdl</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 -wsdl ${wsdl.source.dir}/FaultsService.wsdl"/>
                                </java>
                                <echo>Generating java from jaxbsource</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 -p org.test.dispatch.jaxbsource ${schema.source.dir}/jaxbsource.xsd"/>
                                </java>
                                <echo>Generating java from doclit_nonwrap.wsdl for javabean endpoint
                                    support
                                </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 -wsdl ${wsdl.source.dir}/doclit_nonwrap.wsdl"/>
                                </java>
                                <echo>Generating java from doclitwrap.wsdl for javabean endpoint
                                    support
                                </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 -wsdl ${wsdl.source.dir}/doclitwrap.wsdl"/>
                                </java>
                                <echo>Generating java from doclitbare.wsdl for javabean endpoint
                                    support
                                </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 -wsdl ${wsdl.source.dir}/doclitbare.wsdl"/>
                                </java>
                                
                                <echo>Generating java from EchoMessage.wsdl for javabean endpoint
                                    support
                                </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 -wsdl ${wsdl.source.dir}/EchoMessage.wsdl"/>
                                </java>
                                
                                <echo>Generating java from resourceinjection.wsdl for javabean
                                    endpoint Resource Injection support
                                </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 -wsdl ${wsdl.source.dir}/resourceinjection.wsdl"/>
                                </java>
                                <echo>Generating java from AnyType.wsdl for javabean endpoint
                                    AnyType support
                                </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 -wsdl ${wsdl.source.dir}/AnyType.wsdl"/>
                                </java>
                                <echo>Generating java from MessageContext.wsdl for message context
                                    properties support
                                </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 -wsdl ${wsdl.source.dir}/MessageContext.wsdl"/>
                                </java>
                                <echo>Generating java from WSDLMultiTests.wsdl</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 -wsdl ${wsdl.source.dir}/WSDLMultiTests.wsdl"/>
                                </java>
                                <echo>Generating java from Polymorphic shapes.wsdl for javabean
                                    endpoint support
                                </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 -wsdl ${wsdl.source.dir}/shapes.wsdl"/>
                                </java>
                                <echo>Generating java from SOAPActionTest.wsdl</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 -wsdl ${wsdl.source.dir}/SOAPActionTest.wsdl"/>
                                </java>
                                <echo>Generating java from rpclitenum.wsdl</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 -wsdl ${wsdl.source.dir}/rpclitenum.wsdl"/>
                                </java>
                                <echo>Generating java from AddNumbersHandler.wsdl</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 -wsdl ${wsdl.source.dir}/AddNumbersHandler.wsdl"/>
                                </java>
                                <echo>Generating java from rpclitstringarray.wsdl</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 -wsdl ${wsdl.source.dir}/rpclitstringarray.wsdl"/>
                                </java>
                                <echo>Generating java from swamtomservice.wsdl</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 -wsdl ${wsdl.source.dir}/swamtomservice.wsdl"/>
                                </java>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>build-repo</id>
                        <phase>test-compile</phase>
                        <configuration>
                            <tasks>

                                <!-- Enable Addressing on the client side -->
                                <mkdir dir="./target/client-repo/modules/"/>
                                <copy file="../addressing/target/addressing-${version}.mar"
                                      tofile="./target/client-repo/modules/addressing-${version}.mar"/>

                                <!-- Enable Addressing on the server side -->
                                <mkdir dir="./target/test-classes/modules/"/>
                                <copy file="../addressing/target/addressing-${version}.mar"
                                      tofile="./target/test-classes/modules/addressing-${version}.mar"/>

                                <!-- ================================================================ -->
                                <!--- Non-JAXWS services -->
                                <!-- ================================================================ -->

                                <copy toDir="target/test-classes/services/EchoService/">
                                    <fileset dir="target/test-classes">
                                        <include name="server/**"/>
                                    </fileset>
                                    <fileset dir="test/server">
                                        <exclude name="**/*.java"/>
                                    </fileset>
                                </copy>
                                <copy toDir="target/test-classes/services/BookStoreService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/client/soapaction/**"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/client/soapaction/server">
                                        <include name="META-INF/**"/>
                                    </fileset>
                                </copy>

                                <mkdir dir="./target/test-classes/servicejars"/>
                                <!-- ================================================================ -->
                                <!--- JAXWS services -->
                                <!-- ================================================================ -->
                                <!-- ================================================================ -->
                                <!--- Provider endpoint Service Samples -->
                                <!-- ================================================================ -->
                                <copy toDir="target/test-classes/servicejars/WSGenService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/wsgen/WSGenInterface.class"/>
                                        <include name="org/apache/axis2/jaxws/sample/wsgen/WSGenImpl.class"/>
                                        <include name="org/apache/axis2/jaxws/sample/wsgen/jaxws/**"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/wsgen">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/WSGenService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/WSGenService"
                                        />
                                <delete dir="target/test-classes/servicejars/WSGenService"/>

                                <copy toDir="target/test-classes/servicejars/BasicAuthSecurityService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/security/server/**"/>
                                        <exclude name="org/apache/axis2/jaxws/security/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/security/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/BasicAuthSecurityService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/BasicAuthSecurityService"
                                        />
                                <delete dir="target/test-classes/servicejars/BasicAuthSecurityService"/>

                                <copy toDir="target/test-classes/servicejars/StringProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/string/**"/>
                                        <exclude name="org/apache/axis2/jaxws/provider/string/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/string">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/StringProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/StringProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/StringProviderService"/>

                                <copy toDir="target/test-classes/servicejars/StringMessageProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/stringmsg/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/provider/stringmsg/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/stringmsg">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/StringMessageProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/StringMessageProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/StringMessageProviderService"/>

                                <copy toDir="target/test-classes/servicejars/SourceProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/source/**"/>
                                        <exclude name="org/apache/axis2/jaxws/provider/source/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/source">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SourceProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SourceProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/SourceProviderService"/>

                                <copy toDir="target/test-classes/servicejars/SourceMessageProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/sourcemsg/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/provider/sourcemsg/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/sourcemsg">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SourceMessageProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SourceMessageProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/SourceMessageProviderService"/>

                                <copy toDir="target/test-classes/servicejars/SoapMessageProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/soapmsg/**"/>
                                        <exclude name="org/apache/axis2/jaxws/provider/soapmsg/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/soapmsg">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SoapMessageProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SoapMessageProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/SoapMessageProviderService"/>

                                <copy toDir="target/test-classes/servicejars/SoapMessageCheckMTOMProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/soapmsgcheckmtom/**"/>
                                        <exclude name="org/apache/axis2/jaxws/provider/soapmsgcheckmtom/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/soapmsgcheckmtom">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SoapMessageCheckMTOMProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SoapMessageCheckMTOMProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/SoapMessageCheckMTOMProviderService"/>
                                
                                <copy toDir="target/test-classes/servicejars/SoapMessageMUProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/soapmsgmu/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/provider/soapmsgmu/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/soapmsgmu">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SoapMessageMUProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SoapMessageMUProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/SoapMessageMUProviderService"/>

                                <copy toDir="target/test-classes/servicejars/JAXBProviderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/jaxb/**"/>
                                        <exclude name="org/apache/axis2/jaxws/provider/jaxb/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/jaxb">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="target/schema/classes">
                                        <include name="org/test/mtom/**"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/JAXBProviderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/JAXBProviderService"
                                        />
                                <delete dir="target/test-classes/servicejars/JAXBProviderService"/>

                                <copy toDir="target/test-classes/servicejars/SendImageService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/mtom1/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/mtom1/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/mtom1">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="target/schema/classes">
                                        <include name="org/apache/axis2/jaxws/sample/mtom1/**"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SendImageService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SendImageService"
                                        />
                                <delete dir="target/test-classes/servicejars/SendImageService"/>

                                <copy toDir="target/test-classes/servicejars/SOAP12Service/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/dispatch/server/**"/>
                                        <exclude name="org/apache/axis2/jaxws/dispatch/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/dispatch/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SOAP12Service.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SOAP12Service"
                                        />
                                <delete dir="target/test-classes/servicejars/SOAP12Service"/>


                               <copy toDir="target/test-classes/servicejars/SWAMTOMService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/swamtom/server/**"/>
                                        <exclude name="org/apache/axis2/jaxws/swamtom/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/swamtom/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SWAMTOMService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SWAMTOMService"/>
                                <delete dir="target/test-classes/servicejars/SWAMTOMService"/>
                                <!-- ================================================================ -->
                                <!--- Proxy endpoint Service Samples -->
                                <!-- ================================================================ -->
                                <copy toDir="target/test-classes/servicejars/ProxyDocLitWrapped/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/doclitwrapped/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/proxy/doclitwrapped/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/doclitwrapped">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/ProxyDocLitWrapped.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/ProxyDocLitWrapped"
                                        />
                                <delete dir="target/test-classes/servicejars/ProxyDocLitWrapped"/>

                                <copy toDir="target/test-classes/servicejars/ProxyDocLitnonWrapped/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/doclitnonwrapped/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/proxy/doclitnonwrapped/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/doclitnonwrapped">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/ProxyDocLitnonWrapped.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/ProxyDocLitnonWrapped"
                                        />
                                <delete dir="target/test-classes/servicejars/ProxyDocLitnonWrapped"/>

                                <copy toDir="target/test-classes/servicejars/RPCLit/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/rpclit/**"/>
                                        <exclude name="org/apache/axis2/jaxws/proxy/rpclit/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/rpclit">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/RPCLit.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/RPCLit"
                                        />
                                <delete dir="target/test-classes/servicejars/RPCLit"/>

                                <copy toDir="target/test-classes/servicejars/RPCLitSWA/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/rpclitswa/**"/>
                                        <exclude name="org/apache/axis2/jaxws/proxy/rpclitswa/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/rpclitswa">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/RPCLitSWA.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/RPCLitSWA"
                                        />
                                <delete dir="target/test-classes/servicejars/RPCLitSWA"/>

                                <copy toDir="target/test-classes/servicejars/AddressingProvider/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/provider/addressing/**"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/provider/addressing/">
                                        <include name="META-INF/**"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/AddressingProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AddressingProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/AddressingProvider"/>

                                <copy toDir="target/test-classes/servicejars/SOAP12EchoService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/soap12/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/proxy/soap12/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/soap12/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/SOAP12EchoService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/SOAP12EchoService"
                                        />
                                <delete dir="target/test-classes/servicejars/SOAP12EchoService"/>

                                <copy toDir="target/test-classes/servicejars/gorilla_dlw/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/proxy/gorilla_dlw/**"/>
                                        <exclude name="org/apache/axis2/jaxws/proxy/gorilla_dlw/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/proxy/gorilla_dlw">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/gorilla_dlw.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/gorilla_dlw"
                                        />
                                <delete dir="target/test-classes/servicejars/gorilla_dlw"/>

                                <!-- ================================================================ -->
                                <!--- XML HTTP Tests -->
                                <!-- ================================================================ -->
                                <copy toDir="target/test-classes/servicejars/XPayloadStringProvider/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/string/*.class"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/XPayloadStringProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/XPayloadStringProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/XPayloadStringProvider"/>

                                <copy toDir="target/test-classes/servicejars/XMessageStringProvider/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/string/*.class"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/string">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/XMessageStringProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/XMessageStringProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/XMessageStringProvider"/>

                                <copy toDir="target/test-classes/servicejars/XPayloadSourceProvider/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/source/*.class"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/XPayloadSourceProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/XPayloadSourceProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/XPayloadSourceProvider"/>

                                <copy toDir="target/test-classes/servicejars/XMessageSourceProvider/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/source/*.class"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/source">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/XMessageSourceProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/XMessageSourceProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/XMessageSourceProvider"/>

                                <copy toDir="target/test-classes/servicejars/XMessageDataSourceProvider/">
                                    <fileset dir="target/test-classes">
                                        <include
                                                name="org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/*.class"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/XMessageDataSourceProvider.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/XMessageDataSourceProvider"
                                        />
                                <delete dir="target/test-classes/servicejars/XMessageDataSourceProvider"/>

                                <!-- ================================================================ -->
                                <!--- Java Bean Endpoint Samples -->
                                <!-- ================================================================ -->
                                <copy toDir="target/test-classes/servicejars/AddressBookService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/addressbook/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/addressbook/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/addressbook">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/AddressBookService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AddressBookService"
                                        />
                                <delete dir="target/test-classes/servicejars/AddressBookService"/>


                                <copy toDir="target/test-classes/servicejars/AppleFinderService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/type_substitution/*"/>
                                        <include name="org/apache/axis2/jaxws/type_substitution/jaxws/*"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/AppleFinderService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AppleFinderService"/>
                                <delete dir="target/test-classes/servicejars/AppleFinderService"/>

                                <copy toDir="target/test-classes/servicejars/MtomSampleService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/mtom/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/mtom/META-INF/services.xml"/>
                                    </fileset>

                                    <fileset dir="test/org/apache/axis2/jaxws/sample/mtom">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>

                                </copy>
                                <zip destfile="target/test-classes/servicejars/MtomSampleService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/MtomSampleService"
                                        />
                                <delete dir="target/test-classes/servicejars/MtomSampleService"/>
                                <copy toDir="target/test-classes/servicejars/DocLitNonWrapService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/nonwrap/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/nonwrap/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/nonwrap">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/DocLitNonWrapService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/DocLitNonWrapService"
                                        />
                                <delete dir="target/test-classes/servicejars/DocLitNonWrapService"/>
                                <copy toDir="target/test-classes/servicejars/DocLitWrapService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/wrap/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/wrap/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/wrap">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/DocLitWrapService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/DocLitWrapService"
                                        />
                                <delete dir="target/test-classes/servicejars/DocLitWrapService"/>
                                <copy toDir="target/test-classes/servicejars/AddNumbersService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/addnumbers/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/addnumbers/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/addnumbers">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/AddNumbersService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AddNumbersService"
                                        />
                                <delete dir="target/test-classes/servicejars/AddNumbersService"/>
                                <copy toDir="target/test-classes/servicejars/AddNumbersHandlerService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/addnumbershandler/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/addnumbershandler/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/addnumbershandler">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/AddNumbersHandlerService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AddNumbersHandlerService"
                                        />
                                <delete dir="target/test-classes/servicejars/AddNumbersHandlerService"/>
                                <copy toDir="target/test-classes/servicejars/GreeterService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/dlwmin/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/dlwmin/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/dlwmin">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/GreeterService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/GreeterService"
                                        />
                                <delete dir="target/test-classes/servicejars/GreeterService"/>

                                <copy toDir="target/test-classes/servicejars/AsyncService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/parallelasync/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/parallelasync/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/parallelasync/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/AsyncService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AsyncService"
                                        />
                                <delete dir="target/test-classes/servicejars/AsyncService"/>

                                <copy toDir="target/test-classes/servicejars/AsyncService2/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/asyncdoclit/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/asyncdoclit/server/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/asyncdoclit/server">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/AsyncService2.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AsyncService2"
                                        />
                                <delete dir="target/test-classes/servicejars/AsyncService2"/>

                                <copy toDir="target/test-classes/servicejars/FaultyWebServiceService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/faults/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/faults/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/faults">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/FaultyWebServiceService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/FaultyWebServiceService"
                                        />
                                <delete dir="target/test-classes/servicejars/FaultyWebServiceService"/>

                                <copy toDir="target/test-classes/servicejars/FaultsService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/faultsservice/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/faultsservice/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/faultsservice">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/FaultsService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/FaultsService"
                                        />
                                <delete dir="target/test-classes/servicejars/FaultsService"/>

                                <copy toDir="target/test-classes/servicejars/BareDocLitService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/doclitbare/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/doclitbare/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/doclitbare">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/BareDocLitService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/BareDocLitService"
                                        />
                                <delete dir="target/test-classes/servicejars/BareDocLitService"/>

                                <copy toDir="target/test-classes/servicejars/EchoMessageService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/nonanonymous/complextype/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/nonanonymous/complextype/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/nonanonymous/complextype">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/EchoMessageService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/EchoMessageService"
                                        />
                                <delete dir="target/test-classes/servicejars/EchoMessageService"/>

                                <copy toDir="target/test-classes/servicejars/ResourceInjectionService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/resourceinjection/**"/>
                                        <exclude name="org/apache/axis2/jaxws/sample/resourceinjection/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/resourceinjection">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/ResourceInjectionService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/ResourceInjectionService"
                                        />
                                <delete dir="target/test-classes/servicejars/ResourceInjectionService"/>

                                <copy toDir="target/test-classes/servicejars/AnyTypeMessageService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/anytype/**"/>
                                        <exclude name="org/apache/axis2/jaxws/anytype/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/anytype">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/AnyTypeMessageService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/AnyTypeMessageService"
                                        />
                                <delete dir="target/test-classes/servicejars/AnyTypeMessageService"/>

                                <copy toDir="target/test-classes/servicejars/MessageContextService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/context/**"/>
                                        <exclude name="org/apache/axis2/jaxws/context/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/context">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/MessageContextService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/MessageContextService"
                                        />
                                <delete dir="target/test-classes/servicejars/MessageContextService"/>

                                <copy toDir="target/test-classes/servicejars/PolymorphicShapeService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/polymorphic/shape/**"/>
                                        <exclude name="org/apache/axis2/jaxws/polymorphic/shape/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/polymorphic/shape">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/PolymorphicShapeService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/PolymorphicShapeService"
                                        />
                                <delete dir="target/test-classes/servicejars/PolymorphicShapeService"/>

                                <copy toDir="target/test-classes/servicejars/RPCLitEnumService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/rpclit/enumtype/**"/>
                                        <exclude name="org/apache/axis2/jaxws/rpclit/enumtype/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/rpclit/enumtype">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/RPCLitEnumService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/RPCLitEnumService"
                                        />
                                <delete dir="target/test-classes/servicejars/RPCLitEnumService"/>

                                <copy toDir="target/test-classes/servicejars/RPCLitStringArrayService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/rpclit/stringarray/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/rpclit/stringarray/META-INF/services.xml"/>
                                        <include name="org/test/rpclit/stringarray/**"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/rpclit/stringarray/">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/RPCLitStringArrayService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/RPCLitStringArrayService"
                                        />
                                <delete dir="target/test-classes/servicejars/RPCLitStringArrayService"/>


                                <copy toDir="target/test-classes/servicejars/BareDocLitMinService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/doclitbaremin/**"/>
                                        <exclude
                                                name="org/apache/axis2/jaxws/sample/doclitbaremin/META-INF/services.xml"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/doclitbaremin/">
                                        <include name="META-INF/**"/>
                                        <exclude name="META-INF/services.xml"/>
                                    </fileset>
                                </copy>

                                <zip destfile="target/test-classes/servicejars/BareDocLitMinService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/BareDocLitMinService"
                                        />
                                <delete dir="target/test-classes/servicejars/BareDocLitMinService"/>

                                <copy toDir="target/test-classes/servicejars/StringListService/">
                                    <fileset dir="target/test-classes">
                                        <include name="org/apache/axis2/jaxws/sample/stringlist/**"/>
                                    </fileset>
                                    <fileset dir="test/org/apache/axis2/jaxws/sample/stringlist/">
                                        <include name="META-INF/**"/>
                                    </fileset>
                                </copy>
                                <zip destfile="target/test-classes/servicejars/StringListService.jar"
                                     basedir="${pom.basedir}/target/test-classes/servicejars/StringListService"
                                        />
                                <delete dir="target/test-classes/servicejars/StringListService"/>
                                
								<copy toDir="target/test-classes/servicejars/SOAPBindingProviderService/">
									<fileset dir="target/test-classes">
									   <include name="org/apache/axis2/jaxws/provider/soapbinding/SOAPBindingProvider**"/>
									   <exclude name="org/apache/axis2/jaxws/provider/soapbinding/META-INF/services.xml" />
									</fileset>
									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding">
									   <include name="META-INF/**"/>
									   <exclude name = "services.xml" />
									</fileset>
								</copy>
								<zip destfile="target/test-classes/servicejars/SOAPBindingProviderService.jar"
						             basedir="${pom.basedir}/target/test-classes/servicejars/SOAPBindingProviderService"
						        />
						        
						        <delete dir="target/test-classes/servicejars/SOAPBindingProviderService"/>
						        
								<copy toDir="target/test-classes/servicejars/SOAPBindingStringProviderService/">
									<fileset dir="target/test-classes">
									   <include name="org/apache/axis2/jaxws/provider/soapbinding/string/**"/>
									   <exclude name="org/apache/axis2/jaxws/provider/soapbinding/string/META-INF/services.xml" />
									</fileset>
									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding/string">
									   <include name="META-INF/**"/>
									    <exclude name = "services.xml" />
									</fileset>
								</copy>
								
								<zip destfile="target/test-classes/servicejars/SOAPBindingStringProviderService.jar"
						             basedir="${pom.basedir}/target/test-classes/servicejars/SOAPBindingStringProviderService"
						        />
						        <delete dir="target/test-classes/servicejars/SOAPBindingStringProviderService"/>
						        
								<copy toDir="target/test-classes/servicejars/SoapMessageProviderService/">
									<fileset dir="target/test-classes">
									   <include name="org/apache/axis2/jaxws/provider/soapbinding/soapmsg/**"/>
									   <exclude name="org/apache/axis2/jaxws/provider/soapbinding/soapmsg/META-INF/services.xml" />
									</fileset>
									<fileset dir="test/org/apache/axis2/jaxws/provider/soapbinding/soapmsg">
									   <include name="META-INF/**"/>
									    <exclude name = "services.xml" />
									</fileset>
								</copy>
								<zip destfile="target/test-classes/servicejars/SoapMessageProviderService.jar"
						             basedir="${pom.basedir}/target/test-classes/servicejars/SoapMessageProviderService"
						        />
						        <delete dir="target/test-classes/servicejars/SoapMessageProviderService"/>
						        
								<copy toDir="target/test-classes/servicejars/HandlerHeaderService/">
									<fileset dir="target/test-classes">
									   <include name="org/apache/axis2/jaxws/handler/header/**"/>
									</fileset>
									<fileset dir="test/org/apache/axis2/jaxws/handler/header">
									   <include name="META-INF/**"/>
									   <include name="handler.xml"/>									   
									</fileset>
									
								</copy>	
								<!-- We have to explicitly copy the xml file refered to by the client interface HandlerChain annotation -->
								<copy toDir="target/test-classes/">
									<fileset dir="test">
										<include name="org/apache/axis2/jaxws/handler/header/handler.xml"/>
									</fileset>
								</copy>
								
								<zip destfile="target/test-classes/servicejars/HandlerHeaderService.jar"
									basedir="${pom.basedir}/target/test-classes/servicejars/HandlerHeaderService"
								/>
								<delete dir="target/test-classes/servicejars/HandlerHeaderService"/>
								
                                <copy toDir="target/test-classes/">
                                    <fileset dir="test-resources/">
                                        <include name="**/*.properties"/>
                                        <include name="**/axis2.xml"/>
                                    </fileset>
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-test-source</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${basedir}/target/schema/src</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <skip>false</skip>
                    <forkMode>pertest</forkMode>
                    <argLine>-Xms256m -Xmx512m</argLine>
                    <!-- Enable the next 2 lines if you want to attach a debugger
                    <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
                    <includes>
                        <include>**/MultiRedirectionCatalogTest.java</include>
                        <include>**/DispatchSoapActionTest.java</include>
                        <include>**/ProxySoapActionTest.java</include>
                        <include>**/DispatchMTOMFeatureTest.java</include>
                        <include>**/InvocationControllerTest.java</include>
                        <include>**/ProxyMTOMFeatureTest.java</include>
                        <include>**/SOAP12DispatchTest.java</include>
                        <include>**/OMElementDispatchTest.java</include>
                        <include>**/JAXBContextTest.java</include>

                        <include>**/StringProviderTests.java</include>
                        <include>**/SOAPFaultProviderTests.java</include>
                        <include>**/StringMessageProviderTests.java</include>
                        <include>**/SourceProviderTests.java</include>
                        <include>**/SourceMessageProviderTests.java</include>
                        <include>**/SoapMessageMUProviderTests.java</include>
                        
                        <include>**/ProxyTests.java</include>
                        <include>**/ProxyNonWrappedTests.java</include>
                        <include>**/RPCProxyTests.java</include>
                        <include>**/RPCLitSWAProxyTests.java</include>

                        <include>**/GorillaDLWProxyTests.java</include>
                        <include>**/SOAP12ProxyTests.java</include>
                        <include>**/BasicAuthSecurityTests.java</include>
                        <include>**/AddressBookTests.java</include>
                        <include>**/MtomSampleTests.java</include>
                        <include>**/JAXBProviderTests.java</include>
                        <include>**/BareTests.java</include>
                        <include>**/AddNumbersHandlerTests.java</include>
                        <include>**/AddNumbersTests.java</include>
                        <include>**/DLWMinTests.java</include>
                        <include>**/FaultsServiceTests.java</include>
                        <include>**/WrapTests.java</include>
                        <include>**/SoapMessageProviderTests.java</include>
                        <include>**/WSGenTests.java</include>
                        <include>**/NonAnonymousComplexTypeTests.java</include>
                        <include>**/ResourceInjectionTests.java</include>
                        <include>**/AnyTypeTests.java</include>
                        <include>**/PolymorphicTests.java</include>

                        <include>**/DispatchXPayloadStringTests.java</include>
                        <include>**/DispatchXMessageStringTests.java</include>
                        <include>**/DispatchXPayloadSourceTests.java</include>
                        <include>**/DispatchXMessageSourceTests.java</include>
                        <include>**/DispatchXPayloadJAXBTests.java</include>
                        <include>**/DispatchXMessageDataSourceTests.java</include>
                        <include>**/RPCLitEnumTests.java</include>
                        <include>**/RPCLitStringArrayTests.java</include>

                        <include>**/StreamSourceDispatchTests.java</include>
                        <include>**/DOMSourceDispatchTests.java</include>
                        <include>**/SAXSourceDispatchTests.java</include>
                        <include>**/SOAPMessageDispatchTests.java</include>
                        <include>**/JAXBDispatchTests.java</include>
                        <include>**/JAXBSourceDispatchTests.java</include>
                        <include>**/StringDispatchTests.java</include>
                        <include>**/ParamTests.java</include>
                        <include>**/MessageContextTests.java</include>
                        <include>**/DocLitBareMinTests.java</include>
                        <include>**/MtomSampleByteArrayTests.java</include>
                        <include>**/HandlerTests.java</include>
                        <include>**/StringListTests.java</include>
                        <include>**/NonWrapTests.java</include>
                        <include>**/FaultyWebServiceTests.java</include> 
                        <include>**/ParallelAsyncTests.java</include>
                        <include>**/SWAMTOMTests.java</include>
                        <include>**/RuntimeExceptionsAsyncMepTest.java</include>
                        <include>**/AddressingProviderTests.java</include>
                        <include>**/TypeSubstitutionTests.java</include>
                        <include>**/SOAPBindingProviderTests.java</include>
                        <include>**/SoapMessageProviderTests.java</include>
                        <include>**/StringProviderTests.java</include>
                        
                    </includes>
                    <systemProperties>
                        <property>
                            <name>OASISCatalogManager.catalog.debug.level</name>
                            <value>0</value>
                        </property>
                        <property>
                            <name>build.repository</name>
                            <value>./target/test-classes</value>
                        </property>
                        <property>
                            <name>javax.xml.soap.MessageFactory</name>
                            <value>org.apache.axis2.saaj.MessageFactoryImpl</value>
                        </property>
                        <property>
                            <name>javax.xml.soap.SOAPFactory</name>
                            <value>org.apache.axis2.saaj.SOAPFactoryImpl</value>
                        </property>
                        <property>
                            <name>javax.xml.soap.SOAPConnectionFactory</name>
                            <value>org.apache.axis2.saaj.SOAPConnectionFactoryImpl</value>
                        </property>
                        <property>
                            <name>javax.xml.soap.MetaFactory</name>
                            <value>org.apache.axis2.saaj.SAAJMetaFactoryImpl</value>
                        </property>
                        <!-- Need this for the client side to pickup an axis2.xml to configure SoapMessageMUProviderChecker -->
                        <property>
                            <name>org.apache.axis2.jaxws.config.path</name>
                            <value>./target/test-classes/axis2.xml</value>
                        </property>
                        <!-- Need this for the client side to pickup the addressing mar -->
                        <property>
                            <name>org.apache.axis2.jaxws.repo.path</name>
                            <value>./target/client-repo</value>
                        </property>
                    </systemProperties>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>
</project>
