<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<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.apache.myfaces.tobago</groupId>
    <artifactId>tobago</artifactId>
    <version>2.5.0</version>
  </parent>
  <packaging>pom</packaging>
  <name>Tobago Examples</name>
  <artifactId>tobago-example</artifactId>

  <properties>
    <tobago.basedir>${project.basedir}/..</tobago.basedir>
    <jetty.version>9.4.46.v20220331</jetty.version>
  </properties>

  <modules>
    <!--disable tobago-example-addressbook because of
    CVE-2022-22968(5.3), CVE-2022-22965(9.8), CVE-2016-1000027(9.8),
    CVE-2022-22968(5.3), CVE-2022-22965(9.8), CVE-2016-1000027(9.8)
    <module>tobago-example-addressbook</module>-->
    <module>tobago-example-addressbook-cdi</module>
    <module>tobago-example-blank</module>
    <module>tobago-example-data</module>
    <module>tobago-example-demo</module>
    <module>tobago-example-portlet</module>
    <module>tobago-example-sandbox</module>
    <module>tobago-example-security</module>
    <module>tobago-example-test</module>
    <module>tobago-example-assembly</module>
  </modules>

  <build>
    <!-- NOTE The addressbook run only with mvn jetty:run-exploded.
         For the other examples mvn jetty:run should work.
         For Debugging with jetty set following options
            MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
     -->
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
      </plugin>
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
          <configuration>
            <!-- use this to change the context path: -->
<!--
            <webApp>
              <contextPath>/example</contextPath>
            </webApp>
-->
            <!-- use this to change the port: -->
<!--
            <httpConnector>
              <port>7080</port>
            </httpConnector>
-->
          </configuration>
      </plugin>
      <plugin>
        <!-- usage: mvn clean package tomee:run -Djsf=provided -->
        <groupId>org.apache.openejb.maven</groupId>
        <artifactId>tomee-maven-plugin</artifactId>
        <version>1.7.5</version>
        <configuration>
          <tomeeVersion>1.7.5</tomeeVersion>
          <tomeeClassifier>plus</tomeeClassifier>
          <!--<tomeeHttpPort>9090</tomeeHttpPort>-->
          <!--<context>/demo</context>-->
        </configuration>
      </plugin>

    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>${jetty.version}</version>
          <configuration>
            <scanIntervalSeconds>5</scanIntervalSeconds>
          </configuration>
          <dependencies>
            <dependency> <!-- add JAXB to run the demo with Java 11 and higher -->
              <groupId>javax.xml.bind</groupId>
              <artifactId>jaxb-api</artifactId>
              <version>2.3.1</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>javax.el</groupId>
        <artifactId>javax.el-api</artifactId>
        <version>3.0.1-b06</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-charlotteville</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-scarborough</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-speyside</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-richmond</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-standard</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-core</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>jsf-provided</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>provided</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-api</artifactId>
          <version>${myfaces20.version}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-impl</artifactId>
          <version>${myfaces20.version}</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>myfaces-2.0</id>
      <activation>
        <property>
          <name>!jsf</name>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-api</artifactId>
          <version>${myfaces20.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-impl</artifactId>
          <version>${myfaces20.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>myfaces-2.1</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>myfaces-2.1</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-api</artifactId>
          <version>${myfaces21.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-impl</artifactId>
          <version>${myfaces21.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>myfaces-2.2</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>myfaces-2.2</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-api</artifactId>
          <version>${myfaces22.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-impl</artifactId>
          <version>${myfaces22.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>myfaces-2.3</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>myfaces-2.3</value>
        </property>
      </activation>
      <properties>
        <jetty.version>10.0.9</jetty.version>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-api</artifactId>
          <version>${myfaces23.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>org.apache.myfaces.core</groupId>
          <artifactId>myfaces-impl</artifactId>
          <version>${myfaces23.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>mojarra-2.0</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>mojarra-2.0</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-api</artifactId>
          <version>${mojarra20.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-impl</artifactId>
          <version>${mojarra20.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>mojarra-2.1</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>mojarra-2.1</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-api</artifactId>
          <version>${mojarra21.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-impl</artifactId>
          <version>${mojarra21.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>mojarra-2.2</id>
      <activation>
        <property>
          <name>jsf</name>
          <value>mojarra-2.2</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-api</artifactId>
          <version>${mojarra22.version}</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.sun.faces</groupId>
          <artifactId>jsf-impl</artifactId>
          <version>${mojarra22.version}</version>
          <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp.jstl</groupId>
          <artifactId>javax.servlet.jsp.jstl-api</artifactId>
          <scope>runtime</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>liberty</id>
      <build>
        <plugins>
          <plugin>
            <!-- The usage is documented in the FAQ -->
            <groupId>com.ibm.websphere.wlp.maven.plugins</groupId>
            <artifactId>liberty-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
              <serverHome>${wlp.directory}</serverHome>
              <appArchive>${project.build.directory}/${project.build.finalName}.war</appArchive>
              <serverName>tobago</serverName>
              <!-- default debugging port is 7777 -->
              <!--<debug>true</debug>-->
            </configuration>
          </plugin>
        </plugins>
      </build>
      <pluginRepositories>
        <pluginRepository>
          <!-- For IBM Websphere Liberty Profile (WLP) -->
          <id>Liberty</id>
          <name>Liberty Repository</name>
          <url>http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/maven/repository/</url>
          <layout>default</layout>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <releases>
            <enabled>true</enabled>
          </releases>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <profile>
      <id>jboss</id>
      <build>
      <plugins>
        <plugin>
          <groupId>org.jboss.as.plugins</groupId>
          <artifactId>jboss-as-maven-plugin</artifactId>
          <version>7.9.Final</version>
        </plugin>
      </plugins>
      </build>
    </profile>

<!-- TBD: be needed for which cases?
    <profile>
      <id>303off</id>
      <dependencies>
        <dependency>
          <groupId>javax.validation</groupId>
          <artifactId>validation-api</artifactId>
          <version>1.0.0.GA</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-validator</artifactId>
          <version>4.2.0.Final</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </profile>
-->

  </profiles>
</project>
