<?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</groupId>
    <artifactId>myfaces</artifactId>
    <version>19</version>
  </parent>
  <groupId>org.apache.myfaces.tobago</groupId>
  <artifactId>tobago</artifactId>
  <packaging>pom</packaging>
  <name>Apache Tobago</name>
  <version>5.0.0-SNAPSHOT</version>
  <description>The goal of Tobago is to provide the community with a well designed set of user interface components based on JSF and run on MyFaces.</description>
  <url>http://myfaces.apache.org/tobago</url>
  <inceptionYear>2002</inceptionYear>

  <properties>
    <frontend.skip>true</frontend.skip>
    <!-- old main branch of MyFaces -->
    <myfaces23.version>2.3.7</myfaces23.version>
    <myfaces-test23.version>1.0.8</myfaces-test23.version>
    <!-- new main branch of MyFaces "next" -->
<!--    <myfaces23.version>2.3-next-M3</myfaces23.version>-->
    <myfaces23x.version>2.3-next-M4</myfaces23x.version>

    <mojarra23.version>2.3.14</mojarra23.version>
    <openwebbeans.version>2.0.16</openwebbeans.version>
    <slf4j.version>1.7.30</slf4j.version>
    <logback.version>1.2.3</logback.version>
    <maven.compile.source>1.8</maven.compile.source>
    <maven.compile.target>1.8</maven.compile.target>
    <maven.compile.encoding>UTF-8</maven.compile.encoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <required.maven.version>3.0.4</required.maven.version>
    <maven-pmd-plugin.version>3.8</maven-pmd-plugin.version>
    <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
    <checkstyle-rules.version>12</checkstyle-rules.version>
  </properties>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/TOBAGO</url>
  </issueManagement>
  <ciManagement>
    <system>jenkins</system>
    <url>https://builds.apache.org/</url>
    <notifiers>
      <notifier>
        <type>mail</type>
        <configuration>
          <address>commits@myfaces.apache.org</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement>
  <mailingLists>
    <mailingList>
      <name>Myfaces User List (use [Tobago] prefix)</name>
      <subscribe>users-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>List for posting questions about how to use myfaces projects. Subscribe to this list before posting</post>
      <archive>https://lists.apache.org/list.html?user@myfaces.apache.org</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/myfaces-users</otherArchive>
        <otherArchive>http://www.mail-archive.com/users@myfaces.apache.org/</otherArchive>
        <otherArchive>http://myfaces.10567.n7.nabble.com/MyFaces-Users-f57691.html</otherArchive>
        <otherArchive>http://myfaces.markmail.org/search/?q=#query:list%3Aorg.apache.myfaces.users</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Developer List (use [Tobago] prefix)</name>
      <subscribe>dev-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>List for posting patches and discussing internal code implementation issues. Subscribe to this list before posting</post>
      <archive>https://lists.apache.org/list.html?dev@myfaces.apache.org</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/myfaces-dev</otherArchive>
        <otherArchive>http://www.mail-archive.com/dev@myfaces.apache.org/</otherArchive>
        <otherArchive>http://myfaces.10567.n7.nabble.com/My-Faces-Dev-f3.html</otherArchive>
        <otherArchive>http://myfaces.markmail.org/search/?q=#query:list%3Aorg.apache.myfaces.dev</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Commits List</name>
      <subscribe>commits-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>https://lists.apache.org/list.html?commits@myfaces.apache.org</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/myfaces-commits</otherArchive>
        <otherArchive>http://myfaces.markmail.org/search/?q=#query:list%3Aorg.apache.myfaces.commits</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Notifications List</name>
      <subscribe>notifications-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>notifications-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>https://lists.apache.org/list.html?notifications@myfaces.apache.org</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/myfaces-notifications</otherArchive>
        <otherArchive>http://myfaces.markmail.org/search/?q=#query:list%3Aorg.apache.myfaces.notifications</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Announcements List</name>
      <subscribe>announce-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>announce-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>https://lists.apache.org/list.html?announce@myfaces.apache.org</archive>
      <otherArchives>
        <otherArchive>http://mail-archives.apache.org/mod_mbox/myfaces-announce</otherArchive>
        <otherArchive>http://myfaces.markmail.org/search/?q=#query:list%3Aorg.apache.myfaces.announce</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Private (PMC) List</name>
      <subscribe>only for MyFaces PMC members</subscribe>
      <unsubscribe>private-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post unless you need to contact PMC on issues not meant for public</post>
    </mailingList>
  </mailingLists>

  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>

      <!--<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>simian-report-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <configuration>
          <minimumThreshold>2</minimumThreshold>
        </configuration>
      </plugin>
      -->
      <!--plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.2</version>
      </plugin-->

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <tags>
            <tag>TODO</tag>
            <tag>FIXME</tag>
            <tag>XXX</tag>
            <tag>TBD</tag>
            <tag>@deprecated</tag>
          </tags>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.5</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${maven-checkstyle-plugin.version}</version>
        <configuration>
          <configLocation>tobago/checkstyle.xml</configLocation>
          <headerLocation>default/myfaces-header.txt</headerLocation>
          <xrefLocation>xref</xrefLocation>
          <indentSize>2</indentSize>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9.1</version>
        <!-- XXX mvn site:site is not working with 2.10.4 -->
        <!--<version>2.10.4</version>-->
        <configuration>
          <linksource>true</linksource>
          <breakiterator>true</breakiterator>
          <quiet>true</quiet>
          <verbose>false</verbose>
          <source>${maven.compile.source}</source>
          <charset>${maven.compile.encoding}</charset>
          <links>
            <link>http://docs.oracle.com/javase/6/docs/api/</link>
            <link>http://docs.oracle.com/javaee/6/api/</link>
            <link>http://www.slf4j.org/apidocs</link>
            <link>http://junit.sourceforge.net/javadoc/</link>
            <link>http://logback.qos.ch/apidocs/</link>
          </links>
          <excludePackageNames>org.apache.myfaces.tobago.internal.*</excludePackageNames>
          <docletArtifact>
            <groupId>com.google.doclava</groupId>
            <artifactId>doclava</artifactId>
            <version>1.0.6</version>
          </docletArtifact>
          <doclet>com.google.doclava.Doclava</doclet>
          <!--
            | bootclasspath required by Sun's JVM
          -->
          <bootclasspath>${sun.boot.class.path}</bootclasspath>
          <additionalparam>
             -quiet
             -federate JDK http://download.oracle.com/javase/6/docs/api/index.html?
             -federationxml JDK http://doclava.googlecode.com/svn/static/api/openjdk-6.xml
             -hdf project.name "${project.name}"
             -d ${project.build.directory}/apidocs
          </additionalparam>
          <useStandardDocletOptions>false</useStandardDocletOptions>
          <!--
            | Apple's JVM sometimes requires more memory
          -->
          <additionalJOption>-J-Xmx1024m</additionalJOption>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.18.1</version>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.9</version>
      </plugin>

      <!--plugin>
        <inherited>false</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.7.1</version>
        <reportSets>
          <reportSet>
            <configuration>
              <statusIds>Open,In Progress,Reopened</statusIds>
            </configuration>
            <reports>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin-->

      <plugin>
        <inherited>false</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changelog-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <basedir>${basedir}</basedir>
        </configuration>
      </plugin>

      <!--
            <plugin>
              <inherited>false</inherited>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-doap-plugin</artifactId>
              <configuration>
                <category>web-framework</category>
                <language>Java</language>
                <shortdesc>Set of user interface components based on JSF.</shortdesc>
                <pmc>http://myfaces.apache.org</pmc>
              </configuration>
            </plugin>
      -->

      <!--plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <configuration>
          <minSeverity>info</minSeverity>
          <excludes>
            <exclude>org/apache/myfaces/tobago/example/**</exclude>
            <exclude>org/apache/myfaces/tobago/ant/**</exclude>
            <exclude>org/apache/myfaces/tobago/apt/**</exclude>
          </excludes>
        </configuration>
      </plugin-->

      <!-- pmd has problems with annotations -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${maven-pmd-plugin.version}</version>
        <configuration>
          <rulesets>
            <!-- FIXME: currently only possible to build in project build -->
            <ruleset>${basedir}/tobago-pmd-config.xml</ruleset>
          </rulesets>
          <linkXRef>true</linkXRef>
          <targetJdk>${maven.compile.source}</targetJdk>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>

      <!-- TODO test dashboard plugin  -->
      <!--plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>dashboard-maven-plugin</artifactId>
        <version>1.0.0-beta-1</version>
      </plugin-->

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
          <threshold>Low</threshold>
          <effort>Max</effort>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <version>2.0</version>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.13</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.2</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>analyze-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>

      <!--plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-linkcheck-plugin</artifactId>
        <version>1.0.1</version>
      </plugin-->

    </plugins>

  </reporting>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>${myfaces23.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>${myfaces23.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>jakarta.faces</artifactId>
        <version>${mojarra23.version}</version>
        <optional>true</optional>
      </dependency>
      <!--      jcl-over-slf4j for myfaces -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.el</groupId>
        <artifactId>jakarta.el-api</artifactId>
        <version>3.0.3</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <!-- only needed to build Tobago and for some examples, but not for runtime -->
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.7</version>
      </dependency>
      <!-- only needed to build Tobago and for some examples, but not for runtime -->
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.10</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.4</version>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.6.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>5.6.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.portals</groupId>
        <artifactId>portlet-api_2.0_spec</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>1.3.5</version>
      </dependency>
      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.1.0.Final</version>
      </dependency>
      <dependency>
        <groupId>jakarta.inject</groupId>
        <artifactId>jakarta.inject-api</artifactId>
        <version>1.0.1</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <version>2.0.2</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <!-- jsoup HTML parser library -->
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.13.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.myfaces.test</groupId>
        <artifactId>myfaces-test23</artifactId>
        <version>${myfaces-test23.version}</version>
        <scope>test</scope>
      </dependency>
      <!--        myfaces "next"-->
<!--
      <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-test</artifactId>
        <version>${myfaces23.version}</version>
        <scope>test</scope>
      </dependency>
-->
      <!-- needed for myfaces 2.0 - 2.3 -->
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
      </dependency>
      <!-- needed for myfaces 2.0 - 2.3 -->
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
    </dependency>
    <dependency>
      <groupId>jakarta.el</groupId>
      <artifactId>jakarta.el-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.portals</groupId>
      <artifactId>portlet-api_2.0_spec</artifactId>
    </dependency>

    <!-- you may want to add this for debugging -->
<!--
    <dependency>
    	<groupId>org.jboss.portletbridge</groupId>
    	<artifactId>portletbridge-api</artifactId>
    	<version>3.2.1.Final</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
    	<groupId>org.jboss.portletbridge</groupId>
    	<artifactId>portletbridge-impl</artifactId>
    	<version>3.2.1.Final</version>
      <scope>provided</scope>
    </dependency>
-->

  </dependencies>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/myfaces-tobago.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/myfaces-tobago.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=myfaces-tobago.git</url>
    <tag>HEAD</tag>
  </scm>

  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${maven-pmd-plugin.version}</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${maven-checkstyle-plugin.version}</version>
        <executions>
          <execution>
            <id>verify-style</id>
            <phase>none</phase>
          </execution>
        </executions>
        <configuration>
          <configLocation>tobago/checkstyle.xml</configLocation>
          <headerLocation>default/myfaces-header.txt</headerLocation>
          <xrefLocation>xref</xrefLocation>
          <indentSize>2</indentSize>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
          <sourceDirectories>
            <sourceDirectory>src/main/java</sourceDirectory>
          </sourceDirectories>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.myfaces.buildtools</groupId>
            <artifactId>checkstyle-rules</artifactId>
            <version>${checkstyle-rules.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M1</version>
        <executions>
          <execution>
            <id>enforce</id>
            <phase>validate</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <!-- 3.3.1 is only required for a release, for a normal build 3.0.4 should be okay -->
                  <version>${required.maven.version}</version>
                </requireMavenVersion>
                <requirePluginVersions>
                  <message>Best Practice is to always define plugin versions!</message>
                  <banLatest>true</banLatest>
                  <banRelease>true</banRelease>
                  <unCheckedPlugins>
                    <unCheckedPlugin>org.apache.maven.plugins:maven-eclipse-plugin</unCheckedPlugin>
                  </unCheckedPlugins>
                </requirePluginVersions>
                <requireJavaVersion>
                  <message>Tobago must be compiled with Java 8 or higher</message>
                  <version>[1.8,)</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!--<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>clean</id>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>-->
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>
                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
              </resourceBundles>
              <properties>
                <addLicense>true</addLicense>
              </properties>
              <excludeScope>provided</excludeScope>
              <excludeArtifactIds>servlet-api,jstl</excludeArtifactIds>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <configuration>
          <signature>
            <groupId>org.codehaus.mojo.signature</groupId>
            <artifactId>java18</artifactId>
            <version>1.0</version>
          </signature>
        </configuration>
      </plugin>
<!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        &lt;!&ndash; XXX better use antrun? &ndash;&gt;
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-config-schema</id>
&lt;!&ndash; XXX why it is not possible to use the site phase here? &ndash;&gt;
            &lt;!&ndash;<phase>site</phase>&ndash;&gt;
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/site</outputDirectory>
              <resources>
                <resource>
                  <directory>tobago-core/src/main/resources/org/apache/myfaces/tobago/config</directory>
                  <includes>
                    <include>**/*.xsd</include>
                    <include>**/*.dtd</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
-->
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven-pmd-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.9.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-plugin.version}</version>
          <configuration>
            <configLocation>tobago/checkstyle.xml</configLocation>
            <headerLocation>default/myfaces-header.txt</headerLocation>
            <xrefLocation>xref</xrefLocation>
            <indentSize>2</indentSize>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.myfaces.buildtools</groupId>
              <artifactId>checkstyle-rules</artifactId>
              <version>${checkstyle-rules.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.5</version>
          <executions>
            <execution>
              <goals>
                <goal>process</goal>
              </goals>
              <configuration>
                <resourceBundles>
                  <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                </resourceBundles>
                <properties>
                  <addLicense>true</addLicense>
                </properties>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
              <manifestEntries>
                <Revision>${scm.revision}</Revision>
                <Build-Time>${maven.build.timestamp}</Build-Time>
              </manifestEntries>
              <manifestSections>
                <manifestSection>
                  <name>${project.artifactId}</name>
                  <manifestEntries>
                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
                    <Implementation-Version>${project.version}</Implementation-Version>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven2-plugin</artifactId>
          <version>1.4.13</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
          <configuration>
            <source>${maven.compile.source}</source>
            <target>${maven.compile.target}</target>
            <encoding>${maven.compile.encoding}</encoding>
            <showWarnings>true</showWarnings>
            <useIncrementalCompilation>false</useIncrementalCompilation><!-- see MCOMPILER-209 -->
            <!--fork>true</fork-->
            <!-- <compilerArgument>-Xlint:all,-serial,-fallthrough</ Argument>-->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
          <configuration>
            <argLine>-Duser.language=en -Duser.region=US</argLine>
            <!--
            <childDelegation>false</childDelegation>
            <forkMode>perTest</forkMode>
            -->
<!--
            <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
            -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y</argLine>
-->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.2.0</version>
          <configuration>
            <source>${maven.compile.source}</source>
            <!-- switched off check in Java 8 -->
            <additionalparam>
                -Xdoclint:accessibility
                -Xdoclint:html
                -Xdoclint:reference
                -Xdoclint:syntax
            </additionalparam>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>2.6.1</version>
          <configuration>
            <failOnError>false</failOnError>
            <minSeverity>info</minSeverity>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-plugin</artifactId>
          <version>1.9.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>com.github.matinh.vdldoc</groupId>
          <artifactId>vdldoc-maven-plugin</artifactId>
          <version>1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.13</version>
          <configuration>
            <excludes>
              <!-- This file is created during a release and needs no licensing text -->
              <exclude>DEPENDENCIES</exclude>

              <!-- js-min-map / min-css -->
              <exclude>**/*.map</exclude>
              <exclude>**/*.min.css</exclude>

              <!-- jsf.js XXX check for official release -->
              <exclude>**/jsf.js</exclude>

              <!-- jettykeystore -->
              <exclude>**/jettykeystore</exclude>

              <!-- prism (tobago-example-demo) -->
              <exclude>**/src/main/webapp/*/prism*.*</exclude>

              <!-- qunit (tobago-example-demo) -->
              <exclude>**/src/main/webapp/script/qunit*.*</exclude>
              <exclude>**/src/main/webapp/style/qunit*.*</exclude>

              <!-- jasmine (tobago-example-demo) -->
              <exclude>**/src/main/webapp/script/jasmine-*/*.*</exclude>
              <exclude>**/src/main/webapp/style/jasmine*.*</exclude>

              <!-- log files -->
              <exclude>**/*.log</exclude>

              <!-- maven -->
              <exclude>**/target/**/*</exclude>

              <!-- idea -->
              <exclude>.idea/**/*</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>**/*.ipr</exclude>
              <exclude>**/*.iws</exclude>

              <!-- json -->
              <exclude>**/*.json</exclude>

              <!-- photo shop -->
              <exclude>**/*.psd</exclude>

              <!-- sample -->
              <exclude>**/x-sample.txt</exclude>

              <!-- readme -->
              <exclude>**/readme.*</exclude>
              <exclude>**/*.md</exclude>

              <!-- tobago-vm index page -->
              <exclude>**/tobago-vm/docker/apache-proxy/bootstrap*.css</exclude>

              <!-- local npm for IDE -->
              <exclude>npm/node/**/*</exclude>
              <exclude>npm/node_modules/**/*</exclude>

            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.1.1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
            <preparationGoals>clean install</preparationGoals>
            <remoteTagging>true</remoteTagging>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <waitBeforeTagging>20</waitBeforeTagging>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>deploy</goals>
            <arguments>-Papache-release,generate-assembly ${arguments}</arguments>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.6</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <version>1.18</version>
        </plugin>
        <!--
        usage: $ mvn versions:display-dependency-updates
        usage: $ mvn versions:display-plugin-updates
        -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>5.2.4</version>
          <configuration>
            <failBuildOnCVSS>0</failBuildOnCVSS>
            <suppressionFile>tobago/dependency-check-suppression.xml</suppressionFile>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.myfaces.buildtools</groupId>
              <artifactId>checkstyle-rules</artifactId>
              <version>${checkstyle-rules.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>1.4</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <modules>
    <module>tobago-tool</module>
    <module>tobago-core</module>
    <module>tobago-theme</module>
    <module>tobago-example</module>
    <module>tobago-assembly</module>
  </modules>

  <distributionManagement>
    <repository>
      <id>apache.releases.https</id>
      <name>Apache Release Distribution Repository</name>
      <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
      <uniqueVersion>false</uniqueVersion>
      <id>apache.snapshots.https</id>
      <name>${distMgmtSnapshotsName}</name>
      <url>${distMgmtSnapshotsUrl}</url>
    </snapshotRepository>
    <site>
      <id>apache-site</id>
      <url>scpexe://minotaur.apache.org/www/myfaces.apache.org/tobago/</url>
    </site>
  </distributionManagement>

  <!-- Use this to include the staging repository for testing a new unreleased myfaces core.
  Change the number 1100 the the current for that. -->
<!--
  <repositories>
    <repository>
      <id>myfaces-staging</id>
      <url>https://repository.apache.org/content/repositories/orgapachemyfaces-1100/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>myfaces-staging</id>
      <url>https://repository.apache.org/content/repositories/orgapachemyfaces-1100/</url>
    </pluginRepository>
  </pluginRepositories>
-->

  <profiles>
    <profile>
      <id>apache-release</id>
      <!--
      NOTE: To use you need to enable this profile and pass in the passphrase:
           mvn -Papache-release -Dpassphrase=thephrase

           with the release plugin add following profile to your settings.xml
           <profile>
             <id>apache-release</id>
             <properties>
               <gpg.passphrase>thephrase</gpg.passphrase>
             </properties>
           </profile>
       -->
      <properties>
        <required.maven.version>3.3.1</required.maven.version>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>create</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <doCheck>false</doCheck>
              <doUpdate>false</doUpdate>
              <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
              <buildNumberPropertyName>scm.revision</buildNumberPropertyName>
              <revisionOnScmFailure>unknown</revisionOnScmFailure>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>animal-sniffer-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>test</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>aggregate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>frontend</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
              <filesets>
                <fileset>
                  <directory>npm</directory>
                  <includes>
                    <include>dist/**</include>
                    <include>node/**</include>
                    <include>node_modules/**</include>
                  </includes>
                  <followSymlinks>false</followSymlinks>
                </fileset>
              </filesets>
            </configuration>
          </plugin>
          <plugin>
            <groupId>com.github.eirslett</groupId>
            <artifactId>frontend-maven-plugin</artifactId>
            <version>1.10.4</version>

            <!-- optional -->
            <configuration>
              <nodeVersion>v14.15.1</nodeVersion> <!-- contains npm version 6.14.8 -->

              <!-- optional: Where to download Node.js binary from. Defaults to http://nodejs.org/dist/ -->
              <!--<nodeDownloadRoot>https://nodejs.org/dist/</nodeDownloadRoot>-->

              <!-- optional: Where to download NPM binary from. Defaults to http://registry.npmjs.org/npm/-/ -->
              <!--<npmDownloadRoot>https://registry.npmjs.org/npm/-/</npmDownloadRoot>-->

              <!-- optional: Registry override, passed as the registry option during npm install if set. -->
              <!--<npmRegistryURL>https://registry.npmjs.org/</npmRegistryURL>-->

              <!-- optional: where to install node and npm. Defaults to the working directory -->
              <installDirectory>npm</installDirectory>
              <workingDirectory>npm</workingDirectory>
              <skip>${frontend.skip}</skip>
            </configuration>

            <executions>
              <execution>
                <id>install node and npm</id>
                <goals>
                  <goal>install-node-and-npm</goal>
                </goals>
                <phase>generate-resources</phase>
              </execution>

              <execution>
                <id>npm install (load dependencies, etc.)</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>generate-resources</phase>
                <configuration>
                  <arguments>install</arguments>
                </configuration>
              </execution>

              <execution>
                <id>npm run build</id>
                <goals>
                  <goal>npm</goal>
                </goals>
                <phase>generate-resources</phase>
                <configuration>
                  <arguments>run build</arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>generate-assembly</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>create</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <doCheck>false</doCheck>
              <doUpdate>false</doUpdate>
              <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
              <buildNumberPropertyName>scm.revision</buildNumberPropertyName>
              <revisionOnScmFailure>unknown</revisionOnScmFailure>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadoc</id>
                <goals><goal>jar</goal></goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-source</id>
                <goals><goal>jar</goal></goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.apache.apache.resources</groupId>
                <artifactId>apache-source-release-assembly-descriptor</artifactId>
                <version>1.0.6</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                  <descriptorRefs>
                    <descriptorRef>${sourceReleaseAssemblyDescriptor}</descriptorRef>
                  </descriptorRefs>
                  <tarLongFileMode>gnu</tarLongFileMode>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>jsf-2.3</id>
      <activation>
        <property>
          <name>!jsf</name>
<!--          <name>jsf</name>-->
<!--          <value>myfaces-2.3</value>-->
        </property>
      </activation>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-api</artifactId>
            <version>${myfaces23.version}</version>
            <optional>true</optional>
          </dependency>
          <dependency>
            <groupId>org.apache.myfaces.core</groupId>
            <artifactId>myfaces-impl</artifactId>
            <version>${myfaces23.version}</version>
            <optional>true</optional>
          </dependency>
        </dependencies>
      </dependencyManagement>
    </profile>
  </profiles>

  <contributors>
    <contributor>
      <name>Helmut Swaczinna</name>
      <email>swaczinna@wlp-systems.de</email>
      <organization>WLP Systems GmbH</organization>
      <organizationUrl>http://www.wlp-systems.de/</organizationUrl>
      <timezone>+1</timezone>
    </contributor>
  </contributors>

</project>
