<?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.axis</groupId>
        <artifactId>axis-project</artifactId>
        <version>1.4.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>distribution</artifactId>
    <name>Distribution</name>
    <packaging>pom</packaging>
    <description>
        Produces the Axis source and binary distributions.
    </description>
    <dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis-ant</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis-jaxrpc</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>axis-saaj</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>distribution-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/bin.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack-distribution</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target unless="${skipTests}">
                                <unzip src="${project.build.directory}/${project.artifactId}-${project.version}-bin.zip" dest="${project.build.directory}" />
                            </target>
                        </configuration>
                    </execution>
                    <execution>
                        <id>test-samples</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target unless="${skipTests}">
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/addr"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/attachments"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/bidbuy"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/echo"/>
                                
                                <property name="deploy.dir" value="${project.build.directory}/jboss/deploy"/>
                                <mkdir dir="${deploy.dir}"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/ejb" antfile="ant-build.xml">
                                    <target name="j2w-simplebean"/>
                                    <target name="j2w-nicethingsbean"/>
                                </ant>
                                
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/encoding"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/faults"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/handler"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/integrationGuide"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/jaxrpc"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/jms"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/math"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/message"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/misc"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/perf"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/proxy"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/security"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/stock"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/swa"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/transport"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/userguide"/>
                                <ant dir="${project.build.directory}/axis-${project.version}/samples/xbeans"/>
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-extra-libs</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/axis-${project.version}/lib</outputDirectory>
                            <includeArtifactIds>junit,mail</includeArtifactIds>
                            <skip>${skipTests}</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-jboss-libs</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>jboss</groupId>
                                    <artifactId>jboss-j2ee</artifactId>
                                    <version>3.2.3</version>
                                </artifactItem>
                            </artifactItems>
                            <overWrite>true</overWrite>
                            <outputDirectory>${project.build.directory}/jboss/lib</outputDirectory>
                            <stripVersion>true</stripVersion>
                            <skip>${skipTests}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                    <skipDeploy>true</skipDeploy>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>tools-include</id>
            <!-- Required on non Mac OS X platforms to use the javac Ant task with fork=false -->
            <activation>
                <file>
                    <exists>${java.home}/../lib/tools.jar</exists>
                </file>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <artifactId>maven-antrun-plugin</artifactId>
                            <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>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>
</project>
