<?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>1.6.2</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>tuscany-interface-java-jaxws</artifactId>
    <name>Apache Tuscany SCA Java Interface for JAXWS</name>

    <dependencies>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-core-spi</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-databinding-jaxb</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tuscany.sca</groupId>
            <artifactId>tuscany-interface-java-xml</artifactId>
            <version>1.6.2</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.5</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
            <version>2.1</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.xml.soap</groupId>
                    <artifactId>saaj-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Explicitly add the transitive dependencies for jaxws-api
             http://jira.codehaus.org/browse/MEV-498
         -->
        <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>
        <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>

    <repositories>
        <repository>
            <id>java.net</id>
            <name>java.net Maven 1.x Repository</name>
            <url>http://download.java.net/maven/1</url>
            <layout>legacy</layout>
        </repository>
        <repository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>java.net2</id>
            <name>java.net Maven 2.x Repository</name>
            <url>http://download.java.net/maven/2</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>-Djava.endorsed.dirs=target/endorsed</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax.xml.ws</groupId>
                                    <artifactId>jaxws-api</artifactId>
                                    <version>2.1</version>
                                    <type>jar</type>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>javax.xml.bind</groupId>
                                    <artifactId>jaxb-api</artifactId>
                                    <version>2.1</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                            <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>true</overWriteSnapshots>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <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.12</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>
                    <!-- Add javax.xml.ws.soap.Addressing in case the build is using
                         the bad version of jaxws-api with this class missing
                    -->
                    <dependency>
                        <groupId>org.apache.geronimo.specs</groupId>
                        <artifactId>geronimo-jaxws_2.1_spec</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>
                            <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>
             -->

            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>

                <configuration>
                    <instructions>
                        <Bundle-Version>${tuscany.version}</Bundle-Version>
                        <Bundle-SymbolicName>org.apache.tuscany.sca.interface.java.jaxws</Bundle-SymbolicName>
                        <Bundle-Description>${pom.name}</Bundle-Description>
                        <Export-Package>org.apache.tuscany.sca.interfacedef.java.jaxws*</Export-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>default-tools.jar</id>
            <activation>
                <property>
                    <name>java.vendor</name>
                    <value>Sun Microsystems Inc.</value>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <version>1.5.0</version>
                    <scope>system</scope>
                    <systemPath>${java.home}/../lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

</project>
