<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>22</version>
  </parent>

  <groupId>org.apache.tomcat</groupId>
  <artifactId>jakartaee-migration</artifactId>
  <version>0.1.1-SNAPSHOT</version>
 
  <description>
    This tool is a work in progress.
    The aim of the tool is to take a web application written for Java EE 8 that
    runs on Apache Tomcat 9 and convert it automatically so it runs on Apache
    Tomcat 10 which implements Jakarta EE 9.
  </description>
  <!-- TODO: Update this once the web site is updated. -->
  <url>https://tomcat.apache.org</url>
  <mailingLists>
    <mailingList>
      <name>Apache Tomcat Announce List</name>
      <subscribe>announce-subscribe@tomcat.apache.org</subscribe>
      <unsubscribe>announce-unsubscribe@tomcat.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?announce@tomcat.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Apache Tomcat Developer List</name>
      <subscribe>dev-subscribe@tomcat.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@tomcat.apache.org</unsubscribe>
      <post>dev@tomcat.apache.org</post>
      <archive>https://lists.apache.org/list.html?dev@tomcat.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Apache Tomcat Users List</name>
      <subscribe>users-subscribe@tomcat.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@tomcat.apache.org</unsubscribe>
      <post>users@tomcat.apache.org</post>
      <archive>https://lists.apache.org/list.html?users@tomcat.apache.org</archive>
    </mailingList>    
  </mailingLists>
  
  <properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <!-- Override settings from parent POM -->
    <sourceReleaseAssemblyDescriptor>src</sourceReleaseAssemblyDescriptor>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.bcel</groupId>
      <artifactId>bcel</artifactId>
      <version>6.5.0</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>1.10.8</version>
      <scope>provided</scope>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=tomcat-jakartaee-migration.git</url>
    <tag>HEAD</tag>
  </scm>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>   

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.7</version>
          <configuration>
            <check />
            <formats>
              <format>html</format>
              <format>xml</format>
            </formats>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>create-test-jars</id>
            <phase>process-test-classes</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <jar destfile="target/test-classes/cgi-api.jar" basedir="target/test-classes" includes="**/CommonGatewayInterface*" />
                <jar destfile="target/test-classes/hellocgi.jar" basedir="target/test-classes" includes="**/HelloCGI*">
                  <manifest>
                    <attribute name="Implementation-Version" value="1.2.3" />
                  </manifest>
                </jar>

                <!-- Generate the signed jar files -->
                <!--
                  The keystore contains 3 keys (RSA, DSA and EC) and was generated with Java 12:
                    keytool -genkey -validity 3650 -keystore keystore.p12 -storetype pkcs12 -dname CN=Test -alias rsa -keyalg RSA -keysize 1024
                    keytool -genkey -validity 3650 -keystore keystore.p12 -storetype pkcs12 -dname CN=Test -alias dsa -keyalg DSA -keysize 1024
                    keytool -genkey -validity 3650 -keystore keystore.p12 -storetype pkcs12 -dname CN=Test -alias ec  -keyalg EC  -groupname secp384r1
                -->
                <parallel>
                  <sequential>
                    <copy file="target/test-classes/hellocgi.jar" tofile="target/test-classes/hellocgi-signed-rsa.jar" />
                    <signjar jar="target/test-classes/hellocgi-signed-rsa.jar" keystore="src/test/resources/keystore.p12" storepass="apache" alias="rsa" />
                  </sequential>
                  <sequential>
                    <copy file="target/test-classes/hellocgi.jar" tofile="target/test-classes/hellocgi-signed-dsa.jar" />
                    <signjar jar="target/test-classes/hellocgi-signed-dsa.jar" keystore="src/test/resources/keystore.p12" storepass="apache" alias="dsa" />
                  </sequential>
                  <sequential>
                    <copy file="target/test-classes/hellocgi.jar" tofile="target/test-classes/hellocgi-signed-ec.jar" />
                    <signjar jar="target/test-classes/hellocgi-signed-ec.jar" keystore="src/test/resources/keystore.p12" storepass="apache" alias="ec" />
                  </sequential>
                </parallel>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <reuseForks>false</reuseForks>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>org.apache.tomcat.jakartaee.MigrationCLI</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!-- NOTE: We don't need a groupId specification because the group is
             org.apache.maven.plugins ...which is assumed by default.
         -->
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assembly/bin.xml</descriptor>
                <descriptor>src/assembly/src.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <minimizeJar>true</minimizeJar>
              <createDependencyReducedPom>false</createDependencyReducedPom>
              <filters>
                <filter>
                  <artifact>org.apache.bcel:*</artifact>
                  <excludes>
                    <exclude>META-INF/**</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-io:*</artifact>
                  <excludes>
                    <exclude>META-INF/**</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eluder.coveralls</groupId>
        <artifactId>coveralls-maven-plugin</artifactId>
        <version>4.3.0</version>
      </plugin>
    </plugins>
  </build>

</project>
