<?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.401</version>
        <relativePath>../../parent/pom.xml</relativePath>
    </parent>
    <artifactId>axis2.eclipse.codegen.plugin</artifactId>
    <name>Apache Axis2 - tool - Eclipse Codegen Plugin</name>
    <packaging>maven-plugin</packaging>
    <description>The Axis 2 Eclipse Codegen Plugin for wsdl2java and java2wsdl</description>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.jobs</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.commands</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.variables</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.contenttype</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.expressions</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.filesystem</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.update</groupId>
                    <artifactId>org.eclipse.update.ui</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.update</groupId>
                    <artifactId>org.eclipse.update.configurator</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.update</groupId>
                    <artifactId>org.eclipse.update.core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.help</groupId>
                    <artifactId>org.eclipse.help</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.ant</groupId>
                    <artifactId>org.eclipse.ant.core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.resources</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.core</groupId>
            <artifactId>org.eclipse.core.runtime</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.runtime.compatibility</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.core</groupId>
                    <artifactId>org.eclipse.core.runtime.compatibility.auth</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse.equinox</groupId>
            <artifactId>org.eclipse.equinox.common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.equinox</groupId>
                    <artifactId>org.eclipse.equinox.registry</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.equinox</groupId>
                    <artifactId>org.eclipse.equinox.preferences</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jface</groupId>
            <artifactId>org.eclipse.jface</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.osgi</groupId>
            <artifactId>org.eclipse.osgi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.swt</groupId>
            <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.ui</groupId>
            <artifactId>org.eclipse.ui.ide</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.ui</groupId>
                    <artifactId>org.eclipse.ui.forms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.ui</groupId>
                    <artifactId>org.eclipse.ui.views</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-javamail_1.4_spec</artifactId>
            <version>${geronimo.spec.javamail.version}</version>
        </dependency>
        <dependency>
            <groupId>annogen</groupId>
            <artifactId>annogen</artifactId>
            <version>${annogen.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>${commons.logging.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-codegen</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb-codegen</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-java2wsdl</artifactId>
            <version>${version}</version>
        </dependency>
        <dependency>
            <groupId>${stax.impl.groupid}</groupId>
            <artifactId>${stax.impl.artifact}</artifactId>
            <version>${stax.impl.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.neethi</groupId>
            <artifactId>neethi</artifactId>
            <version>${neethi.version}</version>
        </dependency>

        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>${wsdl4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>${xmlbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ws.commons.schema</groupId>
            <artifactId>XmlSchema</artifactId>
            <version>${xmlschema.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>${ant.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.woden</groupId>
            <artifactId>woden-api</artifactId>
            <version>${woden.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>${commons.httpclient.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons.codec.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-bind</artifactId>
            <version>${jibx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jibx</groupId>
            <artifactId>jibx-run</artifactId>
            <version>${jibx.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.woden</groupId>
            <artifactId>woden-impl-dom</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
    </dependencies>
    <distributionManagement>
        <repository>
            <id>wso2-maven2-repository</id>
            <name>WSO2 Maven2 Repository</name>
            <url>scp://dist.wso2.org/home/httpd/dist.wso2.org/maven2/</url>
        </repository>
        <snapshotRepository>
            <id>wso2-maven2-snapshot-repository</id>
            <name>WSO2 Maven2 Repository</name>
            <url>scp://dist.wso2.org/home/httpd/dist.wso2.org/maven2/</url>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <resources>
          <resource>
              <directory>../../..</directory>
              <includes>
                  <include>NOTICE.txt</include>
                  <include>LICENSE.txt</include>
              </includes>
              <filtering>false</filtering>
          </resource>
            <resource>
                <directory>src/main/java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.4</source>
                    <target>1.4</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>${maven.assembly.version}</version>
                <executions>
                    <execution>
                        <id>distribution-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>${pom.basedir}/eclipse-codegen-plugin-assembly.xml</descriptor>
                            </descriptors>
                            <finalName>dist</finalName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>package</id>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <property name="codegen.plugin.version"
                                          value="Axis2_Codegen_Wizard_${eclipse.plugins.version}"/>
                                <property name="codegen.plugin.zip.name" value="axis2-eclipse-codegen-wizard.zip"/>
                                <property name="codegen.plugin.jar.name" value="Axis2CodegenWizard.jar"/>
                                <property name="src" value="./src"/>
                                <property name="codegen.src.dir" value="../axis2-eclipse-codegen-plugin/src/main/java"/>
                                <property name="output" value="../target/eclipse_plugins"/>
                                <property name="output.target" value="${output}/release"/>
                                <property name="plugin.output.dir" value="${output}/plugin"/>
                                <property name="codegen.output.dir" value="${output}/code-gen"/>
                                <property name="codegen.plugin.output.dir"
                                          value="${plugin.output.dir}/${codegen.plugin.version}"/>
                                <property name="source.dir.name" value="src"/>
                                <property name="lib.dir.name" value="lib"/>
                                <property name="bin.dir.name" value="bin"/>
                                <property name="help.dir.name" value="help"/>
                                <property name="icons.dir.name" value="icons"/>
                                <property name="plugin.project.file.name" value=".project"/>
                                <property name="plugin.classpath.file.name" value=".classpath"/>
                                <property name="plugin.help.file.name" value="help_toc.xml"/>
                                <property name="codegen.resource.dir" value="../conf/codegen"/>
                                <property name="codegen.help.resource.file"
                                          value="../../../modules/documentation/xdocs/tools/1_4/eclipse/wsdl2java-plugin.html"/>
                                <property name="codegen.help.images.dir"
                                          value="../../../modules/documentation/xdocs/tools/1_4/eclipse/images"/>
                                <property name="axis2.lib.dir" value="../../../target/lib"/>
                                <property name="codegen.resource.dir" value="../conf/codegen"/>
                                <delete dir="./target/plugin/${codegen.plugin.version}"/>
                                <mkdir dir="./target/plugin/${codegen.plugin.version}"/>
                                <delete dir="./target/dist"/>
                                <mkdir dir="./target/dist"/>
                                <!--Filter tockens for the copy command to filter the versions of external dependencies -->
                                <filter token="eclipse.plugins.version" value="${eclipse.plugins.version}"/>
                                <filter token="version" value="${version}"/>
                                <filter token="geronimo.spec.activation.version"
                                        value="${geronimo.spec.activation.version}"/>
                                <filter token="annogen.version" value="${annogen.version}"/>
                                <filter token="ant.version" value="${ant.version}"/>
                                <filter token="axiom.version" value="${axiom.version}"/>
                                <filter token="commons.logging.version" value="${commons.logging.version}"/>
                                <filter token="neethi.version" value="${neethi.version}"/>
                                <filter token="stax.api.version" value="${stax.api.version}"/>
                                <filter token="stax.impl.version" value="${stax.impl.version}"/>
                                <filter token="xmlbeans.version" value="${xmlbeans.version}"/>
                                <filter token="xmlschema.version" value="${xmlschema.version}"/>
                                <filter token="log4j.version" value="${log4j.version}"/>
                                <filter token="wsdl4j.version" value="${wsdl4j.version}"/>
                                <filter token="woden.version" value="${woden.version}"/>
                                <filter token="commons.httpclient.version" value="${commons.httpclient.version}"/>
                                <filter token="commons.codec.version" value="${commons.codec.version}"/>
                                <filter token="jibx.version" value="${jibx.version}"/>

                                <unzip src="./target/axis2.eclipse.codegen.plugin-${pom.version}.jar"
                                       dest="./target/plugin/${codegen.plugin.version}"/>
                                <!-- Copy to the same position with the filtering on-->
                                <copy todir="./target/plugin/${codegen.plugin.version}" filtering="on">
                                    <fileset dir="${codegen.resource.dir}">
                                        <include name="plugin.xml"/>
                                        <include name="build.properties"/>
                                        <include name="${plugin.classpath.file.name}"/>
                                    </fileset>
                                </copy>
                                <!-- copy the help directory -->
                                <mkdir dir="./target/plugin/${codegen.plugin.version}/${help.dir.name}"/>
                                <mkdir dir="./target/plugin/${codegen.plugin.version}/${help.dir.name}/${icons.dir.name}"/>
                                <copy todir="./target/plugin/${codegen.plugin.version}/${help.dir.name}">
                                    <fileset file="${codegen.help.resource.file}"/>
                                </copy>
                                <copy todir="./target/plugin/${codegen.plugin.version}/${help.dir.name}/${icons.dir.name}">
                                    <fileset dir="${codegen.help.images.dir}"/>
                                </copy>
                                <!-- copy the  icons-->
                                <mkdir dir="./target/plugin/${codegen.plugin.version}/${icons.dir.name}"/>
                                <copy todir="./target/plugin/${codegen.plugin.version}/${icons.dir.name}">
                                    <fileset dir="${codegen.resource.dir}/${icons.dir.name}"/>
                                </copy>
                                <!-- copy the lib files -->
                                <mkdir dir="./target/plugin/temp"/>
                                <unzip src="./target/dist-axis2-eclipse-codege-plugin.zip" dest="./target/plugin/temp"/>
                                <mkdir dir="./target/plugin/${codegen.plugin.version}/lib"/>
                                <copy todir="./target/plugin/${codegen.plugin.version}/lib">
                                    <fileset dir="./target/plugin/temp/lib"/>
                                </copy>
                                <delete dir="./target/plugin/temp"/>
                                <!-- copy the other project files-->
                                <copy todir="./target/plugin/${codegen.plugin.version}">
                                    <fileset file="${codegen.resource.dir}/${plugin.project.file.name}"/>
                                    <fileset file="${codegen.resource.dir}/${plugin.help.file.name}"/>
                                </copy>
                                <!-- copy the classes to classes directory-->
                                <mkdir dir="./target/plugin/${codegen.plugin.version}/classes"/>
                                <copy todir="./target/plugin/${codegen.plugin.version}/classes">
                                    <fileset dir="./target/plugin/${codegen.plugin.version}">
                                        <include name="**/org/**"/>
                                    </fileset>
                                </copy>
                                <!--Zip the classes to a jar file-->
                                <zip destfile="./target/plugin/${codegen.plugin.version}/${codegen.plugin.jar.name}"
                                     basedir="./target/plugin/${codegen.plugin.version}/classes" update="true"/>
                                <delete dir="./target/plugin/${codegen.plugin.version}/classes"/>
                                <!--Zip the eclipse plugin to the target/dist directory -->
                                <zip destfile="./target/dist/${codegen.plugin.zip.name}" basedir="./target/plugin"
                                     update="true"/>
                                <delete dir="./target/temp"/>
                                <delete dir="./target/classes"/>
                                <delete dir="./target/test-classes"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
