<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-parent</artifactId>
    <version>16</version>
  </parent>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>jetty-project</artifactId>
  <version>7.4.0.v20110414</version>
  <name>Jetty :: Project</name>
  <url>${jetty.url}</url>
  <packaging>pom</packaging>
  <properties>
    <felix.bundle.version>2.0.0</felix.bundle.version>
    <javax-activation-version>1.1</javax-activation-version>
    <javax-mail-version>1.4.1</javax-mail-version>
    <javax-servlet-jsp-version>2.1.v20100127</javax-servlet-jsp-version>
    <javax-transaction-version>1.1.1</javax-transaction-version>
    <jetty.url>http://www.eclipse.org/jetty</jetty.url>
    <junit4-version>4.8.1</junit4-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j-version>1.5.11</slf4j-version>
    <build-support-version>1.0</build-support-version>
    <jetty.test.helper>1.3</jetty.test.helper>
    <jetty.test.policy>1.2</jetty.test.policy>
  </properties>
  <scm>
    <connection>scm:svn:http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/tags/jetty-7.4.0.v20110414</connection>
    <developerConnection>scm:svn:svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/tags/jetty-7.4.0.v20110414</developerConnection>
    <url>http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/tags/jetty-7.4.0.v20110414</url>
  </scm>
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
          <verbose>false</verbose>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <tagBase>svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/tags</tagBase>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </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>
              </resourceBundles>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- source maven plugin creates the source bundle and adds manifest -->
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>process-classes</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <archive>
                <manifestEntries>
                  <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                  <Bundle-Name>${project.name}</Bundle-Name>
                  <Bundle-SymbolicName>${bundle-symbolic-name}.source;singleton:=true</Bundle-SymbolicName>
                  <Bundle-Vendor>Eclipse.org - Jetty</Bundle-Vendor>
                  <Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
                  <Eclipse-SourceBundle>${bundle-symbolic-name};version="${parsedVersion.osgiVersion}";roots:="."</Eclipse-SourceBundle>
                </manifestEntries>
              </archive>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Build helper maven plugin sets the parsedVersion.osgiVersion property -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <id>set-osgi-version</id>
            <phase>validate</phase>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- Enforcer Plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.0-alpha-4</version>
        <executions>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[2.0.6,)</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>[1.5,)</version>
                </requireJavaVersion>
                <versionTxtRule implementation="org.eclipse.jetty.toolchain.enforcer.rules.VersionTxtRule" />
                <versionOsgiRule implementation="org.eclipse.jetty.toolchain.enforcer.rules.RequireOsgiCompatibleVersionRule" />
                <versionRedhatRule implementation="org.eclipse.jetty.toolchain.enforcer.rules.RequireRedhatCompatibleVersionRule" />
                <versionDebianRule implementation="org.eclipse.jetty.toolchain.enforcer.rules.RequireDebianCompatibleVersionRule" />
              </rules>
            </configuration>
          </execution>
        </executions>
        <dependencies>
           <dependency>
             <groupId>org.eclipse.jetty.toolchain</groupId>
             <artifactId>jetty-build-support</artifactId>
             <version>${build-support-version}</version>
           </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <targetJdk>1.5</targetJdk>
          <rulesets>
            <ruleset>jetty/pmd_ruleset.xml</ruleset>
          </rulesets>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.jetty.toolchain</groupId>
            <artifactId>jetty-build-support</artifactId>
            <version>${build-support-version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifestEntries>
                <Implementation-Version>${project.version}</Implementation-Version>
                <Implementation-Vendor>Eclipse.org - Jetty</Implementation-Vendor>
                <url>${jetty.url}</url>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.4.2</version>
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <systemProperties>
              <property>
                <name>org.eclipse.jetty.io.AbstractBuffer.boundsChecking</name>
                <value>true</value>
              </property>
            </systemProperties>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>2.0.0</version>
          <extensions>true</extensions>
          <configuration>
            <instructions>
              <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
              <Bundle-DocURL>${jetty.url}</Bundle-DocURL>
              <Bundle-Vendor>Eclipse Jetty Project</Bundle-Vendor>
              <Bundle-Localization>plugin</Bundle-Localization>
              <Bundle-Classpath>.</Bundle-Classpath>
              <Bundle-Copyright>Copyright (c) 2008-2009 Mort Bay Consulting Pty. Ltd.</Bundle-Copyright>
              <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
            </instructions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2-beta-5</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.jetty.toolchain</groupId>
              <artifactId>jetty-assembly-descriptors</artifactId>
              <version>1.0</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.3.1</version>
          <configuration>
            <findbugsXmlOutput>true</findbugsXmlOutput>
            <xmlOutput>true</xmlOutput>
            <effort>Max</effort>
            <onlyAnalyze>org.eclipse.jetty.*</onlyAnalyze>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.2</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.6.1</version>
        <configuration>
          <maxmemory>512m</maxmemory>
          <docfilessubdirs>true</docfilessubdirs>
          <detectLinks>true</detectLinks>
          <detectJavaApiLink>true</detectJavaApiLink>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <targetJdk>1.5</targetJdk>
          <rulesets>
            <ruleset>jetty/pmd_ruleset.xml</ruleset>
          </rulesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
  </reporting>
  <repositories>
    <repository>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>sonatype-snapshots</id>
      <name>Sonatype Jetty Snapshots</name>
      <url>http://oss.sonatype.org/content/groups/jetty</url>
    </repository>
  </repositories>
  <modules>
    <module>jetty-util</module>
    <module>jetty-jmx</module>
    <module>jetty-io</module>
    <module>jetty-http</module>
    <module>jetty-websocket</module>
    <module>jetty-continuation</module>
    <module>jetty-server</module>
    <module>jetty-client</module>
    <module>jetty-xml</module>
    <module>jetty-security</module>
    <module>jetty-jaspi</module>
    <module>jetty-servlet</module>
    <module>jetty-webapp</module>
    <module>jetty-servlets</module>
    <module>jetty-jsp-2.1</module>
    <module>jetty-deploy</module>
    <module>jetty-ajp</module>
    <module>jetty-jndi</module>
    <module>jetty-annotations</module>
    <module>jetty-plus</module>
    <module>jetty-rewrite</module>
    <module>jetty-policy</module>
    <module>jetty-start</module>
    <module>jetty-nested</module>
    <module>jetty-overlay-deployer</module>
    <module>test-continuation</module>
    <module>test-continuation-jetty6</module>
    <module>test-jetty-servlet</module>
    <module>test-jetty-webapp</module>
    <module>test-jetty-nested</module>
    <module>example-jetty-embedded</module>
    <module>tests</module>
  </modules>
  <dependencyManagement>
    <dependencies>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>servlet-api</artifactId>
         <version>2.5</version>
       </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-tools-api</artifactId>
        <version>2.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-test-helper</artifactId>
        <version>${jetty.test.helper}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl104-over-slf4j</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jta_1.1_spec</artifactId>
        <version>${javax-transaction-version}</version>
      </dependency>
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>${javax-mail-version}</version>
      </dependency>
      <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>${javax-activation-version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit4-version}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <!--
    Usage:
    configure settings.xml for jetty.eclipse.website server entry
    > mvn -Paggregate-site javadoc:aggregate jxr:jxr
    > mvn -N site:deploy
    or
    > mvn -N site:sshdeploy     (for ssh users w/passphrase and ssh-agent)
   -->
  <profiles>
    <profile>
      <!--
        Moves the jetty-aggregate build tree to a profile called 'aggregates'.
        It is active by default, but being in a profile allows it to be
        disabled via the "-P-aggregates" command line on maven.
        (Useful for running site plugin with deep reporting and avoiding
         duplicate hits on aggregated classes) -->
      <id>aggregates</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <file>
          <exists>${basedir}/pom.xml</exists>
        </file>
      </activation>
      <modules>
        <module>jetty-aggregate</module>
        <module>jetty-distribution</module>
      </modules>
    </profile>
    <profile>
      <!--
        Moves the jetty-osgi build tree to a profile called 'osgi'.
        It is active by default, but being in a profile allows it to be
        disabled via the "-P-osgi" command line on maven (if need be).
        -->
      <id>osgi</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <file>
          <exists>${basedir}/pom.xml</exists>
        </file>
      </activation>
      <modules>
        <module>jetty-osgi</module>
      </modules>
    </profile>
    <profile>
      <id>cobertura</id>
      <reporting>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.4</version>
            <configuration>
              <maxmem>512m</maxmem>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <reportSets>
              <reportSet>
                <id>just-javadoc-no-aggregate</id>
                <reports>
                  <report>javadoc</report>
                </reports>
                <inherited>true</inherited>
                <configuration>
                  <minmemory>256m</minmemory>
                  <maxmemory>1g</maxmemory>
                  <excludePackageNames>com.acme</excludePackageNames>
                  <links>
                    <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
                    <link>http://java.sun.com/javaee/5/docs/api</link>
                    <link>http://junit.sourceforge.net/javadoc/</link>
                  </links>
                  <tags>
                    <tag>
                      <name>org.apache.xbean.XBean</name>
                      <placement>X</placement>
                      <head />
                    </tag>
                  </tags>
                </configuration>
              </reportSet>
            </reportSets>
          </plugin>
         </plugins>
      </reporting>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <testFailureIgnore>true</testFailureIgnore>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>maven-3</id>
      <activation>
        <file>
          <!--  This employs that the basedir expression is only recognized by Maven 3.x (see MNG-2363) -->
          <exists>${basedir}</exists>
        </file>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-site-plugin</artifactId>
              <version>3.0-beta-3</version>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-descriptor</id>
                <goals>
                  <goal>attach-descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>aggregate-site</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <configuration>
              <aggregate>true</aggregate>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <excludePackageNames>com.acme</excludePackageNames>
              <links>
                <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
                <link>http://java.sun.com/javaee/5/docs/api</link>
                <link>http://junit.sourceforge.net/javadoc/</link>
              </links>
              <tags>
                <tag>
                  <name>org.apache.xbean.XBean</name>
                  <placement>X</placement>
                  <head />
                </tag>
              </tags>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
