<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>22</version>
  </parent>
  <artifactId>jetty-project</artifactId>
  <version>9.2.3-SNAPSHOT</version>
  <name>Jetty :: Project</name>
  <url>http://www.eclipse.org/jetty</url>
  <packaging>pom</packaging>
  <properties>
    <jetty.url>http://www.eclipse.org/jetty</jetty.url>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <build-support-version>1.1</build-support-version>
    <slf4j-version>1.6.6</slf4j-version>
    <jetty-test-policy-version>1.2</jetty-test-policy-version>
    <npn.api.version>1.1.0.v20120525</npn.api.version>
    <alpn.api.version>1.0.0</alpn.api.version>
    <!-- default values are unsupported, but required to be defined for reactor sanity reasons -->
    <npn.version>undefined</npn.version>
    <alpn.version>undefined</alpn.version>
  </properties>
  <scm>
    <connection>scm:git:http://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project.git</connection>
    <developerConnection>scm:git:ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project.git</developerConnection>
    <url>http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree</url>
    <tag>HEAD</tag>
  </scm>
  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <verbose>false</verbose>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <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.1</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>
        <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>
        <executions>
          <execution>
            <id>set-osgi-version</id>
            <phase>validate</phase>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-version-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-version</id>
            <phase>process-resources</phase>
            <goals>
              <goal>attach-version-text</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- Enforcer Plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[3.0.0,)</version>
                  <message>[ERROR] OLD MAVEN [${maven.version}] in use, Jetty ${project.version} requires Maven 3.0.0 or newer</message>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>[1.7.0-40,)</version>
                  <message>[ERROR] OLD JDK [${java.version}] in use. Jetty ${project.version} requires JDK 1.7.0_40 or newer</message>
                </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>
          <execution>
            <id>ban-junit-dep.jar</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>junit:junit-dep:*:jar</exclude>
                  </excludes>
                  <searchTransitive>true</searchTransitive>
                  <message>We use junit.jar, not junit-dep.jar (as of junit 4.11, hamcrest is no longer embedded)</message>
                </bannedDependencies>
              </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>
        <executions>
          <execution>
            <id>named-logging-enforcement</id>
            <phase>compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <verbose>true</verbose>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <targetJdk>1.7</targetJdk>
          <rulesets>
            <ruleset>jetty/pmd_logging_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>
      <plugin>
        <inherited>false</inherited>
        <groupId>com.mycila.maven-license-plugin</groupId>
        <artifactId>maven-license-plugin</artifactId>
        <version>1.10.b1</version>
        <configuration>
          <header>header-template.txt</header>
          <failIfMissing>true</failIfMissing>
          <aggregate>true</aggregate>
          <strictCheck>true</strictCheck>
          <properties>
             <copyright-range>${project.inceptionYear}-2014</copyright-range>
          </properties>
          <mapping>
            <java>DOUBLESLASH_STYLE</java>
          </mapping>
          <includes>
            <include>**/*.java</include>
          </includes>
          <excludes>
            <exclude>jetty-util/src/main/java/org/eclipse/jetty/util/security/UnixCrypt.java</exclude>
            <exclude>jetty-policy/src/main/java/org/eclipse/jetty/policy/loader/DefaultPolicyLoader.java</exclude>
            <exclude>jetty-policy/src/main/java/org/eclipse/jetty/policy/loader/PolicyFileScanner.java</exclude>
            <exclude>jetty-ant/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>check-headers</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.jetty.toolchain</groupId>
          <artifactId>jetty-version-maven-plugin</artifactId>
          <version>1.0.10</version>
        </plugin>
        <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.17</version>
          <configuration>
            <argLine>-showversion -Xmx1g -Xms1g -XX:+PrintGCDetails</argLine>
            <failIfNoTests>false</failIfNoTests>
            <runMode>random</runMode>
            <systemProperties>
              <!--
              <property>
                <name>org.eclipse.jetty.io.AbstractBuffer.boundsChecking</name>
                <value>true</value>
              </property>
              -->
              <property>
                <name>java.io.tmpdir</name>
                <value>${project.build.directory}</value>
              </property>
            </systemProperties>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <extensions>true</extensions>
          <configuration>
            <instructions>
              <Bundle-SymbolicName>${bundle-symbolic-name}</Bundle-SymbolicName>
              <Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment>
              <Bundle-DocURL>${jetty.url}</Bundle-DocURL>
              <Bundle-Vendor>Eclipse Jetty Project</Bundle-Vendor>
              <Bundle-Classpath>.</Bundle-Classpath>
              <Export-Package>${bundle-symbolic-name}.*;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"</Export-Package>
              <Bundle-Copyright>Copyright (c) 2008-2014 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>
          <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>
          <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>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <docfilessubdirs>true</docfilessubdirs>
            <detectLinks>false</detectLinks>
            <detectJavaApiLink>true</detectJavaApiLink>
            <excludePackageNames>com.acme.*;org.slf4j.*;org.mortbay.*</excludePackageNames>
            <links>
              <link>http://docs.oracle.com/javase/7/docs/api/</link>
              <link>http://docs.oracle.com/javaee/7/api/</link>
              <link>http://download.eclipse.org/jetty/stable-9/apidocs/</link>
              <link>http://junit.sourceforge.net/javadoc/</link>
            </links>
            <tags>
              <tag>
                <name>org.apache.xbean.XBean</name>
                <placement>X</placement>
                <head />
              </tag>
            </tags>
            <header>
              <![CDATA[
                  <script type="text/javascript">
                    var _gaq = _gaq || [];
                    _gaq.push(['_setAccount', 'UA-1149868-7']);
                    _gaq.push(['_trackPageview']);
                    (function() {
                      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
                    })();
                 </script>
              ]]>
            </header>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>2.7.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.8</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.7.1</version>
        <configuration>
          <targetJdk>1.7</targetJdk>
          <rulesets>
            <ruleset>jetty/pmd_ruleset.xml</ruleset>
          </rulesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.5.2</version>
      </plugin>
    </plugins>
  </reporting>
  <repositories>
    <repository>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>sonatype-snapshots</id>
      <name>Sonatype Jetty Snapshots</name>
      <url>https://oss.sonatype.org/content/groups/jetty</url>
    </repository>
  </repositories>
  <modules>
    <module>jetty-ant</module>
    <module>jetty-util</module>
    <module>jetty-jmx</module>
    <module>jetty-io</module>
    <module>jetty-http</module>
    <module>jetty-continuation</module>
    <module>jetty-server</module>
    <module>jetty-xml</module>
    <module>jetty-security</module>
    <module>jetty-servlet</module>
    <module>jetty-webapp</module>
    <module>jetty-spdy</module>
    <module>jetty-fcgi</module>
    <module>jetty-websocket</module>
    <module>jetty-servlets</module>
    <module>jetty-util-ajax</module>
    <module>jetty-jsp</module>
    <module>apache-jsp</module>
    <module>apache-jstl</module>
    <module>jetty-maven-plugin</module>
    <module>jetty-jspc-maven-plugin</module>
    <module>jetty-deploy</module>
    <module>jetty-start</module>
    <module>jetty-plus</module>
    <module>jetty-annotations</module>
    <module>jetty-jndi</module>
    <module>jetty-jaas</module>
    <module>jetty-spring</module>
    <module>jetty-client</module>
    <module>jetty-proxy</module>
    <module>jetty-jaspi</module>
    <module>jetty-rewrite</module>
    <module>jetty-nosql</module>
    <module>tests</module>
    <module>examples</module>
    <module>jetty-quickstart</module>
    <module>jetty-distribution</module>
    <module>jetty-runner</module>
    <module>jetty-monitor</module>
    <module>jetty-http-spi</module>
    <module>jetty-osgi</module>
    <module>jetty-alpn</module>

    <!-- modules that need fixed and added back, or simply dropped and not maintained
    <module>jetty-rhttp</module>
    -->
    <!--<module>jetty-overlay-deployer</module>-->
  </modules>
  <dependencyManagement>
    <dependencies>
      <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
      </dependency>
      <dependency>
         <groupId>javax.websocket</groupId>
         <artifactId>javax.websocket-api</artifactId>
         <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>5.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-commons</artifactId>
        <version>5.0.1</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.security.auth.message</artifactId>
        <version>1.0.0.v201108011116</version>
      </dependency>

      <!-- JSP Deps -->
      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-schemas</artifactId>
        <version>3.1.M0</version>
      </dependency>

      <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>javax.servlet.jsp</artifactId>
        <version>2.3.2</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-jsp-jdt</artifactId>
        <version>2.3.3</version>
      </dependency>


      <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>3.0.0</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>3.0.0</version>
      </dependency>

      <dependency>
        <groupId>org.mortbay.jasper</groupId>
        <artifactId>apache-jsp</artifactId>
        <version>8.0.9.M2</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>org.eclipse.jdt.core</artifactId>
       <version>3.8.2.v20130121</version>
       <exclusions>
          <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
         </exclusion>
        </exclusions>
      </dependency>

    <!-- JSTL Impl -->
    <dependency>
       <groupId>org.glassfish.web</groupId>
       <artifactId>javax.servlet.jsp.jstl</artifactId>
       <version>1.2.2</version>
      <exclusions>
        <exclusion>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>jstl-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>jsp-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.el</groupId>
          <artifactId>el-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-impl</artifactId>
      <version>1.2.1</version>
    </dependency>

     <!-- JSTL API -->
      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.servlet.jsp.jstl</artifactId>
        <version>1.2.0.v201105211821</version>
        <exclusions>
          <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet.jsp</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.taglibs</groupId>
        <artifactId>taglibs-standard-spec</artifactId>
        <version>1.2.1</version>
      </dependency>


      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.activation</artifactId>
        <version>1.1.0.v201105071233</version>
        <scope>provided</scope>
      </dependency>

      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.mail.glassfish</artifactId>
        <version>1.4.1.v201005082020</version>
      </dependency>

      <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>javax.transaction-api</artifactId>
        <version>1.2</version>
        <scope>provided</scope>
      </dependency>


      <!-- Old Deps -->
      <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>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl104-over-slf4j</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.9.5</version>
        <exclusions>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <!--
    Usage:
    configure settings.xml for jetty.eclipse.website server entry
    > mvn -Paggregate-site javadoc:aggregate jxr:jxr
    then
    > mvn -N site:deploy
    or
    > mvn -N site:sshdeploy     (for ssh users w/passphrase and ssh-agent)
   -->
  <profiles>
    <profile>
      <id>eclipse-release</id>
      <modules>
        <module>aggregates/jetty-all</module>
      </modules>
    </profile>
    <profile>
      <id>ci</id>
      <modules>
        <module>aggregates/jetty-all</module>
      </modules>
    </profile>
    <profile>
      <id>update-version</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.jetty.toolchain</groupId>
            <artifactId>jetty-version-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>gen-versiontxt</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>update-version-text</goal>
                </goals>
                <configuration>
                  <refreshTags>true</refreshTags>
                  <copyGenerated>true</copyGenerated>
                  <attachArtifact>false</attachArtifact>
                  <updateDate>true</updateDate>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </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>
        <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://docs.oracle.com/javase/7/docs/api/</link>
                <link>http://docs.oracle.com/javaee/6/api</link>
                <link>http://junit.sourceforge.net/javadoc/</link>
              </links>
              <tags>
                <tag>
                  <name>org.apache.xbean.XBean</name>
                  <placement>X</placement>
                  <head />
                </tag>
              </tags>
              <header>
                <![CDATA[
                    <script type="text/javascript">
                      var _gaq = _gaq || [];
                      _gaq.push(['_setAccount', 'UA-1149868-7']);
                      _gaq.push(['_trackPageview']);
                      (function() {
                        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
                      })();
                   </script>
                ]]>
              </header>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>api-change</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>clirr-maven-plugin</artifactId>
            <version>2.5</version>
            <executions>
              <execution>
                <id>compare-api</id>
                <phase>package</phase>
                <goals>
                  <goal>clirr</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <minSeverity>info</minSeverity>
              <comparisonVersion>9.0.3.v20130506</comparisonVersion>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>7u40</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_40</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.6.v20130911</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u45</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_45</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.6.v20130911</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u51</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_51</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.6.v20130911</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u55</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_55</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.7.v20140316</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u60</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_60</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.7.v20140316</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u65</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_65</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.7.v20140316</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>7u67</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.7.0_67</value>
        </property>
      </activation>
      <properties>
        <npn.version>1.1.7.v20140316</npn.version>
        <alpn.version>7.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>8u00</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.8.0</value>
        </property>
      </activation>
      <properties>
        <alpn.version>8.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>8u05</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.8.0_05</value>
        </property>
      </activation>
      <properties>
        <alpn.version>8.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>8u11</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.8.0_11</value>
        </property>
      </activation>
      <properties>
        <alpn.version>8.0.0.v20140317</alpn.version>
      </properties>
    </profile>
    <profile>
      <id>8u20</id>
      <activation>
        <property>
          <name>java.version</name>
          <value>1.8.0_20</value>
        </property>
      </activation>
      <properties>
        <alpn.version>8.0.0.v20140317</alpn.version>
      </properties>
    </profile>
  </profiles>
</project>

