<?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.turbine</groupId>
    <artifactId>turbine-parent</artifactId>
    <version>12</version>
    <relativePath />
  </parent>
  <artifactId>turbine</artifactId>
  <name>Apache Turbine</name>
  <version>6.0</version>
  <description>Turbine is a servlet based framework that allows experienced Java
    developers to quickly build secure web applications. Parts of Turbine
    can also be used independently of the web portion of Turbine as
    well. In other words, we strive to make portions of Turbine easily
    available for use in other applications.</description>

  <url>http://turbine.apache.org/${turbine.site.path}</url>

  <inceptionYear>2000</inceptionYear>

  <developers>
    <developer>
      <id>brekke</id>
      <name>Jeff Brekke</name>
      <email>ekkerbj@yahoo.com</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>hoffmann</id>
      <name>Jürgen Hoffmann</name>
      <email>hoffmann@apache.org</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>daveb</id>
      <name>Dave Bryson</name>
      <email>mbryson@mont.mindspring.com</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>burton</id>
      <name>Kevin A. Burton</name>
      <email>burton@relativity.yi.org</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>dobbs</id>
      <name>Eric Dobbs</name>
      <email>dobbs@apache.org</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>seade</id>
      <name>Scott Eade</name>
      <email>seade@backstagetech.com.au</email>
      <url />
      <organization>Backstage Technologies Pty. Ltd.</organization>
      <timezone />
    </developer>
    <developer>
      <id>fedor</id>
      <name>Fedor Karpelevitch</name>
      <email>fedor@karpelevitch.net</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>legassick</id>
      <name>Sean Legassick</name>
      <email>sean@informage.net</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>jmcnally</id>
      <name>John McNally</name>
      <email>jmcnally@collab.net</email>
      <url />
      <organization>CollabNet, Inc.</organization>
      <timezone />
    </developer>
    <developer>
      <id>quintonm</id>
      <name>Quinton McCombs</name>
      <email>quintonm@bellsouth.net</email>
      <url />
      <organization>NEqualsOne</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone />
    </developer>
    <developer>
      <id>painter</id>
      <name>Jeffery Painter</name>
      <email>jeff@jivecast.com</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>mpoeschl</id>
      <name>Martin Poeschl</name>
      <email>mpoeschl@marmot.at</email>
      <url />
      <organization>tucana.at</organization>
      <timezone />
    </developer>
    <developer>
      <id>epugh</id>
      <name>Eric Pugh</name>
      <email>epugh@upstate.com</email>
      <url />
      <organization />
      <timezone />
    </developer>
    <developer>
      <id>dlr</id>
      <name>Daniel Rall</name>
      <email>dlr@finemaltcoding.com</email>
      <url />
      <organization>CollabNet, Inc.</organization>
      <timezone />
    </developer>
    <developer>
      <id>henning</id>
      <name>Henning P. Schmiedehausen</name>
      <email>hps@intermeta.de</email>
      <url />
      <organization>INTERMETA - Gesellschaft fuer Mehrwertdienste mbH</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>1</timezone>
    </developer>
    <developer>
      <id>kschrader</id>
      <name>Kurt Schrader</name>
      <email>kschrader@karmalab.org</email>
      <url />
      <organization>University of Michigan</organization>
      <timezone />
    </developer>
    <developer>
      <id>jon</id>
      <name>Jon Scott Stevens</name>
      <email>jon@latchkey.com</email>
      <url />
      <organization>CollabNet, Inc.</organization>
      <timezone />
    </developer>
    <developer>
      <name>Thomas Vandahl</name>
      <id>tv</id>
      <email>tv@apache.org</email>
      <organization />
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>1</timezone>
    </developer>
    <developer>
      <name>Ludwig Magnusson</name>
      <id>ludwig</id>
      <email>ludwig@apache.org</email>
      <organization />
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>1</timezone>
    </developer>
    <developer>
      <name>Georg Kallidis</name>
      <id>gk</id>
      <email>gk@apache.org</email>
      <organization />
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>1</timezone>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Gary Bartlett</name>
      <email>gary_a_bartlett@yahoo.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Youngho Cho</name>
      <email>youngho@nannet.co.kr</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Frank Conradie</name>
      <email>frank@opticode.co.za</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Gonzalo A. Diethelm</name>
      <email>gonzalo.diethelm@iname.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>David Duddleston</name>
      <email>david@i2a.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Christopher Elkins</name>
      <email>celkins@scardini.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>M. Sean Gilligan</name>
      <email>Sean_Gilligan@catalla.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Jian He</name>
      <email>hjnet@163.net</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Humberto Hernandez</name>
      <email>hhernandez@itweb.com.mx</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Nissim Karpenstein</name>
      <email>nissim@nksystems.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Rafal Krzewski</name>
      <email>krzewski@e-point.pl</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Chris Kimpton</name>
      <email>kimptoc.mail@bigfoot.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Brian Lawler</name>
      <email>brian@tribenetwork.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Josh Lucas</name>
      <email>josh@stonecottage.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Carl Ludwig</name>
      <email>carl@destinymusic.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Jonas Mauras</name>
      <email>jm@mediaphil.de</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Brett McLaughlin</name>
      <email>bmclaugh@algx.net</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Leon Messerschmidt</name>
      <email>leon@opticode.co.za</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Chris Meyer</name>
      <email>cmeyer@gatan.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Steven Nagy</name>
      <email>snagy@web-publicity.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Kasper Nielsen</name>
      <email>kav@kav.dk</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Paul O'Leary</name>
      <email>paul@evolventtech.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Giacomo Pati</name>
      <email>Giacomo.Pati@pwr.ch</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Mark Porter</name>
      <email>mark.porter@canlink.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Jeff Prickett</name>
      <email>jeffprickett@mindspring.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Ilkka Priha</name>
      <email>ilkka.priha@simsoft.fi</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Cameron Riley</name>
      <email>criley@ekmail.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Greg Ritter</name>
      <email>greg@shwoop.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Ingo Schuster</name>
      <email>ingo@raleigh.ibm.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Costas Stergiou</name>
      <email>csterg@aias.gr</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>George Stewart</name>
      <email>georgestewart@yahoo.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Ralf Stranzenbach</name>
      <email>ralf@reswi.ruhr.de</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Hakan Tandogan</name>
      <email>hakan42@gmx.de</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Scott C. Tavares</name>
      <email>stavares@home.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>John Thorhauer</name>
      <email>john@zenplex.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Magnús Þór Torfason</name>
      <email>magnus@handpoint.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Scott Weaver</name>
      <email>sweaver@rippe.com</email>
      <url />
      <organization />
      <timezone />
    </contributor>
    <contributor>
      <name>Siegfried Goeschl</name>
      <email>sgoeschl@apache.org</email>
      <url />
      <organization />
      <timezone />
    </contributor>
  </contributors>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/turbine-core.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/turbine-core.git</developerConnection>    
    <url>https://github.com/apache/${turbine.site.path}/tree/${project.scm.tag}</url>
    <tag>turbine-6.0-candidate</tag>
  </scm>

  
  <build>
    <sourceDirectory>src/java</sourceDirectory>
    <testSourceDirectory>src/test</testSourceDirectory>

    <resources>
      <resource>
        <directory>src/macros</directory>
        <targetPath>macros</targetPath>
        <includes>
          <include>TurbineMacros.vm</include>
        </includes>
      </resource>
      <resource>
          <directory>${basedir}/src/main/resources</directory>
          <!-- remove filtering to allow for non utf-8, if required; e.g. the case of i10n and non ascii chars - otherwise use html entities or \u notation. java.util.Properties files are in latin-1.  -->
          <filtering>true</filtering>
          <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
          </includes>
      </resource>
    </resources>

    <!-- cft. loading path https://logging.apache.org/log4j/2.x/manual/configuration.html -->
    <testResources>
      <testResource>
        <directory>conf/test</directory>
        <includes>
          <include>log4j2-test.xml</include>
        </includes>
      </testResource>
    </testResources>
    
     <pluginManagement>
      <plugins>
       <plugin>
        <groupId>org.apache.torque</groupId>
        <artifactId>torque-maven-plugin</artifactId>
        <version>${torque.version}</version>
        </plugin>
        <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <version>0.15</version>
            <configuration>
                <excludes>
                  <exclude>xdocs/images/*</exclude>
                  <exclude>src/site/**</exclude>
                  <exclude>proposals/**</exclude>
                  <exclude>extensions/**</exclude>
                  <exclude>conf/**</exclude>
                  <exclude>README.md</exclude>
                </excludes>
              </configuration>
          </plugin>
      </plugins>
    </pluginManagement>

    <plugins>

     <plugin>
       <!-- hint: mvn verify or skip with -Ddependency.check.skip=true  -->
        <groupId>org.owasp</groupId>
        <artifactId>dependency-check-maven</artifactId>
        <configuration>
           <!-- suppress false positive -->
           <suppressionFiles>
            <suppressionFile>${project.basedir}/suppression-owasp-fp.xml</suppressionFile>
            </suppressionFiles>
           <!-- no .NET code inside turbine -->
           <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
           <skip>${dependency.check.skip}</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
                <execution>
                   <id>default-test</id>
                    <configuration>
                      <!--default setting is forkCount=1/reuseForks=true -->
                      <reuseForks>false</reuseForks>
                      <forkCount>1</forkCount>
                      <excludedGroups>performance,docker,yaml</excludedGroups>
                    </configuration>
             </execution>
         </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.torque</groupId>
        <artifactId>torque-maven-plugin</artifactId>
        <configuration>
          <runOnlyOnSourceChange>true</runOnlyOnSourceChange>
        </configuration>
        <executions>
          <execution>
            <id>generate-om-scheduler-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.om</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <sourceIncludes>
                <include>scheduler-schema.xml</include>
              </sourceIncludes>
              <loglevel>error</loglevel>
              <options>
                <torque.database>mysql</torque.database>
                <torque.om.addGetByNameMethods>false</torque.om.addGetByNameMethods>
                <torque.om.save.saveException>TorqueException</torque.om.save.saveException>
                <torque.om.package>org.apache.turbine.services.schedule</torque.om.package>
                <torque.om.useIsForBooleanGetters>true</torque.om.useIsForBooleanGetters>
                <torque.runOnlyOnSourceChange>true</torque.runOnlyOnSourceChange>
              </options>
              <outputDirMap>
                <modifiable>${project.build.directory}/generated-sources</modifiable>
              </outputDirMap>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-mysql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>mysql</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-hsqldb</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>hsqldb</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-derby</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>derby</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-oracle</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>oracle</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-postgresql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>postgresql</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-sql-mssql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.sql</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>mssql</torque.database>
              </options>
            </configuration>
          </execution>

          <execution>
            <id>torque-idtable-mysql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/mysql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>mysql</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-idtable-hsqldb</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/hsqldb</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>hsqldb</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-idtable-derby</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/derby</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>derby</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-idtable-oracle</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/oracle</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>oracle</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-idtable-postgresql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/postgresql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>postgresql</torque.database>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>torque-idtable-mssql</id>
            <phase>package</phase>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <packaging>classpath</packaging>
              <configPackage>org.apache.torque.templates.idtable</configPackage>
              <sourceDir>src/torque/schema</sourceDir>
              <defaultOutputDir>${project.build.directory}/generated-sql/torque/mssql</defaultOutputDir>
              <defaultOutputDirUsage>none</defaultOutputDirUsage>
              <loglevel>error</loglevel>
              <options>
                <torque.database>mssql</torque.database>
              </options>
            </configuration>
          </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.apache.torque</groupId>
                <artifactId>torque-templates</artifactId>
                <version>${torque.version}</version>
            </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <configuration>
          <linkJavadoc>true</linkJavadoc>
        </configuration>
        <!-- no usable for aggregate, but we are aggregate = false implicitely  -->
        <reportSets>
          <reportSet>
            <reports>
              <report>jxr-no-fork</report>
              <report>test-jxr-no-fork</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <!-- select non-aggregate reports -->
              <report>report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <!-- check the Apache Licence in all source files -->
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.15</version>
      </plugin>
    </plugins>
  </reporting>

  <dependencies>
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	    <version>3.1.0</version>
	    <scope>provided</scope>
	</dependency>
    <dependency>
      <groupId>org.apache.avalon.framework</groupId>
      <artifactId>avalon-framework-api</artifactId>
      <version>4.3.1</version>
    </dependency>
    <dependency>
    	<groupId>commons-codec</groupId>
    	<artifactId>commons-codec</artifactId>
      <version>1.15</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-configuration2</artifactId>
      <version>2.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-email</artifactId>
      <version>1.6.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.14.0</version>
    </dependency>
    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-text</artifactId>
       <version>1.11.0</version>
    </dependency>
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.9.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-yaml</artifactId>
      <version>${jackson2.version}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>nl.basjes.parse.useragent</groupId>
      <artifactId>yauaa</artifactId>
      <!-- java 11 required for v6.1+ -->
      <version>7.24.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-cache</artifactId>
      <version>2.0.0</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-factory</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-pool</artifactId>
      <version>1.0.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-localization</artifactId>
      <version>1.0.7</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-parser</artifactId>
      <version>${fulcrum.parser}</version>
    </dependency>
    <!-- overrid dep from torque-runtime -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-intake</artifactId>
      <version>${fulcrum.intake}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-yaafi</artifactId>
      <version>${fulcrum.yaafi}</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-crypto</artifactId>
      <version>1.0.8</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-xslt</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-mimetype</artifactId>
      <version>1.0.6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.torque</groupId>
      <artifactId>torque-runtime</artifactId>
      <version>${torque.version}</version>
      <exclusions>
        <exclusion>
            <groupId>avalon-framework</groupId>
            <artifactId>avalon-framework-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>avalon-logkit</groupId>
            <artifactId>avalon-logkit</artifactId>
        </exclusion>
         <exclusion><!-- already provided -->
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- use default dbcp2 from torque-runtime -->
    <dependency>
         <groupId>commons-configuration</groupId>
         <artifactId>commons-configuration</artifactId>
         <version>1.10</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-security-api</artifactId>
      <version>${fulcrum.security}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-security-memory</artifactId>
      <version>${fulcrum.security}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-security-api</artifactId>
      <version>${fulcrum.security}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <!--  owasp warning resolved in v1.1.2, which references quartz-2.3.0.jar, fixing CVE-2019-13990, https://github.com/quartz-scheduler/quartz/issues/467 -->
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-quartz</artifactId>
      <version>1.1.2</version>
    </dependency>
    <!-- suppress owasp CVE-2018-11771, CVE-2018-1324 .. as jython-standalone is optional.
     https://github.com/jython/jython/issues/137, https://github.com/jython/jython/issues/138 -->
    <dependency>
      <groupId>org.python</groupId>
      <artifactId>jython-standalone</artifactId>
      <version>2.7.3</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jabsorb</groupId>
      <artifactId>jabsorb</artifactId>
      <version>1.3.2</version>
      <optional>true</optional>
      <!-- requires maven version >= 3,  
         exclude old versions: org.slf4j:slf4j-jdk14,slf4j-api,(renamed)cl104-over-slf4j,org.mortbay.jetty:jsp-2.1, commons-httpclient:commons-httpclient,
         mvn eclipse:eclipse still no wildcard exclude (mvn version 3.3.9)
      -->
      <exclusions>
       <exclusion>
          <artifactId>jsp-2.1</artifactId>
          <groupId>org.mortbay.jetty</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jcl104-over-slf4j</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
          <artifactId>slf4j-jdk14</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
          <artifactId>*</artifactId>
          <groupId>*</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-jcl</artifactId>
      <version>${turbine.log4j2.version}</version>
    </dependency>
    <!-- yauaa + java testcontainers uses slf4j-api, need for log4j-slf4j-impl mapping-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${turbine.log4j2.version}</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.11</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${turbine.log4j2.version}</version>
    </dependency>
    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <version>${turbine.log4j2.version}</version>
    </dependency>
    <!-- support of log4j-web (autodetect of log4j2 in WEB-INF folder) 
         may allow to remove explicit log4j2 loading/configuration except for tests -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
      <version>${turbine.log4j2.version}</version>
    </dependency>
    <!-- optional log4j1.2 bridge instead of log4j -->
    <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
       <version>${turbine.log4j2.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
      <version>2.3</version>
    </dependency>
    <!-- with the url mapper we need xml support -->
 	<dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
         <groupId>org.glassfish.jaxb</groupId>
          <artifactId>jaxb-runtime</artifactId>
           <version>4.0.4</version>
     </dependency>
    <!-- testcontainer minimal shared resources -->
    <dependency>
      <groupId>org.apache.fulcrum</groupId>
      <artifactId>fulcrum-testcontainer</artifactId>
      <version>2.0.0</version>
      <scope>test</scope>
    </dependency> 
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>testcontainers</artifactId>
      <version>${docker.testcontainers.version}</version>
      <scope>test</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>${docker.testcontainers.version}</version>
      <scope>test</scope>
      <optional>true</optional>
    </dependency>
     <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
      </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <executions>
              <execution>
                <id>turbine-release-site</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>site</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
                <reportPlugins>
                  <reportPlugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.15</version>
                  </reportPlugin>
                </reportPlugins>
            </configuration>
          </plugin>
          <plugin>
            <!-- build the source and binary distribution packages -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>turbine-default-assembly</id>
                <configuration>
                  <skipAssembly>true</skipAssembly>
                </configuration>
              </execution>
              <execution>
                <id>turbine-core-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                  <descriptors>
                    <descriptor>./src/assembly/binaries.xml</descriptor>
                    <descriptor>./src/assembly/source.xml</descriptor>
                  </descriptors>
                  <tarLongFileMode>gnu</tarLongFileMode>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>docker-testcontainer</id>
      <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
      <build>
         <testResources>
          <testResource>
            <directory>conf/docker-resources</directory>
            <includes>
              <include>db/mysql/initdb.d/data.sql</include>
              <include>*.properties</include>
            </includes>
          </testResource>
        </testResources>
        <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId> 
              <executions>
                <execution>
                   <id>default-test</id>
                  <configuration>
                    <groups>docker</groups>
                    <excludedGroups>performance,yaml</excludedGroups>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${turbine.surefire.version}</version>
            </plugin>
          </plugins>
      </build>
      <dependencies>
        <!-- docker testcontainer requires at least torque v5.0, start it like
        inside IDE (add dependencies):
        mvn eclipse:eclipse -Pdocker-testcontainer

        from console:
        mvn test -Pdocker-testcontainer

        -->
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <version>${docker.testcontainers.version}</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${docker.testcontainers.version}</version>
            <scope>test</scope>
          </dependency>
          <dependency>
              <groupId>org.testcontainers</groupId>
              <artifactId>mysql</artifactId>
              <version>${docker.testcontainers.version}</version>
              <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.fulcrum</groupId>
            <artifactId>fulcrum-security-torque</artifactId>
            <version>${fulcrum.security}</version>
            <exclusions>
              <exclusion><!-- will we mapped in jcl-over-slf4j -->
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.3.0</version>
          </dependency>
      </dependencies>
    </profile>
    <profile>
        <id>yaml</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <!-- mvn test -Dtest=TurbineURLMapperYAMLServiceTest -Pyaml -->
      <build>
      <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <executions>
                <execution>
                   <id>default-test</id>
                  <configuration><!-- to override excludedGroups set something else (bug?)-->
                    <groups>yaml</groups>
                     <excludedGroups>docker,performance</excludedGroups>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
      </build>
      <dependencies>
           <dependency>
               <groupId>com.fasterxml.jackson.dataformat</groupId>
               <artifactId>jackson-dataformat-yaml</artifactId>
               <version>${jackson2.version}</version>
           </dependency>
       </dependencies>
    </profile>
    <profile>
      <!-- allow reproducible / verifibable builds: build first and check with 
          mvn clean install -Prv-builds
          mvn clean verify artifact:compare -Prv-builds  
          diffoscope ..
       -->
      <id>rv-builds</id>
      <build>
        <plugins>
          <plugin>
              <groupId>org.apache.torque</groupId>
              <artifactId>torque-maven-plugin</artifactId>
              <executions>
                <execution>
                  <id>generate-om-scheduler-sources</id>
                  <configuration>
                    <options>
                       <!-- to allow for reproducible builds -->
                      <torque.om.addTimeStamp>false</torque.om.addTimeStamp>
                    </options>
                  </configuration>
                </execution>
               </executions>
          </plugin>
            <!--  1) to be moved to parent to get buildNumber in parent implemenation.build property 
                    2) requires no local midifications! 
             -->
            <!--plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                  <execution>
                    <phase>validate</phase>
                    <goals>
                      <goal>create</goal>
                    </goals>
                  </execution>
                </executions>
                <configuration>
                  <doCheck>true</doCheck>
                  <doUpdate>true</doUpdate>
                </configuration>
            </plugin-->
        </plugins>
      </build>
      <properties>
          <!-- allow for reproducible builds: should not be inherited but defined in POM for  -->
          <project.build.outputTimestamp>10</project.build.outputTimestamp>
          <implementation.build>${scmBranch}@r${buildNumber};noTimeStamp</implementation.build>
          <scmBranch>trunk</scmBranch>
      </properties>
    </profile>
  </profiles>

  <properties>
    <!-- maven.compiler setting in turbine parent -->
    <turbine.site.path>turbine-core</turbine.site.path>
    <fulcrum.intake>3.0.0</fulcrum.intake>
    <fulcrum.parser>3.0.0</fulcrum.parser>
    <fulcrum.security>3.0.0</fulcrum.security>
    <fulcrum.yaafi>2.0.0</fulcrum.yaafi>
    <torque.version>5.1</torque.version>
    <jackson2.version>2.16.1</jackson2.version>
    <doclint>none</doclint>
    <docker.testcontainers.version>1.18.3</docker.testcontainers.version>
    <jacoco.skip>true</jacoco.skip>
    <argLine />
  </properties>
  
  
    <!-- to allow snapshot parents:  https://issues.apache.org/jira/browse/INFRA-15815  jenkins settings.xml is unchanged from beginning -->
    <repositories>
      <repository>
        <id>apache.snapshots</id>
        <name>Apache Snapshot Repository</name>
        <url>https://repository.apache.org/snapshots</url>
        <releases>
          <enabled>false</enabled>
        </releases>
      </repository>
    </repositories>
</project>

