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

       https://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.
-->
<!--
  This POM has been created manually by the Ant Development Team.
  Please contact us if you are not satisfied with the data contained in this POM.
  URL : https://ant.apache.org
-->
<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 https://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.apache.ant</groupId>
    <artifactId>ant-parent</artifactId>
    <relativePath>../pom.xml</relativePath>
    <version>1.10.7-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <url>https://ant.apache.org/</url>
  <groupId>org.apache.ant</groupId>
  <artifactId>ant</artifactId>
  <version>1.10.7-SNAPSHOT</version>
  <name>Apache Ant Core</name>
  <properties>
    <modules.exclude>org/apache/tools/ant/taskdefs/modules/</modules.exclude>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant-launcher</artifactId>
      <version>1.10.7-SNAPSHOT</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant-antunit</artifactId>
      <version>1.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.ant</groupId>
          <artifactId>ant-launcher</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>xerces</groupId>
      <artifactId>xercesImpl</artifactId>
      <version>2.12.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <version>1.6.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.beanshell</groupId>
      <artifactId>bsh</artifactId>
      <version>2.0b5</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <filters>
      <filter>../../../../target/ant/.build.timestamp.properties</filter>
    </filters>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>create-timestamp-file</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <tstamp/>
                <mkdir dir="${project.build.directory}"/>
                <touch file="${project.build.directory}/.build.timestamp.properties"/>
                <echo file="${project.build.directory}/.build.timestamp.properties" append="false"
                  message="TODAY=${TODAY}"/>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>create-antlib-test-jar</id>
            <phase>process-test-classes</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <jar jarfile="${project.build.testOutputDirectory}/org/apache/tools/ant/taskdefs/test2-antlib.jar">
                  <manifest>
                    <attribute name="Extension-name"
                               value="org.apache.tools.ant"/>
                    <attribute name="Specification-Title"
                               value="Apache Ant"/>
                    <attribute name="Specification-Version"
                               value="${project.version}"/>
                    <attribute name="Specification-Vendor"
                               value="Apache Software Foundation"/>
                    <attribute name="Implementation-Title"
                               value="org.apache.tools.ant"/>
                    <attribute name="Implementation-Version"
                               value="${project.version}"/>
                    <attribute name="Implementation-Vendor"
                               value="Apache Software Foundation"/>
                  </manifest>
                  <zipfileset dir="${project.build.scriptSourceDirectory}/testcases" fullpath="taskdefs/test.antlib.xml">
                    <include name="taskdefs/test2.antlib.xml"/>
                  </zipfileset>
                </jar>
                <echoproperties prefix="maven."/>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>delete-timestamp-file</id>
            <phase>clean</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <delete file="${project.build.directory}/.build.timestamp.properties"/>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>org/apache/tools/ant/filters/util/JavaClassHelper*</exclude>
            <exclude>org/apache/tools/ant/launch/</exclude>
            <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
            <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/email/MimeMailer*</exclude>
            <exclude>${modules.exclude}</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/NetRexxC*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/Xalan2TraceSupport*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/image/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/jdepend/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/junit/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/junitlauncher/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/RExec*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/net/TelnetTask*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/sound/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/splash/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/ssh/</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/xz/</exclude>
            <exclude>org/apache/tools/ant/types/optional/image/</exclude>
            <exclude>org/apache/tools/ant/types/optional/imageio/</exclude>
            <exclude>org/apache/tools/ant/types/optional/xz/</exclude>
            <exclude>org/apache/tools/ant/types/resolver/</exclude>
            <exclude>org/apache/tools/ant/util/depend/bcel/</exclude>
            <exclude>org/apache/tools/ant/util/ScriptRunner.java</exclude>
            <exclude>org/apache/tools/ant/util/optional/ScriptRunner.java</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
            <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
          </excludes>
          <testExcludes>
            <!-- launcher -->
            <exclude>org/apache/tools/ant/launch/</exclude>
            <!-- commons-logging -->
            <exclude>org/apache/tools/ant/listener/CommonsLoggingListener*</exclude>
            <!-- log4j -->
            <exclude>org/apache/tools/ant/listener/Log4jListener*</exclude>
            <!-- obsolete -->
            <exclude>org/apache/tools/ant/taskdefs/AbstractCvs*</exclude>
            <!-- ERROR: "default value" when javac cannot cross-compile to Java 5 -->
            <exclude>org/apache/tools/ant/taskdefs/Javac*</exclude>
            <!-- see XsltTest -->
            <exclude>org/apache/tools/ant/taskdefs/StyleTest*</exclude>
            <!-- ERROR: Unexpected recipients -->
            <exclude>org/apache/tools/ant/taskdefs/email/EmailTask*</exclude>
            <!-- Java9+ -->
            <exclude>${modules.exclude}</exclude>
            <!-- antlr -->
            <exclude>org/apache/tools/ant/taskdefs/optional/ANTLR*</exclude>
            <!-- obsolete -->
            <exclude>org/apache/tools/ant/taskdefs/optional/Jspc*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/optional/Pvcs*</exclude>
            <!-- xalan: workaround for different resource encoding -->
            <exclude>org/apache/tools/ant/taskdefs/optional/TraXLiaison*</exclude>
            <!-- ERROR: UnknownHostException: chemical (XML parser-dependent) -->
            <exclude>org/apache/tools/ant/taskdefs/optional/XmlValidateCatalog*</exclude>
            <!-- image/imageio -->
            <exclude>org/apache/tools/ant/taskdefs/optional/image/</exclude>
            <!-- jdepend -->
            <exclude>org/apache/tools/ant/taskdefs/optional/jdepend/</exclude>
            <!-- junit -->
            <exclude>org/apache/tools/ant/taskdefs/optional/junit/</exclude>
            <!-- junitlauncher -->
            <exclude>org/apache/tools/ant/taskdefs/optional/junitlauncher/</exclude>
            <!-- net -->
            <exclude>org/apache/tools/ant/taskdefs/optional/net/FTP*</exclude>
            <!-- swing -->
            <exclude>org/apache/tools/ant/taskdefs/optional/splash/</exclude>
            <!-- jsch -->
            <exclude>org/apache/tools/ant/taskdefs/optional/ssh/</exclude>
            <!-- dependent on junit -->
            <exclude>org/apache/tools/ant/types/Assertions*</exclude>
            <!-- bcel -->
            <exclude>org/apache/tools/ant/types/optional/depend/ClassFileSet*</exclude>
            <!-- ERROR: defaults.properties are in both compile and test file tree -->
            <exclude>org/apache/tools/ant/util/ClasspathUtils*</exclude>
            <exclude>org/apache/tools/ant/util/LoaderUtils*</exclude>
            <!-- oro -->
            <exclude>org/apache/tools/ant/util/regexp/JakartaOro*</exclude>
            <!-- regexp -->
            <exclude>org/apache/tools/ant/util/regexp/JakartaRegexp*</exclude>
            <!-- dependent on IncludeTest.class: checks presence -->
            <exclude>org/apache/tools/ant/AntClassLoaderDelegation*</exclude>
            <!-- ERROR:  More pseudo attributes are expected (encoding="UTF-8");
             failure mode is XML parser-dependent (see to do for failures in IDE) -->
            <exclude>org/apache/tools/ant/Include*</exclude>
            <!-- dependent on JUnit 5 -->
            <exclude>org/example/junitlauncher/</exclude>
            <!-- requires structure of a binary distribution of Ant in ANT_HOME -->
            <exclude>org/apache/tools/ant/types/CommandlineJavaTest*</exclude>
            <exclude>org/apache/tools/ant/types/selectors/ModifiedSelectorTest*</exclude>
            <exclude>org/apache/tools/ant/taskdefs/AvailableTest*</exclude>
          </testExcludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <index>true</index>
            <manifest>
              <mainClass>org.apache.tools.ant.Main</mainClass>
              <addExtensions>true</addExtensions>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <basedir>../../../..</basedir>
          <workingDirectory>../../../..</workingDirectory>
          <systemProperties>
            <property>
              <name>ant.home</name>
              <value>${env.ANT_HOME}</value>
            </property>
            <property>
              <name>build.classes.value</name>
              <value>${project.basedir}/../../../../target/${project.artifactId}/classes</value>
            </property>
            <property>
              <name>build.tests.value</name>
              <value>${project.basedir}/../../../../target/${project.artifactId}/testcases</value>
            </property>
            <property>
              <name>offline</name>
              <value>true</value>
            </property>
            <property>
              <name>ant.test.basedir.ignore</name>
              <value>true</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>../../../..</directory>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>LICENSE</include>
          <include>NOTICE</include>
        </includes>
      </resource>
      <resource>
        <directory>../../../../src/main</directory>
        <filtering>true</filtering>
        <includes>
          <include>org/apache/tools/ant/listener/defaults.properties</include>
          <include>org/apache/tools/ant/taskdefs/defaults.properties</include>
          <include>org/apache/tools/ant/types/defaults.properties</include>
          <include>org/apache/tools/ant/antlib.xml</include>
          <include>org/apache/tools/ant/types/conditions/antlib.xml</include>
          <include>org/apache/tools/ant/defaultManifest.mf</include>
          <include>org/apache/tools/ant/version.txt</include>
        </includes>
      </resource>
      <resource>
        <directory>../../../../src/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/antlib.xml</include>
          <include>**/javadoc-frame-injections-fix.txt</include>
        </includes>
      </resource>
      <resource>
        <directory>../../../../manual</directory>
        <filtering>false</filtering>
        <includes>
          <include>images/ant_logo_large.gif</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>../../../../src/etc/testcases</directory>
        <filtering>true</filtering>
      </testResource>
      <testResource>
        <directory>../../../../src/main</directory>
        <filtering>true</filtering>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </testResource>
    </testResources>
    <sourceDirectory>../../../../src/main</sourceDirectory>
    <testSourceDirectory>../../../../src/tests/junit</testSourceDirectory>
    <scriptSourceDirectory>../../../../src/etc</scriptSourceDirectory>
    <!-- directory name is hardcoded in AntTest -->
    <outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory>
    <testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory>
    <directory>../../../../target/${project.artifactId}</directory>
  </build>
  <profiles>
    <profile>
      <id>java9+</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <modules.exclude>not/here</modules.exclude>
      </properties>
    </profile>
  </profiles>
</project>
