<?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</groupId>
    <artifactId>jetty-project</artifactId>
    <version>12.1.6</version>
  </parent>
  <groupId>org.eclipse.jetty.ee8</groupId>
  <artifactId>jetty-ee8</artifactId>
  <packaging>pom</packaging>
  <name>EE8</name>

  <modules>
    <module>jetty-ee8-annotations</module>
    <module>jetty-ee8-apache-jsp</module>
    <module>jetty-ee8-bom</module>
    <module>jetty-ee8-cdi</module>
    <module>jetty-ee8-demos</module>
    <module>jetty-ee8-glassfish-jstl</module>
    <module>jetty-ee8-home</module>
    <module>jetty-ee8-jaspi</module>
    <module>jetty-ee8-jndi</module>
    <module>jetty-ee8-jspc-maven-plugin</module>
    <module>jetty-ee8-maven-plugin</module>
    <module>jetty-ee8-nested</module>
    <module>jetty-ee8-openid</module>
    <module>jetty-ee8-osgi</module>
    <module>jetty-ee8-plus</module>
    <module>jetty-ee8-proxy</module>
    <module>jetty-ee8-quickstart</module>
    <module>jetty-ee8-security</module>
    <module>jetty-ee8-servlet</module>
    <module>jetty-ee8-servlets</module>
    <module>jetty-ee8-webapp</module>
    <module>jetty-ee8-websocket</module>
  </modules>

  <properties>
    <!-- generated sources cannot follow exactly Jetty code style -->
    <checkstyle.skip>true</checkstyle.skip>
    <ee8.jakarta.activation.api.version>1.2.2</ee8.jakarta.activation.api.version>

    <ee8.jakarta.servlet.jsp.api.version>2.3.6</ee8.jakarta.servlet.jsp.api.version>
    <ee8.jakarta.servlet.jsp.jstl.api.version>1.2.7</ee8.jakarta.servlet.jsp.jstl.api.version>
    <ee8.jakarta.transaction-api.version>1.3.3</ee8.jakarta.transaction-api.version>

    <ee8.javax.security.auth.message>1.0.0.v201108011116</ee8.javax.security.auth.message>
    <ee8.javax.servlet.jsp.jstl.impl.version>1.2.5</ee8.javax.servlet.jsp.jstl.impl.version>
    <ee8.jetty.servlet.api.version>4.0.9</ee8.jetty.servlet.api.version>
    <ee8.jsp.impl.version>9.0.111</ee8.jsp.impl.version>
    <ee8.weld.version>3.1.9.Final</ee8.weld.version>
    <ee9.module/>
    <ee9.module.path>${maven.multiModuleProjectDirectory}/jetty-ee9/${ee9.module}</ee9.module.path>
    <javax.servlet.jsp.api.version>2.3</javax.servlet.jsp.api.version>
    <sonar.skip>true</sonar.skip>
  </properties>

  <dependencyManagement>

    <!-- Jetty EE 8 Dependencies -->
    <dependencies>
      <dependency>
        <groupId>jakarta.activation</groupId>
        <artifactId>jakarta.activation-api</artifactId>
        <version>${ee8.jakarta.activation.api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>${ee8.jakarta.annotation.api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet.jsp</groupId>
        <artifactId>jakarta.servlet.jsp-api</artifactId>
        <version>${ee8.jakarta.servlet.jsp.api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.servlet.jsp.jstl</groupId>
        <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        <version>${ee8.jakarta.servlet.jsp.jstl.api.version}</version>
      </dependency>
      <dependency>
        <groupId>jakarta.transaction</groupId>
        <artifactId>jakarta.transaction-api</artifactId>
        <version>${ee8.jakarta.transaction-api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.demos</groupId>
        <artifactId>jetty-servlet4-demo-container-initializer</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.demos</groupId>
        <artifactId>jetty-servlet4-demo-mock-resources</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.demos</groupId>
        <artifactId>jetty-servlet4-demo-simple-webapp</artifactId>
        <version>${project.version}</version>
        <type>war</type>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.demos</groupId>
        <artifactId>jetty-servlet4-demo-web-fragment</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-annotations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-apache-jsp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-cdi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-glassfish-jstl</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-jndi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-nested</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-openid</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-plus</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-proxy</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-quickstart</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-security</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-servlet</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-servlets</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8</groupId>
        <artifactId>jetty-ee8-webapp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-javax-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-javax-client-webapp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-javax-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-javax-server</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-jetty-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-jetty-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-jetty-client-webapp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-jetty-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-jetty-server</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.ee8.websocket</groupId>
        <artifactId>jetty-ee8-websocket-servlet</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.mail.glassfish</artifactId>
        <version>${ee8.javax.mail.glassfish.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.orbit</groupId>
        <artifactId>javax.security.auth.message</artifactId>
        <version>${ee8.javax.security.auth.message}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-javax-websocket-api</artifactId>
        <version>${ee8.jakarta.websocket.api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-servlet-api</artifactId>
        <version>${ee8.jetty.servlet.api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>javax.servlet.jsp.jstl</artifactId>
        <version>${ee8.javax.servlet.jsp.jstl.impl.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>*</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>*</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>*</artifactId>
          </exclusion>
          <exclusion>
            <groupId>xalan</groupId>
            <artifactId>*</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jasper</groupId>
        <artifactId>mortbay-apache-el</artifactId>
        <version>${ee8.jsp.impl.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jasper</groupId>
        <artifactId>mortbay-apache-jsp</artifactId>
        <version>${ee8.jsp.impl.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <nonFilteredFileExtensions>
            <nonFilteredFileExtension>p12</nonFilteredFileExtension>
            <nonFilteredFileExtension>raw</nonFilteredFileExtension>
            <nonFilteredFileExtension>jar</nonFilteredFileExtension>
            <nonFilteredFileExtension>war</nonFilteredFileExtension>
            <nonFilteredFileExtension>jks</nonFilteredFileExtension>
            <nonFilteredFileExtension>tga</nonFilteredFileExtension>
            <nonFilteredFileExtension>zip</nonFilteredFileExtension>
            <nonFilteredFileExtension>gz</nonFilteredFileExtension>
            <nonFilteredFileExtension>tif</nonFilteredFileExtension>
            <nonFilteredFileExtension>tiff</nonFilteredFileExtension>
            <nonFilteredFileExtension>svgz</nonFilteredFileExtension>
            <nonFilteredFileExtension>jp2</nonFilteredFileExtension>
            <nonFilteredFileExtension>rar</nonFilteredFileExtension>
            <nonFilteredFileExtension>bz2</nonFilteredFileExtension>
            <nonFilteredFileExtension>br</nonFilteredFileExtension>
            <nonFilteredFileExtension>xcf</nonFilteredFileExtension>
            <nonFilteredFileExtension>icon</nonFilteredFileExtension>
            <nonFilteredFileExtension>png</nonFilteredFileExtension>
            <nonFilteredFileExtension>webp</nonFilteredFileExtension>
            <nonFilteredFileExtension>gif</nonFilteredFileExtension>
            <nonFilteredFileExtension>ico</nonFilteredFileExtension>
            <nonFilteredFileExtension>bmp</nonFilteredFileExtension>
            <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
            <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
            <nonFilteredFileExtension>rar</nonFilteredFileExtension>
            <nonFilteredFileExtension>xcf</nonFilteredFileExtension>
            <nonFilteredFileExtension>svg</nonFilteredFileExtension>
            <nonFilteredFileExtension>sha1</nonFilteredFileExtension>
            <nonFilteredFileExtension>png</nonFilteredFileExtension>
            <nonFilteredFileExtension>sha</nonFilteredFileExtension>
            <nonFilteredFileExtension>clazz</nonFilteredFileExtension>
          </nonFilteredFileExtensions>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-filtering</artifactId>
            <version>3.4.0</version>
          </dependency>
          <dependency>
            <groupId>org.eclipse.jetty.toolchain</groupId>
            <artifactId>jetty-modify-sources-maven-plugin</artifactId>
            <version>${modify-sources-plugin.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>copy-ee8-resources</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>generate-resources</phase>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <mavenFilteringHints>
                <mavenFilteringHint>ee9-to-ee8</mavenFilteringHint>
              </mavenFilteringHints>
              <resources>
                <resource>
                  <filtering>true</filtering>
                  <directory>${ee9.module.path}/src/main/resources</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-ee8-test-resources</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>generate-test-resources</phase>
            <configuration>
              <mavenFilteringHints>
                <mavenFilteringHint>ee9-to-ee8</mavenFilteringHint>
              </mavenFilteringHints>
              <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
              <resources>
                <resource>
                  <filtering>true</filtering>
                  <directory>${ee9.module.path}/src/test/resources</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-modify-sources-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-ee8-sources</id>
            <goals>
              <goal>modify-sources-ee9-to-ee8</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
              <sourceProjectLocation>${ee9.module.path}/src/main/java</sourceProjectLocation>
              <outputDirectory>${project.build.sourceDirectory}</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>modify-services-loader-ee9-to-ee8</id>
            <goals>
              <goal>modify-service-loader-files-ee9-to-ee8</goal>
            </goals>
            <phase>process-resources</phase>
            <configuration>
              <extraFileNames>
                <extraFileName>org.apache.juli.logging.Log</extraFileName>
              </extraFileNames>
            </configuration>
          </execution>
          <execution>
            <id>generate-ee8-test-sources</id>
            <goals>
              <goal>modify-sources-ee9-to-ee8</goal>
            </goals>
            <phase>generate-test-sources</phase>
            <configuration>
              <testSources>true</testSources>
              <sourceProjectLocation>${ee9.module.path}/src/test/java</sourceProjectLocation>
              <outputDirectory>${project.build.testSourceDirectory}</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <sourceDirectory>${project.build.directory}/generated-sources/ee8</sourceDirectory>
    <testSourceDirectory>${project.build.directory}/generated-test-sources/ee8</testSourceDirectory>
  </build>

</project>
