<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.eclipse.jetty</groupId>
    <artifactId>jetty-project</artifactId>
    <version>8.0.3-SNAPSHOT</version>
  </parent>
  <artifactId>jetty-distribution</artifactId>
  <name>Jetty :: Distribution Assemblies</name>
  <packaging>pom</packaging>
  <properties>
    <jetty-orbit-url>http://download.eclipse.org/jetty/orbit</jetty-orbit-url>
    <assembly-directory>target/distribution</assembly-directory>
    <eclipse-ecj-version>3.6</eclipse-ecj-version>
    <orbit-javax-activation-version>${javax-activation-version}.0.v201105071233</orbit-javax-activation-version>
    <orbit-javax-annotation-version>1.1.0.v201105051105</orbit-javax-annotation-version>
    <orbit-javax-el-version>2.2.0.v201105051105</orbit-javax-el-version>
    <orbit-javax-mail-glassfish-version>${javax-mail-version}.v201005082020</orbit-javax-mail-glassfish-version>
    <orbit-javax-servlet-version>3.0.0.v201103241727</orbit-javax-servlet-version>
    <orbit-javax-servlet-jsp-version>2.2.0.v201103241009</orbit-javax-servlet-jsp-version>
    <orbit-javax-servlet-jsp-jstl-version>1.2.0.v201004190952</orbit-javax-servlet-jsp-jstl-version>
    <orbit-com-sun-el-version>2.2.0.v201105051105</orbit-com-sun-el-version>
    <orbit-org-apache-taglibs-standard-version>1.2.0.v201004190952</orbit-org-apache-taglibs-standard-version>
    <orbit-org-objectweb-asm-version>3.3.1.v201101071600</orbit-org-objectweb-asm-version>
    <orbit-javax-transaction-version>1.1.1.v201004190952</orbit-javax-transaction-version>
    <orbit-org-apache-jasper-version>2.2.2.v201108011116</orbit-org-apache-jasper-version>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-base-assembly-tree</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <useBuildFilters>false</useBuildFilters>
              <includeEmptyDirs>true</includeEmptyDirs>
              <outputDirectory>${assembly-directory}</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/resources</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <!-- This is the Orbit Downloads Process -->

                <!-- Step 1: download orbit artifact into orbit-cache (if not present) -->
                <property name="orbit-cache" value="${user.home}/.m2/eclipse-orbit" />

                <mkdir dir="${orbit-cache}" />
                <get dest="${orbit-cache}" verbose="true" skipexisting="true">
                  <url url="${jetty-orbit-url}/javax.servlet_${orbit-javax-servlet-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.activation_${orbit-javax-activation-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.annotation_${orbit-javax-annotation-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.mail.glassfish_${orbit-javax-mail-glassfish-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.el_${orbit-javax-el-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.servlet.jsp_${orbit-javax-servlet-jsp-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.servlet.jsp.jstl_${orbit-javax-servlet-jsp-jstl-version}.jar" />
                  <url url="${jetty-orbit-url}/com.sun.el_${orbit-com-sun-el-version}.jar" />
                  <url url="${jetty-orbit-url}/org.apache.jasper.glassfish_${orbit-org-apache-jasper-version}.jar" />
                  <url url="${jetty-orbit-url}/org.apache.taglibs.standard.glassfish_${orbit-org-apache-taglibs-standard-version}.jar" />
                  <url url="${jetty-orbit-url}/org.objectweb.asm_${orbit-org-objectweb-asm-version}.jar" />
                  <url url="${jetty-orbit-url}/javax.transaction_${orbit-javax-transaction-version}.jar" />
                </get>

                <!-- Step 2: copy the orbit artifact from orbit-cache to the appropriate lib directory -->

                <!-- ${jetty.home}/lib/ -->
                <mkdir dir="${assembly-directory}/lib" />
                <copy file="${orbit-cache}/javax.servlet_${orbit-javax-servlet-version}.jar" tofile="${assembly-directory}/lib/servlet-api-3.0.jar" />

               
                <!-- ${jetty.home}/lib/annotations/ -->
                <mkdir dir="${assembly-directory}/lib/annotations" />
                <copy todir="${assembly-directory}/lib/annotations">
                  <fileset dir="${orbit-cache}">
                    <include name="javax.annotation_${orbit-javax-annotation-version}.jar" />
                    <include name="org.objectweb.asm_${orbit-org-objectweb-asm-version}.jar" />
                  </fileset>
                </copy>

                <!-- ${jetty.home}/lib/jndi/ -->
                <mkdir dir="${assembly-directory}/lib/jndi" />
                <copy todir="${assembly-directory}/lib/jndi">
                  <fileset dir="${orbit-cache}">
                    <include name="javax.activation_${orbit-javax-activation-version}.jar" />
                    <include name="javax.mail.glassfish_${orbit-javax-mail-glassfish-version}.jar" />
                  </fileset>
                </copy>

               <!-- ${jetty.home}/lib/jta/ -->
                <mkdir dir="${assembly-directory}/lib/jta" />
                <copy todir="${assembly-directory}/lib/jta">
                  <fileset dir="${orbit-cache}">
                    <include name="javax.transaction_${orbit-javax-transaction-version}.jar" />
                  </fileset>
                </copy>

                <!-- ${jetty.home}/lib/jsp/ -->
                <mkdir dir="${assembly-directory}/lib/jsp" />
                <copy todir="${assembly-directory}/lib/jsp">
                  <fileset dir="${orbit-cache}">
                    <include name="javax.el_${orbit-javax-el-version}.jar" />
                    <include name="javax.servlet.jsp_${orbit-javax-servlet-jsp-version}.jar" />
                    <include name="javax.servlet.jsp.jstl_${orbit-javax-servlet-jsp-jstl-version}.jar" />
                    <include name="com.sun.el_${orbit-com-sun-el-version}.jar" />
                    <include name="org.apache.taglibs.standard.glassfish_${orbit-org-apache-taglibs-standard-version}.jar" />
                    <include name="org.apache.jasper.glassfish_${orbit-org-apache-jasper-version}.jar" />         
                  </fileset>
                </copy>
                <chmod dir="${assembly-directory}/bin" perm="755" includes="**/*.sh" />
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>
                <resourceBundle>org.eclipse.jetty.toolchain:jetty-artifact-remote-resources:1.0</resourceBundle>
                <resourceBundle>org.eclipse.jetty.toolchain:jetty-distribution-remote-resources:1.1</resourceBundle>
              </resourceBundles>
              <outputDirectory>${assembly-directory}</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.eclipse.jetty</groupId>
                  <artifactId>jetty-project</artifactId>
                  <version>${project.version}</version>
                  <classifier>version</classifier>
                  <type>txt</type>
                  <overWrite>true</overWrite>
                  <outputDirectory>${assembly-directory}/</outputDirectory>
                  <destFileName>VERSION.txt</destFileName>
                </artifactItem>
                <artifactItem>
                  <groupId>org.eclipse.jetty</groupId>
                  <artifactId>test-jetty-webapp</artifactId>
                  <version>${project.version}</version>
                  <type>war</type>
                  <overWrite>true</overWrite>
                  <includes>**</includes>
                  <outputDirectory>${assembly-directory}/webapps</outputDirectory>
                  <destFileName>test.war</destFileName>
                </artifactItem>
                <artifactItem>
                  <groupId>org.eclipse.jetty</groupId>
                  <artifactId>jetty-start</artifactId>
                  <version>${project.version}</version>
                  <type>jar</type>
                  <overWrite>true</overWrite>
                  <includes>**</includes>
                  <outputDirectory>${assembly-directory}</outputDirectory>
                  <destFileName>start.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
          <execution>
            <id>copy-lib-deps</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeGroupIds>org.eclipse.jetty</includeGroupIds>
              <excludeArtifactIds>jetty-start,jetty-monitor,jetty-jsp-2.1</excludeArtifactIds>
              <includeTypes>jar</includeTypes>
              <outputDirectory>${assembly-directory}/lib</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>copy-lib-jsp-deps</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeGroupIds>org.eclipse.jetty,org.glassfish.web</includeGroupIds>
              <includeArtifactIds>jetty-jsp-2.1,jsp-impl</includeArtifactIds>
              <includeTypes>jar</includeTypes>
              <outputDirectory>${assembly-directory}/lib/jsp</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>copy-lib-monitor-deps</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <includeGroupIds>org.eclipse.jetty</includeGroupIds>
              <includeArtifactIds>jetty-monitor</includeArtifactIds>
              <includeTypes>jar</includeTypes>
              <excludeTransitive>true</excludeTransitive>
              <outputDirectory>${assembly-directory}/lib/monitor</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>unpack-config-deps</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeGroupIds>org.eclipse.jetty</includeGroupIds>
              <classifier>config</classifier>
              <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
              <outputDirectory>${assembly-directory}</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>unpack-javadoc</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <!-- Use already generated javadoc, don't bother regenerating again -->
              <includeGroupIds>org.eclipse.jetty.aggregate</includeGroupIds>
              <includeArtifactIds>jetty-all</includeArtifactIds>
              <includeClassifier>javadoc</includeClassifier>
              <excludeTransitive>true</excludeTransitive>
              <outputDirectory>${assembly-directory}/javadoc</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/jetty-assembly.xml</descriptor>
          </descriptors>
          <tarLongFileMode>gnu</tarLongFileMode>
          <appendAssemblyId>false</appendAssemblyId>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- No point performing PMD in assembly project -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <!-- No point performing Findbugs in assembly project -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-deploy</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-rewrite</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-ajp</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-annotations</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>test-jetty-webapp</artifactId>
      <type>war</type>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jmx</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jndi</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-plus</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-client</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-continuation</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-start</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-policy</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${servlet.spec.groupId}</groupId>
      <artifactId>${servlet.spec.artifactId}</artifactId>
      <version>${servlet.spec.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlets</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-monitor</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-websocket</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-overlay-deployer</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.aggregate</groupId>
      <artifactId>jetty-all</artifactId>
      <classifier>javadoc</classifier>
      <type>jar</type>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
