<?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">

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>35</version>
  </parent>

  <groupId>org.apache.jspwiki</groupId>
  <artifactId>jspwiki-builder</artifactId>
  <modelVersion>4.0.0</modelVersion>
  <name>Apache JSPWiki</name>
  <version>2.12.4</version>
  <packaging>pom</packaging>
  <description>Apache JSPWiki is a leading open source WikiWiki engine, feature-rich
    and built around standard JEE components (Java, servlets, JSP).</description>
  <inceptionYear>2001</inceptionYear>
  <url>https://jspwiki.apache.org/</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.build.outputTimestamp>2026-04-02T23:32:21Z</project.build.outputTimestamp> <!-- will be changed by release plugin during releases -->
    <jdk.version>11</jdk.version>
    <jdk.javadoc.doclet.version>2.2.2</jdk.javadoc.doclet.version>
    <maven.version>3.5</maven.version>

    <akismet-java.version>1.02</akismet-java.version>
    <awaitility.version>4.3.0</awaitility.version>
    <aws-java-sdk-kendra.version>1.12.565</aws-java-sdk-kendra.version>
    <commons-collections.version>4.5.0</commons-collections.version>
    <commons-fileupload.version>1.6.0</commons-fileupload.version>
    <commons-httpclient.version>3.1</commons-httpclient.version>
    <commons-io.version>2.20.0</commons-io.version>
    <commons-lang.version>3.18.0</commons-lang.version>
    <commons-text.version>1.13.1</commons-text.version>
    <ehcache.version>2.10.9.2</ehcache.version>
    <flexmark.version>0.64.8</flexmark.version>
    <freshcookies-security.version>0.60</freshcookies-security.version>
    <gson.version>2.13.1</gson.version>
    <hsqldb.version>2.7.4</hsqldb.version>
    <jamm.version>0.4.0</jamm.version>
    <jaxen.version>2.0.0</jaxen.version>
    <javax-jstl.version>1.2</javax-jstl.version>
    <javax-mail.version>1.6.2</javax-mail.version>
    <javax-jsp-api.version>2.3.3</javax-jsp-api.version>
    <javax-servlet-api.version>3.1.0</javax-servlet-api.version>
    <jdom2.version>2.0.6</jdom2.version>
    <jetty.version>9.4.54.v20240208</jetty.version>
    <jrcs-diff.version>0.4.2</jrcs-diff.version>
    <junit.version>5.13.4</junit.version>
    <log4j2.version>2.25.1</log4j2.version>
    <lucene.version>9.12.2</lucene.version>
    <mockito.version>5.18.0</mockito.version>
    <nekohtml.version>2.1.2</nekohtml.version>
    <oro.version>2.0.8</oro.version>
    <sandler.version>0.5</sandler.version>
    <selenide.version>6.19.0</selenide.version>
    <slf4j.version>1.7.36</slf4j.version>
    <stripes.version>1.7.0-async-beta</stripes.version>
    <tika.version>3.2.1</tika.version>
    <tomcat.version>9.0.107</tomcat.version>
    <wro4j.version>1.8.0</wro4j.version>
    <xmlrpc.version>2.0.1</xmlrpc.version>
    <xstream.version>1.4.21</xstream.version>

    <plugin.antrun.version>3.1.0</plugin.antrun.version>
    <plugin.assembly.version>3.7.1</plugin.assembly.version>
    <plugin.clean.version>3.5.0</plugin.clean.version>
    <plugin.compiler.version>3.14.0</plugin.compiler.version>
    <plugin.dependency.version>3.8.1</plugin.dependency.version>
    <plugin.enforcer.version>3.6.1</plugin.enforcer.version>
    <plugin.install.version>3.1.4</plugin.install.version>
    <plugin.jar.version>3.4.2</plugin.jar.version>
    <plugin.javadoc.version>3.11.1</plugin.javadoc.version>
    <plugin.jxr.version>3.6.0</plugin.jxr.version>
    <plugin.project-info-reports.version>3.9.0</plugin.project-info-reports.version>
    <plugin.release.version>3.1.1</plugin.release.version>
    <plugin.remote-resources.version>3.3.0</plugin.remote-resources.version>
    <plugin.resources.version>3.3.1</plugin.resources.version>
    <plugin.source.version>3.3.1</plugin.source.version>
    <plugin.surefire.version>3.5.3</plugin.surefire.version>
    <plugin.surefire.junit5-tree-reporter.version>1.4.0</plugin.surefire.junit5-tree-reporter.version>
    <plugin.war.version>3.4.0</plugin.war.version>
    <plugin.inmemdb.version>1.4.3</plugin.inmemdb.version>
    <plugin.jspc.version>3.2.2</plugin.jspc.version>
    <plugin.build-helper.version>3.6.1</plugin.build-helper.version>
    <plugin.checksum.version>1.11</plugin.checksum.version>
    <plugin.jslint.version>1.0.1</plugin.jslint.version>
    <plugin.cargo.version>1.10.20</plugin.cargo.version>
    <plugin.clirr.version>2.8</plugin.clirr.version>
    <plugin.cobertura.version>2.7</plugin.cobertura.version>
    <plugin.cyclonedx.version>2.9.1</plugin.cyclonedx.version>
    <plugin.sonar.version>5.1.0.4751</plugin.sonar.version>
    <plugin.sonar-report.version>0.1</plugin.sonar-report.version>
    <plugin.eclipse-lifecycle-mapping.version>1.0.0</plugin.eclipse-lifecycle-mapping.version>
    <maven.compiler.source>${jdk.version}</maven.compiler.source> <!-- override values from parent pom -->
    <maven.compiler.target>${jdk.version}</maven.compiler.target>
    <minimize>true</minimize> <!-- wro4j compression -->
  </properties>

  <scm>
    <connection>scm:git:https://github.com/apache/jspwiki.git</connection>
    <developerConnection>scm:git:https://github.com/apache/jspwiki.git</developerConnection>
    <url>https://github.com/apache/jspwiki</url>
    <tag>2.12.4-RC2</tag>
  </scm>

  <modules>
    <module>jspwiki-wikipages</module>
    <module>jspwiki-util</module>
    <module>jspwiki-event</module>
    <module>jspwiki-api</module>
    <module>jspwiki-bootstrap</module>
    <module>jspwiki-cache</module>
    <module>jspwiki-http</module>
    <module>jspwiki-wysiwyg</module>
    <module>jspwiki-main</module>
    <module>jspwiki-markdown</module>
    <module>jspwiki-tika-searchprovider</module>
    <module>jspwiki-kendra-searchprovider</module>
    <module>jspwiki-210-test-adaptees</module>
    <module>jspwiki-210-adapters</module>
    <module>jspwiki-war</module>
    <module>jspwiki-portable</module>
    <module>jspwiki-it-tests</module><!-- IT tests are launched only if -Pintegration-tests is given -->
    <module>jspwiki-bom</module>
  </modules>

  <dependencyManagement> <!-- defines what configuration is going to be used if, and only if, the dependency is used -->
    <dependencies>       <!-- ordered alphabetically by scope:groupId:artifactId                                     -->
      <!-- compile dependencies -->
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kendra</artifactId>
        <version>${aws-java-sdk-kendra.version}</version>
      </dependency>
      
      <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>${selenide.version}</version>
      </dependency>

      <dependency><!-- as of 1.6.2 not included by javax.mail-api, see https://javaee.github.io/javamail/docs/COMPAT.txt -->
        <groupId>com.sun.mail</groupId>
        <artifactId>logging-mailhandler</artifactId>
        <version>${javax-mail.version}</version>
      </dependency>

      <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>${javax-mail.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-ext-attributes</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-ext-definition</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-ext-footnotes</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-ext-tables</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-ext-toc</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>${commons-fileupload.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>${commons-httpclient.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons-collections.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j2.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>${log4j2.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j2.version}</version>
      </dependency>

      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${javax-jstl.version}</version>
      </dependency>

      <dependency>
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>${jaxen.version}</version>
      </dependency>

      <dependency>
        <groupId>net.sourceforge</groupId>
        <artifactId>akismet-java</artifactId>
        <version>${akismet-java.version}</version>
      </dependency>

      <dependency>
        <groupId>net.sourceforge</groupId>
        <artifactId>sandler</artifactId>
        <version>${sandler.version}</version>
      </dependency>

      <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache</artifactId>
        <version>${ehcache.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analysis-common</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-backward-codecs</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-highlighter</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>${tika.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers-standard-package</artifactId>
        <version>${tika.version}</version>
      </dependency>

      <dependency>
        <groupId>org.codelibs</groupId>
        <artifactId>nekohtml</artifactId>
        <version>${nekohtml.version}</version>
      </dependency>

      <dependency>
        <groupId>org.freshcookies</groupId>
        <artifactId>freshcookies-security</artifactId>
        <version>${freshcookies-security.version}</version>
      </dependency>

      <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom2</artifactId>
        <version>${jdom2.version}</version>
      </dependency>

      <dependency>
        <groupId>org.jvnet.hudson</groupId>
        <artifactId>org.suigeneris.jrcs.diff</artifactId>
        <version>${jrcs-diff.version}</version>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>${mockito.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>oro</groupId>
        <artifactId>oro</artifactId>
        <version>${oro.version}</version>
      </dependency>

      <dependency>
        <groupId>xmlrpc</groupId>
        <artifactId>xmlrpc</artifactId>
        <version>${xmlrpc.version}</version>
      </dependency>

      <!-- test dependencies -->
      <dependency>
        <groupId>net.sourceforge.stripes</groupId>
        <artifactId>stripes</artifactId>
        <version>${stripes.version}</version>
      </dependency>

      <dependency>
        <groupId>com.github.jbellis</groupId>
        <artifactId>jamm</artifactId>
        <version>${jamm.version}</version>
      </dependency>

      <dependency>
        <groupId>org.awaitility</groupId>
        <artifactId>awaitility</artifactId>
        <version>${awaitility.version}</version>
      </dependency>

      <!--
           Note: As Jetty activates during the build, can upgrade
           only to the latest Jetty version that can run on the
           minimum JDK JSPWiki supports:
           http://www.eclipse.org/jetty/documentation/current/what-jetty-version.html
      -->
      <dependency>
        <groupId>org.eclipse.jetty.aggregate</groupId>
        <artifactId>jetty-all</artifactId>
        <version>${jetty.version}</version>
		<type>pom</type>
      </dependency>

      <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>${hsqldb.version}</version>
        <classifier>jdk8</classifier>
      </dependency>

      <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>sqltool</artifactId>
        <version>${hsqldb.version}</version>
        <classifier>jdk8</classifier>
      </dependency>

      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- provided dependencies -->
      <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>${javax-jsp-api.version}</version>
      </dependency>

      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${javax-servlet-api.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <defaultGoal>clean verify apache-rat:check</defaultGoal>
    <plugins>  <!-- plugins executed with every build -->
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforcer-validations</id>
            <goals><goal>enforce</goal></goals>
          </execution>
        </executions>
      </plugin>
      
      <plugin>
        <groupId>net.nicoulaj.maven.plugins</groupId>
        <artifactId>checksum-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.cyclonedx</groupId>
        <artifactId>cyclonedx-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>generate-sbom</id>
            <goals>
              <goal>makeAggregateBom</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <externalReferences>
                <externalReference>
                  <type>vulnerability-assertion</type>
                  <url>https://jspwiki.apache.org/cyclonedx/vdr.xml</url>
                </externalReference>
              </externalReferences>
              <outputFormat>xml</outputFormat>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>

    <pluginManagement> <!-- defines what configuration is going to be used if, and only if, the plugin is used                          -->
      <plugins>        <!-- ordered alphabetically by groupId (default first):artifactId                                                -->
        <plugin>       <!-- default maven plugins have their version configured to make the build independent of the maven version used -->
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${plugin.antrun.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${plugin.assembly.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${plugin.clean.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${plugin.compiler.version}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <source>${jdk.version}</source>
            <target>${jdk.version}</target>
            <compilerArgs>
              <arg>-Xlint:deprecation</arg>
              <arg>-parameters</arg>
            </compilerArgs>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${plugin.dependency.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${plugin.enforcer.version}</version>
          <configuration>
            <fail>true</fail>
            <rules>
              <requireJavaVersion>
                <message>MUST USE JDK ${jdk.version}</message>
                <version>${jdk.version}</version>
              </requireJavaVersion>
              <requireMavenVersion>
                <message>BUILD REQUIRES MAVEN ${maven.version}</message>
                <version>[${maven.version},)</version>
              </requireMavenVersion>
            </rules>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${plugin.install.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${plugin.javadoc.version}</version>
          <configuration>
            <additionalOptions>
              <additionalOption>-Xdoclint:none</additionalOption>
              <additionalOption>--allow-script-in-comments</additionalOption>
            </additionalOptions>
            <bottom>Copyright (c) {inceptionYear}-{currentYear} ${project.organization.name}. All rights reserved.</bottom>
            <breakiterator>true</breakiterator>
            <detectJavaApiLink>false</detectJavaApiLink>
            <doclet>nl.talsmasoftware.umldoclet.UMLDoclet</doclet>
            <docletArtifact>
              <groupId>nl.talsmasoftware</groupId>
              <artifactId>umldoclet</artifactId>
              <version>${jdk.javadoc.doclet.version}</version>
            </docletArtifact>
            <linksource>true</linksource>
            <sourcetab>4</sourcetab>
            <quiet>true</quiet>
            <useStandardDocletOptions>true</useStandardDocletOptions>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${plugin.jar.version}</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
              <manifestEntries>
                <Extension-Name>${project.artifactId}</Extension-Name>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${plugin.jxr.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${plugin.project-info-reports.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>${plugin.release.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>${plugin.remote-resources.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${plugin.resources.version}</version>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
        </plugin>

        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${plugin.source.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${plugin.surefire.version}</version>
          <configuration>
            <consoleOutputReporter>
              <disable>true</disable>
            </consoleOutputReporter>
            <reportFormat>plain</reportFormat>
            <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
              <printStacktraceOnError>true</printStacktraceOnError>
              <printStacktraceOnFailure>true</printStacktraceOnFailure>
              <printStderrOnError>true</printStderrOnError>
              <printStdoutOnError>true</printStdoutOnError>
              <printStdoutOnFailure>true</printStdoutOnFailure>
            </statelessTestsetInfoReporter>
            <systemPropertyVariables>
              <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
            </systemPropertyVariables>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>me.fabriciorby</groupId>
              <artifactId>maven-surefire-junit5-tree-reporter</artifactId>
              <version>${plugin.surefire.junit5-tree-reporter.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${plugin.surefire.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${plugin.war.version}</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
              <manifestEntries>
                <Extension-Name>${project.artifactId}</Extension-Name>
                <Implementation-Version>${project.version}</Implementation-Version>
                <Specification-Version>${project.version}</Specification-Version>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.btmatthews.maven.plugins.inmemdb</groupId>
          <artifactId>inmemdb-maven-plugin</artifactId>
          <version>${plugin.inmemdb.version}</version>
        </plugin>

        <plugin>
          <groupId>io.leonard.maven.plugins</groupId>
          <artifactId>jspc-maven-plugin</artifactId>
          <version>${plugin.jspc.version}</version>
          <configuration>
            <compilerVersion>${jdk.version}</compilerVersion>
            <generatedClasses>${project.build.directory}/ignore</generatedClasses> <!-- only check JSPs are well-formed -->
            <keepSources>true</keepSources>
            <stopAtFirstError>false</stopAtFirstError>
          </configuration>
          <executions>
            <execution>
              <id>check-jsps-are-well-formed</id>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>net.nicoulaj.maven.plugins</groupId>
          <artifactId>checksum-maven-plugin</artifactId>
          <version>${plugin.checksum.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>artifacts</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <algorithms>
              <algorithm>SHA-512</algorithm>
            </algorithms>
          </configuration>
        </plugin>

        <!-- wro4j Web Resource Optimizer for Java (http://http://code.google.com/p/wro4j/)
          Merge and compress CSS and JS files using the WRO4J.
          - use UglifyJS for JS compression
          - use Less as advanced CSS preprocessor
        -->
        <plugin>
          <groupId>ro.isdc.wro4j</groupId>
          <artifactId>wro4j-maven-plugin</artifactId>
          <version>${wro4j.version}</version>
          <configuration>
            <contextFolder>${project.basedir}/src/main/</contextFolder>
            <extraConfigFile>${project.basedir}/src/main/config/wro/wro.properties</extraConfigFile>
            <minimize>${minimize}</minimize>
            <jsDestinationFolder>${project.build.directory}/generated-sources/wro/scripts</jsDestinationFolder>
            <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
          </configuration>
          <dependencies><!-- https://github.com/wro4j/wro4j/issues/1039#issuecomment-382474533 -->
            <dependency>
              <groupId>org.mockito</groupId>
              <artifactId>mockito-core</artifactId>
              <version>${mockito.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${plugin.build-helper.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jslint-maven-plugin</artifactId>
          <version>${plugin.jslint.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes>
              <exclude>.gitignore</exclude>                                     <!-- git exclusions -->
              <exclude>**/src/main/config/doc/LICENSE.*</exclude>               <!-- 3rd party License files -->
              <exclude>**/src/main/config/wikipages/**</exclude>                <!-- Default wikipages -->
              <exclude>**/src/main/config/dev/OldChangeLog</exclude>            <!-- ChangeLog excluded by default, this is, well, an old ChangeLog -->
              <exclude>**/src/main/resources/META-INF/services/*</exclude>      <!-- Java SPI implementations files -->
              <exclude>**/src/main/scripts/posteditor.js</exclude>              <!-- minified file -->
              <exclude>**/src/main/scripts/wiki-wysiwyg/**</exclude>            <!-- MooEditable src, MIT licensed -->
              <exclude>**/src/main/scripts/moo-extend/Request.File.js</exclude> <!-- MIT licensed -->
              <exclude>**/src/main/styles/haddock/fontjspwiki/**</exclude>      <!-- MIT/OFL licensed -->
              <exclude>**/src/main/webapp/templates/haddock/fonts/FontJspwiki.*</exclude><!-- MIT/OFL licensed -->
              <exclude>**/src/main/webapp/templates/reader/fonts/FontJspwiki.*</exclude> <!-- MIT/OFL licensed -->
              <exclude>**/src/main/webapp/scripts/mooeditable/**</exclude>      <!-- MooEditable src, MIT licensed -->
              <exclude>**/src/main/webapp/scripts/*.js</exclude>                <!-- minified files -->
              <exclude>**/src/main/scripts/lib/*.js</exclude>                   <!-- 3rd party js files -->
              <exclude>**/src/test/resources/META-INF/services/*</exclude>      <!-- Java SPI implementations files -->
              <exclude>**/src/test/resources/TextFormattingRules.txt</exclude>  <!-- test input data -->
              <exclude>**/src/test/resources/test-repo/*.txt</exclude>          <!-- web tests input data -->
              <exclude>**/src/main/webapp/templates/default/images/SilkIconSet-readme.txt</exclude> <!-- license, required by Silk Icon set cfr. NOTICE, LICENSE, etc. -->
              <exclude>**/PkgInfo</exclude>  <!-- PkgInfo files, per http://docs.oracle.com/cd/E19683-01/816-0219/6m6njqbat/index.html doesn't seem to accept comments -->
              <exclude>jspwiki-kendra-searchprovider/src/main/resources/org/apache/wiki/search/kendra/content_types.json</exclude> <!-- Json File -->
              <exclude>**/.eslintrc</exclude> <!-- Json File -->
              <exclude>**src/main/styles/haddock/bootstrap/**</exclude>
              <exclude>**src/main/styles/haddock/default/*.crunch</exclude>
              <exclude>**/src/main/webapp/templates/default/fonts/*.svg</exclude>
              <exclude>**/src/main/webapp/templates/210/images/SilkIconSet-readme.txt</exclude>
              <exclude>**/src/main/webapp/favicons/*.svg</exclude>
              <exclude>**/src/overlay/launchers/tomcat/woas.app/Contents/*.plist</exclude>
              <exclude>**/src/overlay/launchers/tomcat/woas.app/Contents/Resources/*.none</exclude>

            </excludes>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven3-plugin</artifactId>
          <version>${plugin.cargo.version}</version>
          <configuration>
            <container>
              <!-- https://codehaus-cargo.github.io/cargo/Maven2+Plugin+Reference+Guide.html#Maven2PluginReferenceGuide-container -->
              <containerId>tomcat9x</containerId>
              <zipUrlInstaller>
                <url>https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip</url>
              </zipUrlInstaller>
              <!-- <output>${project.build.directory}/tomcat9x/logs/container.log</output> -->
              <systemProperties>
                <user.language>en</user.language>
                <user.region>US</user.region>
              </systemProperties>
            </container>
            <configuration>
              <type>standalone</type>
              <home>${project.build.directory}/tomcat9x</home>
              <properties>
                <cargo.servlet.port>8080</cargo.servlet.port>
                <cargo.jvmargs>-Xms256m -Xmx3072m -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -XX:+DisableExplicitGC -Xverify:none -Djava.awt.headless=true</cargo.jvmargs>
              </properties>
            </configuration>
            <!-- <deployables>
              <deployable>
                <groupId>${project.groupId}</groupId>
                <artifactId>jspwiki-war</artifactId>
                <type>war</type>
                <properties>
                  <context>/JSPWiki</context>
                </properties>
              </deployable>
            </deployables> -->
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>${plugin.clirr.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>${plugin.cobertura.version}</version>
          <configuration>
            <formats>
              <format>html</format>
              <format>xml</format>
            </formats>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.cyclonedx</groupId>
          <artifactId>cyclonedx-maven-plugin</artifactId>
          <version>${plugin.cyclonedx.version}</version>
        </plugin>

        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${plugin.sonar.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.sonar-plugins</groupId>
          <artifactId>maven-report</artifactId>
          <version>${plugin.sonar-report.version}</version>
        </plugin>

        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>${plugin.eclipse-lifecycle-mapping.version}</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>io.leonard.maven.plugins</groupId>
                    <artifactId>jspc-maven-plugin</artifactId>
                    <versionRange>[2.4.6,)</versionRange>
                    <goals><goal>compile</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>yuicompressor-maven-plugin</artifactId>
                    <versionRange>[1.3.2,)</versionRange>
                    <goals><goal>compress</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <versionRange>[1.7,)</versionRange>
                    <goals><goal>run</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jslint-maven-plugin</artifactId>
                    <versionRange>[1.0.1,)</versionRange>
                    <goals><goal>jslint</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>ro.isdc.wro4j</groupId>
                    <artifactId>wro4j-maven-plugin</artifactId>
                    <versionRange>[1.7.2,)</versionRange>
                    <goals><goal>run</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <versionRange>[2.1,)</versionRange>
                    <goals><goal>unpack</goal></goals>
                  </pluginExecutionFilter>
                  <action><ignore /></action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>build-wikipages-zips</id>
      <activation>
        <file>
          <exists>../assembly/zip.xml</exists>
        </file>
      </activation>
      <build>       <!-- apache-release from project's parent pom enables assembly plugin on all modules, so to build the -->
        <plugins>   <!-- wikipages zip we must fall back to invoke it on each wikipage submodule. In order to reuse some  -->
          <plugin>  <!-- build logic, we use a custom profile. Cfr with property on each jspwiki-wikipages submodule.     -->
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>create-wikipages-zip</id>
                <phase>package</phase>
                <goals><goal>single</goal></goals>
                <configuration>
                  <descriptors>
                    <descriptor>../assembly/zip.xml</descriptor>
                  </descriptors>
                </configuration>
              </execution>
              <execution>
                <id>create-markdown-wikipages-zip</id>
                <phase>package</phase>
                <goals><goal>single</goal></goals>
                <configuration>
                  <descriptors>
                    <descriptor>../assembly/zip-markdown.xml</descriptor>
                  </descriptors>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <profile> <!-- attach additional artifacts to build lifecycle -->
      <id>attach-additional-artifacts</id> 
      
      <activation>
        <property>
          <name>additional_artifacts</name>
          <value>true</value>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>artifact-sources</id>
                <phase>package</phase>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>artifact-javadocs</id>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile> <!-- enable memory profiling -->
      <id>mem-profiling</id>

      <activation>
        <property>
          <name>test</name>
          <value>MemoryProfiling</value>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>dependencies-as-properties</id>
                <goals><goal>properties</goal></goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <argLine>-javaagent:${com.github.jbellis:jamm:jar}</argLine>
              <consoleOutputReporter>
                <disable>false</disable>
              </consoleOutputReporter>
              <reportFormat>plain</reportFormat>
              <statelessTestsetInfoReporter combine.self="override" />
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <organization>
    <name>The Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
  </organization>

  <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>

  <mailingLists>
    <mailingList>
      <name>Apache JSPWiki-dev List</name>
      <subscribe>dev-subscribe@jspwiki.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@jspwiki.apache.org</unsubscribe>
      <post>dev@jspwiki.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/jspwiki-dev/</archive>
    </mailingList>

    <mailingList>
      <name>Apache JSPWiki-user List</name>
      <subscribe>user-subscribe@jspwiki.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@jspwiki.apache.org</unsubscribe>
      <post>user@jspwiki.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/jspwiki-user/</archive>
    </mailingList>

    <mailingList>
      <name>Apache JSPWiki-commits List</name>
      <subscribe>commits-subscribe@jspwiki.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@jspwiki.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/jspwiki-commits/</archive>
    </mailingList>
  </mailingLists>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.apache.org/jira/browse/JSPWIKI</url>
  </issueManagement>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://builds.apache.org/job/JSPWiki</url>
  </ciManagement>
</project>
