<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.v20111011</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>
