<?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>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.tuscany.sca</groupId>
        <artifactId>tuscany-modules</artifactId>
        <version>2.0-Beta2</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tuscany-interface-java-jaxws</artifactId>
    <name>Apache Tuscany SCA Interface Java For JAXWS</name>

    <dependencies>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-core-spi</artifactId>
            <version>2.0-Beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-databinding-jaxb</artifactId>
            <version>2.0-Beta2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-interface-java</artifactId>
            <version>2.0-Beta2</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
            <version>3.1</version>
        </dependency>

        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm-util</artifactId>
            <version>3.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm-analysis</artifactId>
            <version>3.1</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.0</version>
                <executions>
                    <execution>
                        <id>add-test-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/jaxws-source</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>1.10</version>
                <!-- Explicitly add the transitive dependencies for jaxws-api
                     http://jira.codehaus.org/browse/MEV-498
                -->
                <dependencies>
                    <dependency>
                        <groupId>javax.jws</groupId>
                        <artifactId>jsr181-api</artifactId>
                        <version>1.0-MR1</version>
                    </dependency>
                    <dependency>
                        <groupId>javax.annotation</groupId>
                        <artifactId>jsr250-api</artifactId>
                        <version>1.0</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>wsimport</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <packageName>com.example.stock</packageName>
                            <wsdlDirectory>${basedir}/src/test/resources/wsdl</wsdlDirectory>
                            <wsdlFiles>
                                <wsdlFile>StockExceptionTest.wsdl</wsdlFile>
                            </wsdlFiles>
                            <staleFile>${project.build.directory}/wsimport-sync.stale</staleFile>
                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
                            <verbose>false</verbose>
                            <xnocompile>true</xnocompile>
                        </configuration>
                    </execution>
                    
                   <execution>
                        <id>wsimport-async</id>
                        <phase>generate-test-sources</phase>
                        <goals>
                            <goal>wsimport</goal>
                        </goals>
                        <configuration>
                            <packageName>com.example.stock.async</packageName>
                            <wsdlDirectory>${basedir}/src/test/resources/wsdl</wsdlDirectory>
                            <wsdlFiles>
                                <wsdlFile>StockExceptionTest.wsdl</wsdlFile>
                            </wsdlFiles>
                            <bindingDirectory>${basedir}/src/test/resources/wsdl</bindingDirectory>
                            <bindingFiles>
                                <bindingFile>bindings.xml</bindingFile>
                            </bindingFiles>
                            <staleFile>${project.build.directory}/wsimport-async.stale</staleFile>
                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
                            <verbose>false</verbose>
                            <xnocompile>true</xnocompile>
                        </configuration>
                    </execution>                    

                    <!--
                    <execution>
                        <id>wsgen</id>
                        <phase>process-test-classes</phase>
                        <goals>
                            <goal>wsgen-test</goal>
                        </goals>
                        <configuration>
                            <sei>org.apache.tuscany.sca.interfacedef.java.jaxws.MyServiceImpl</sei>
                            <genWsdl>true</genWsdl>
                            <keep>true</keep>
                            <resourceDestDir>${project.build.directory}/jaxws-source</resourceDestDir>
                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
                        </configuration>
                    </execution>
                    -->
                </executions>

            </plugin>

            <!--
            wsimport cannot handle WSDL files without a service/binding element.
            CXF wsdl2java plugin does support that. I had to override the default
            value of wsdlRoot/testWsdlRoot to a non-existent file to avoid NPE -->
            <!--
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>

                        <configuration>
                            <sourceRoot>${basedir}/target/jaxws-source</sourceRoot>
                            <wsdlRoot>NONE</wsdlRoot>
                            <testWsdlRoot>NONE</testWsdlRoot>
                            <wsdlOptions>
                                <wsdlOption>
                                    <wsdl>${basedir}/src/test/resources/wsdl/Stock.wsdl</wsdl>
                                    <outputDir>${basedir}/target/jaxws-source</outputDir>
                                    <packagenames>
                                        <packagename>com.example.stock.cxf</packagename>
                                    </packagenames>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
             -->

        </plugins>
    </build>

</project>
