<?xml version="1.0" encoding="UTF-8"?>
<!-- 
// ========================================================================
// Copyright (c) Webtide LLC
// 
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at 
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.apache.org/licenses/LICENSE-2.0.txt
//
// You may elect to redistribute this code under either of these licenses. 
// ========================================================================
 -->
<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">
  <parent>
    <groupId>org.eclipse.jetty.tests</groupId>
    <artifactId>test-webapps-parent</artifactId>
    <version>9.3.6.v20151106</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.jetty</groupId>
  <artifactId>test-jetty-webapp</artifactId>
  <name>Test :: Jetty Test Webapp</name>
  <url>http://www.eclipse.org/jetty</url>
  <packaging>war</packaging>
  <properties>
    <bundle-symbolic-name>${project.groupId}.tests.webapp</bundle-symbolic-name>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
          <execution>
            <id>test</id>
            <phase>test</phase>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>**/WebAppTest.java</exclude>
            <exclude>**/Test*.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptorRefs>
                <descriptorRef>config</descriptorRef>
              </descriptorRefs>
              <descriptors>
                <descriptor>src/main/assembly/web-bundle.xml</descriptor>
              </descriptors>
              <archive>
                <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
              </archive>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <supportedProjectTypes>
            <supportedProjectType>war</supportedProjectType>
          </supportedProjectTypes>
          <instructions>
            <Import-Package>javax.servlet.jsp.*;version="[2.2.0,3.0)",org.eclipse.jetty.*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))",*</Import-Package>
            <Export-Package>!com.acme*</Export-Package>
            <!-- the test webapp is configured via a jetty xml file
            in order to add the security handler. -->
            <Web-ContextPath>/</Web-ContextPath>
            <!-- in fact the '.' must not be there
            but Felix-BND has a bug:
            http://www.mail-archive.com/users@felix.apache.org/msg04730.html
            https://issues.apache.org/jira/browse/FELIX-1571
            -->
            <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
          </instructions>
        </configuration>
      </plugin>
      <!-- also make this webapp an osgi bundle -->
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${project.version}</version>
        <dependencies>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
        <configuration>
          <stopPort>8087</stopPort>
          <stopKey>foo</stopKey>
          <scanIntervalSeconds>1</scanIntervalSeconds>
          <systemProperties>
            <systemProperty>
              <name>fooprop</name>
              <value>222</value>
            </systemProperty>
          </systemProperties>
          <webApp>
            <contextPath>/test</contextPath>
            <tempDirectory>${project.build.directory}/work</tempDirectory>
            <sessionHandler implementation="org.eclipse.jetty.server.session.SessionHandler">
              <sessionManager implementation="org.eclipse.jetty.server.session.HashSessionManager">
                <storeDirectory>${basedir}/target/sessions</storeDirectory>
              </sessionManager>
            </sessionHandler>
          </webApp>
          <loginServices>
            <loginService implementation="org.eclipse.jetty.security.HashLoginService">
              <name>Test Realm</name>
              <config>src/main/config/demo-base/etc/realm.properties</config>
            </loginService>
          </loginServices>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-continuation</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlets</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-servlet</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-server</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-webapp</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jmx</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>
      <version>${project.version}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.toolchain</groupId>
      <artifactId>jetty-test-helper</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.websocket</groupId>
      <artifactId>javax.websocket-api</artifactId>
      <version>1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <profiles>
    <profile>
      <id>precompile-jsp</id>
      <build>
        <plugins>
         <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-jspc-maven-plugin</artifactId>
          <version>${project.version}</version>
          <executions>
            <execution>
              <id>jspc</id>
              <goals>
                <goal>jspc</goal>
              </goals>
             <!-- example configuration
              <configuration>
                <includes>**/*.foo</includes>
                <excludes>**/*.fff</excludes>
                <sourceVersion>1.8</sourceVersion>
                <targetVersion>1.8</targetVersion>
              </configuration>
              -->
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <webXml>${basedir}/target/web.xml</webXml>
          </configuration>
        </plugin>
       </plugins>
     </build>
    </profile>
  </profiles>
</project>
