<?xml version="1.0" encoding="UTF-8"?>
<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.tests</groupId>
    <artifactId>test-webapps-parent</artifactId>
    <version>9.3.19-SNAPSHOT</version>
  </parent>
  <artifactId>test-jndi-webapp</artifactId>
  <name>Jetty Tests :: WebApp :: JNDI</name>
  <packaging>war</packaging>
  <properties>
    <bundle-symbolic-name>${project.groupId}.jndi</bundle-symbolic-name>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <!-- DO NOT DEPLOY (or Release) -->
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-xml-files</id>
            <phase>process-resources</phase>
            <configuration>
              <tasks>
                <concat destfile="${project.build.directory}/plugin-context.xml">
                  <filelist dir="src/main/templates/" files="plugin-context-header.xml,env-definitions.xml" />
                </concat>
                <concat destfile="${project.build.directory}/test-jndi.xml">
                  <filelist dir="src/main/templates/" files="jetty-test-jndi-header.xml,env-definitions.xml" />
                </concat>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
       <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.eclipse.jetty.tests</groupId>
                  <artifactId>test-mock-resources</artifactId>
                  <version>${project.version}</version>
                  <type>jar</type>
                  <includes>**</includes>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/lib/jndi</outputDirectory>
                </artifactItem>
                <artifactItem>
                  <groupId>org.eclipse.jetty.orbit</groupId>
                  <artifactId>javax.mail.glassfish</artifactId>
                  <version>1.4.1.v201005082020</version>
                  <type>jar</type>
                  <includes>**</includes>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/lib/jndi</outputDirectory>
                </artifactItem>
              </artifactItems>
          </configuration>
          </execution>
        </executions>
       </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/main/assembly/config.xml</descriptor>
              </descriptors>
              <!-- filters> <filter>src/filters/filter.properties</filter> 
                </filters -->
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${project.version}</version>
        <configuration>
          <webAppXml>${project.build.directory}/plugin-context.xml</webAppXml>
          <webAppConfig>
            <war>src/main/webapp</war>
            <descriptor>src/main/webapp/WEB-INF/web.xml</descriptor>
            <contextPath>/test-jndi</contextPath>
          </webAppConfig>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.jetty.tests</groupId>
            <artifactId>test-mock-resources</artifactId>
            <version>${project.version}</version>
          </dependency>
          <dependency>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.mail.glassfish</artifactId>
            <version>1.4.1.v201005082020</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
 <dependencies>
    <dependency>
      <groupId>javax.transaction</groupId>
      <artifactId>javax.transaction-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.orbit</groupId>
      <artifactId>javax.mail.glassfish</artifactId>
      <version>1.4.1.v201005082020</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</project>
