<?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 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- pick up Apache distributionManagement for releasing (snapshots, releases, etc): -->
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>21</version>
    </parent>

    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-root</artifactId>
    <packaging>pom</packaging>
    <version>1.5.2-SNAPSHOT</version>

    <name>Apache Shiro</name>
    <url>https://shiro.apache.org/</url>
    <description>
        Apache Shiro is a powerful and flexible open-source security framework that cleanly handles
        authentication, authorization, enterprise session management, single sign-on and cryptography services.
    </description>
    <inceptionYear>2004</inceptionYear>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/shiro.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/shiro.git</developerConnection>
        <url>https://github.com/apache/shiro/tree/${project.scm.tag}</url>
        <tag>master</tag>
    </scm>
    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/SHIRO</url>
    </issueManagement>
    <ciManagement>
        <system>Jenkins</system>
        <url>https://builds.apache.org/job/Shiro/</url>
    </ciManagement>

    <distributionManagement>
        <site>
            <id>shiro.website</id>
            <name>Apache Shiro Site</name>
            <url>scp://people.apache.org/www/shiro.apache.org/static/latest</url>
        </site>
        <downloadUrl>https://shiro.apache.org/download.html</downloadUrl>
    </distributionManagement>

    <properties>

        <shiro.previousVersion>1.4.1</shiro.previousVersion>
        <!-- Replaced by the build number plugin at build time: -->
        <buildNumber>${user.name}-${maven.build.timestamp}</buildNumber>
        <jacoco.skip>true</jacoco.skip>

        <!-- non-dependency-based properties: -->
        <shiro.osgi.importRange>[1.2, 2)</shiro.osgi.importRange>

        <!-- Compile 3rd party dependencies: -->
        <!-- Don't change this version without also changing the shiro-aspect and shiro-features
             modules' OSGi metadata: -->
        <aspectj.version>1.9.4</aspectj.version>
        <cas.client.core.version>3.2.2</cas.client.core.version>
        <commons.beanutils.version>1.9.4</commons.beanutils.version>
        <commons.cli.version>1.4</commons.cli.version>
        <commons.codec.version>1.13</commons.codec.version>
        <commons.configuration2.version>2.7</commons.configuration2.version>
        <commons.lang3.version>3.9</commons.lang3.version>
        <commons.logging.version>1.2</commons.logging.version>
        <!-- Don't change this version without also changing the shiro-ehcache and shiro-features
             modules' OSGi metadata: -->
        <ehcache.version>2.6.11</ehcache.version>
        <!-- Don't change this version without also changing the shiro-hazelcast and shiro-features OSGi metadata: -->
        <hazelcast.version>3.12.1</hazelcast.version>
        <hsqldb.version>2.5.0</hsqldb.version>
        <javax.annotation.api.version>1.3.2</javax.annotation.api.version>
        <jdk.version>1.8</jdk.version>
        <jetty.version>9.4.20.v20190813</jetty.version>
        <owasp.java.encoder.version>1.2.2</owasp.java.encoder.version>
        <!-- Don't change this version without also changing the shiro-quartz and shiro-features
             modules' OSGi metadata: -->
        <quartz.version>2.3.2</quartz.version>
        <slf4j.version>1.7.26</slf4j.version>
        <logback.version>1.2.3</logback.version>
        <log4j.version>1.2.17</log4j.version>
        <spring.version>5.2.3.RELEASE</spring.version>
        <spring-boot.version>2.2.4.RELEASE</spring-boot.version>
        <guice.version>4.2.2</guice.version>
        <jaxrs.api.version>2.0.1</jaxrs.api.version>
        <htmlunit.version>2.36.0</htmlunit.version>

        <!-- Test 3rd-party dependencies: -->
        <easymock.version>4.0.2</easymock.version>
        <gmaven.version>1.8.0</gmaven.version>
        <groovy.version>2.5.8</groovy.version>
        <junit.version>4.12</junit.version>
        <junit.server.jetty.version>0.11.0</junit.server.jetty.version>
        <hibernate.version>5.4.3.Final</hibernate.version>
        <taglibs.standard.version>1.2.5</taglibs.standard.version>
        <!-- so we can mock static methods in 3rd party libraries that sometimes don't use proper interfaces
             ahem, hazelcast, ahem... -->
        <powermock.version>2.0.2</powermock.version>

        <maven.compiler.source>${jdk.version}</maven.compiler.source>
        <maven.compiler.target>${jdk.version}</maven.compiler.target>

        <root.dir>${session.executionRootDirectory}</root.dir>

    </properties>

    <prerequisites>
        <maven>3.5.0</maven>
    </prerequisites>

    <modules>
        <module>lang</module>
        <module>crypto</module>
        <module>event</module>
        <module>cache</module>
        <module>config</module>
        <module>core</module>
        <module>web</module>
        <module>support</module>
        <module>tools</module>
        <module>all</module>
        <module>samples</module>
        <module>integration-tests</module>
        <module>test-coverage</module>
    </modules>

    <mailingLists>
        <mailingList>
            <name>Apache Shiro Users Mailing List</name>
            <subscribe>user-subscribe@shiro.apache.org</subscribe>
            <unsubscribe>user-unsubscribe@shiro.apache.org</unsubscribe>
            <post>user@shiro.apache.org</post>
            <!--archive/-->
            <!--otherArchives-->
        </mailingList>
        <mailingList>
            <name>Apache Shiro Developers Mailing List</name>
            <subscribe>dev-subscribe@shiro.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@shiro.apache.org</unsubscribe>
            <post>dev@shiro.apache.org</post>
            <!--archive/-->
            <!--otherArchives-->
        </mailingList>
    </mailingLists>


    <developers>
        <developer>
            <id>aditzel</id>
            <name>Allan Ditzel</name>
            <email>aditzel@apache.org</email>
            <url>http://www.allanditzel.com</url>
            <organization>Apache Software Foundation</organization>
            <timezone>-5</timezone>
        </developer>
        <developer>
            <id>jhaile</id>
            <name>Jeremy Haile</name>
            <email>jhaile@apache.org</email>
            <url>http://www.jeremyhaile.com</url>
            <organization>Mobilization Labs</organization>
            <organizationUrl>http://www.mobilizationlabs.com</organizationUrl>            
            <timezone>-5</timezone>
        </developer>
        <developer>
            <id>lhazlewood</id>
            <name>Les Hazlewood</name>
            <email>lhazlewood@apache.org</email>
            <url>http://www.leshazlewood.com</url>
            <organization>Stormpath</organization>
            <organizationUrl>https://www.stormpath.com</organizationUrl>
            <timezone>-8</timezone>
            <roles>
                <role>PMC Chair</role>
            </roles>
        </developer>
        <developer>
            <id>kaosko</id>
            <name>Kalle Korhonen</name>
            <email>kaosko@apache.org</email>
            <url>https://www.tynamo.org</url>
            <organization>Apache Software Foundation</organization>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <id>pledbrook</id>
            <name>Peter Ledbrook</name>
            <email>p.ledbrook@cacoethes.co.uk</email>
            <url>https://www.cacoethes.co.uk/</url>
            <organization>SpringSource</organization>
            <organizationUrl>https://spring.io/</organizationUrl>
            <timezone>0</timezone>
        </developer>
        <developer>
            <id>tveil</id>
            <name>Tim Veil</name>
            <email>tveil@apache.org</email>
        </developer>
        <developer>
            <id>bdemers</id>
            <name>Brian Demers</name>
            <email>bdemers@apache.org</email>
            <url>https://stormpath.com/blog/author/bdemers</url>
            <organization>Stormpath</organization>
            <organizationUrl>https://stormpath.com/</organizationUrl>
            <timezone>-5</timezone>
        </developer>
        <developer>
            <id>jbunting</id>
            <name>Jared Bunting</name>
            <email>jbunting@apache.org</email>
            <organization>Apache Software Foundation</organization>
            <timezone>-6</timezone>
        </developer>
        <developer>
            <id>fpapon</id>
            <name>Francois Papon</name>
            <email>fpapon@apache.org</email>
            <organization>Yupiik</organization>
            <organizationUrl>https://www.yupiik.com/</organizationUrl>
            <timezone>+4</timezone>
        </developer>
    </developers>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                        <source>${jdk.version}</source>
                        <attach>true</attach>
                        <excludePackageNames>org.apache.shiro.samples.*</excludePackageNames>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>4.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.7.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-publish-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.13</version>
                    <configuration>
                    		<!-- note that this configuration needs to be maintain both in pluginManagement and reporting sections -->
                        <excludes>
                            <exclude>**/.externalToolBuilders/*</exclude>
                            <exclude>**/infinitest.filters</exclude>
                            <!-- Apparently some test in samples/spring-client generates velocity log - would better to reconfigure to output to target/ -->
                            <exclude>velocity.log</exclude>
                            <exclude>CONTRIBUTING.md</exclude>
                            <exclude>README.md</exclude>
                            <exclude>**/*.json</exclude>
                            <exclude>**/spring.factories</exclude>
                            <exclude>**/spring.provides</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
                <!-- Allow writing tests in Groovy: -->
                <plugin>
                    <groupId>org.codehaus.gmavenplus</groupId>
                    <artifactId>gmavenplus-plugin</artifactId>
                    <version>${gmaven.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy</artifactId>
                            <version>${groovy.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.4</version>
                </plugin>
                <plugin>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>3.0</version>
                    <configuration>
                        <aggregate>true</aggregate>
                        <header>${root.dir}/src/license/header.txt</header>
                        <headerDefinitions>
                            <headerDefinition>${root.dir}/src/license/header_format.xml</headerDefinition>
                        </headerDefinitions>
                        <excludes>
                            <exclude>**/*.txt</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>${jetty.version}</version>
                    <configuration>
                        <contextPath>/</contextPath>
                        <httpConnector>
                            <port>9080</port>
                            <idleTimeout>60000</idleTimeout>
                        </httpConnector>
                        <requestLog implementation="org.eclipse.jetty.server.NCSARequestLog">
                            <filename>./target/yyyy_mm_dd.request.log</filename>
                            <retainDays>90</retainDays>
                            <append>true</append>
                            <extended>false</extended>
                            <logTimeZone>GMT</logTimeZone>
                        </requestLog>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>5.2.4</version>
                </plugin>
                <plugin>
                    <groupId>com.github.siom79.japicmp</groupId>
                    <artifactId>japicmp-maven-plugin</artifactId>
                    <version>0.14.1</version>
                    <configuration>
                        <oldVersion>
                            <dependency>
                                <groupId>${project.groupId}</groupId>
                                <artifactId>${project.artifactId}</artifactId>
                                <version>${shiro.previousVersion}</version>
                                <type>jar</type>
                            </dependency>
                        </oldVersion>
                        <parameter>
                            <onlyModified>true</onlyModified>
                            <breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
                            <breakBuildBasedOnSemanticVersioning>true</breakBuildBasedOnSemanticVersioning>
                        </parameter>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0-M2</version>
                </plugin>
                <plugin>
                    <groupId>com.nickwongdev</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.12.6</version>
                    <!-- Using a fork, until such time that the aspect-maven-plugin updates to support JDK 11 - https://github.com/mojohaus/aspectj-maven-plugin/pull/45
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.11</version>
                    -->
                    <configuration>
                        <source>${jdk.version}</source>
                        <target>${jdk.version}</target>
                        <complianceLevel>${jdk.version}</complianceLevel>
                        <showWeaveInfo>true</showWeaveInfo>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <printSummary>true</printSummary>
                    <useSystemClassLoader>false</useSystemClassLoader>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <includes>
                        <include>**/*IT.java</include>
                        <include>**/*IT.groovy</include>
                        <include>**/*ITCase.java</include>
                        <include>**/*ITCase.groovy</include>
                    </includes>
                    <excludes>
                        <exclude>**/*ManualIT.java</exclude>
                        <exclude>**/*ManualIT.groovy</exclude>
                    </excludes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>prepare-agent</id>
                            <phase>process-test-classes</phase>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>prepare-agent-integration</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>prepare-agent-integration</goal>
                            </goals>
                            <configuration>
                                <excludes>
                                    <exclude>**/main/**/samples/**</exclude>
                                </excludes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            <!-- Allow Groovy tests to run: -->
            <plugin>
                <groupId>org.codehaus.gmavenplus</groupId>
                <artifactId>gmavenplus-plugin</artifactId>
                <version>${gmaven.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>addTestSources</goal>
                            <goal>generateTestStubs</goal>
                            <goal>compileTests</goal>
                            <goal>removeTestStubs</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!-- Add Git sha1 To A JAR Manifest
                     - https://maven.apache.org/plugin-developers/cookbook/add-svn-revision-to-manifest.html
                -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                    <revisionOnScmFailure>${project.version}</revisionOnScmFailure>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                        <manifestEntries>
                            <!--suppress MavenModelInspection -->
                            <SCM-Revision>${buildNumber}</SCM-Revision>
                            <SCM-url>${project.scm.url}</SCM-url>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-doap-plugin</artifactId>
                <version>1.2</version>
                <inherited>false</inherited>
                <configuration>
                    <artifact>

                    </artifact>
                    <doapOptions>
                        <!-- See http://projects.apache.org/languages.html -->
                        <programmingLanguage>Java</programmingLanguage>
                        <!-- http://projects.apache.org/categories.html -->
                        <category>library, web-framework</category>
                        <!--<category>library, web-framework, security</category>-->
                        <bugDatabase>${project.issueManagement.url}</bugDatabase>
                        <created>${project.inceptionYear}-01-01</created>
                        <description>${project.description}</description>
                        <downloadPage>${project.distributionManagement.downloadUrl}</downloadPage>
                        <homepage>${project.url}</homepage>
                        <mailingList>${project.url}/mail-lists.html</mailingList>
                        <name>${project.name}</name>
                        <shortdesc>A simple to use Java Security Framework.</shortdesc>
                        <vendor>${project.organization.name}</vendor>
                    </doapOptions>

                    <asfExtOptions>
                        <charter>The mission of the Apache Shiro project is to create and maintain an easy to use authentication and authorization framework.</charter>

                        <!-- Default values -->
                        <pmc>${project.url}</pmc>
                        <name>${project.name}</name>
                    </asfExtOptions>

                </configuration>
                <executions>
                    <execution>
                        <id>site</id>
                        <phase>pre-site</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.3</version>
                <configuration>
                    <!-- do not update upstream, with a pending release. -->
                    <pushChanges>false</pushChanges>
                    <localCheckout>true</localCheckout>
                    <!-- "install" needed because we have interrelated dependencies between the modules and we are releasing them all the same - especially consider shiro-all -->
                    <preparationGoals>clean apache-rat:check install</preparationGoals>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <!-- This configuration copied from apache:apache:7 parent pom -->
                    <useReleaseProfile>false</useReleaseProfile>
                    <goals>deploy site site:stage</goals>
                    <arguments>-Pdocs,apache-release</arguments>
                    <mavenExecutorId>forked-path</mavenExecutorId>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <nexusUrl>https://repository.apache.org</nexusUrl>
                    <serverId>apache.releases.https</serverId>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>[3.5.0,4)</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>[1.8,)</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- Automatically inherited dependencies.  The only ones that should be in here
             are test dependencies.  Actual compile or runtime dependencies should be
             explicitly declared in a child module, referencing the dependency defined
             in this file's <dependencyManagement> section. -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>2.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>${easymock.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- Writing tests in groovy is fast!: -->
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
            <version>${groovy.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-easymock</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- Shiro core artifacts -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-lang</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-cache</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-config-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-config-ogdl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-crypto-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-crypto-hash</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-crypto-cipher</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-event</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-web</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-servlet-plugin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Shiro 3rd party support (keep this alphabetically ordered based on the artifactId please): -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-aspectj</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-cas</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-ehcache</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-quartz</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-guice</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-hazelcast</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-jaxrs</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-all</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Shiro samples: -->
            <dependency>
                <groupId>org.apache.shiro.samples</groupId>
                <artifactId>samples-spring-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring-boot-starter</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring-boot-web-starter</artifactId>
                <version>${project.version}</version>
            </dependency>


            <!-- Intra project test dependencies: -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-config-ogdl</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro.integrationtests</groupId>
                <artifactId>shiro-its-support</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 3rd party dependencies -->

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <!-- used for the 'hashpass' command line tool: -->
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons.cli.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax.annotation.api.version}</version>
            </dependency>
            <dependency>
                <!-- runtime dependency for the shiro-cas module: -->
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons.codec.version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>

            <dependency>
                <!-- optional dep for the reflection builder -->
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${commons.configuration2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.owasp.encoder</groupId>
                <artifactId>encoder</artifactId>
                <version>${owasp.java.encoder.version}</version>
            </dependency>

            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <!-- Required in the sample apps only for 3rd-party libraries that expect to call
                     the commons logging APIs -->
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons.beanutils.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>${hsqldb.version}</version>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.1</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-spec</artifactId>
                <version>${taglibs.standard.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-impl</artifactId>
                <version>${taglibs.standard.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>javax.mail</groupId>
                        <artifactId>mail</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.jms</groupId>
                        <artifactId>jms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache-core</artifactId>
                <version>${ehcache.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.hazelcast</groupId>
                <artifactId>hazelcast</artifactId>
                <version>${hazelcast.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.htmlunit</groupId>
                <artifactId>htmlunit</artifactId>
                <version>${htmlunit.version}</version>
            </dependency>
            <dependency>
                <!-- Used for sample applications only - not required for the framework: -->
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <!--suppress MavenModelInspection -->
                        <groupId>ant-launcher</groupId>
                        <!--suppress MavenModelInspection -->
                        <artifactId>ant-launcher</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>c3p0</groupId>
                        <artifactId>c3p0</artifactId>
                    </exclusion>
                    <exclusion>
                        <!--suppress MavenModelInspection -->
                        <groupId>javax.security</groupId>
                        <!--suppress MavenModelInspection -->
                        <artifactId>jacc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>javax.servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jboss</groupId>
                        <!--suppress MavenModelInspection -->
                        <artifactId>jboss-cache</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.sf.ehcache</groupId>
                        <artifactId>ehcache</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <!--suppress MavenModelInspection -->
                        <artifactId>asm-attrs</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.transaction</groupId>
                        <artifactId>jta</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- Used to support Hibernate's JTA runtime dependency in the sample application(s) only.
                 Not required for Shiro -->
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.1_spec</artifactId>
                <version>1.1.1</version>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
                <scope>test</scope>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Spring Boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-test</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>

            <!-- Guice -->
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>${guice.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-multibindings</artifactId>
                <version>${guice.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-servlet</artifactId>
                <version>${guice.version}</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>${quartz.version}</version>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>com.github.mjeanroy</groupId>
                <artifactId>junit-servers-jetty</artifactId>
                <version>${junit.server.jetty.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <!-- Note that reporting may fail with lower settings than something like: MAVEN_OPTS="-X512m -XX:MaxPermSize=128m" -->
    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <linksource>true</linksource>
                    <links>
                        <link>https://docs.oracle.com/javase/6/docs/api/</link>
                        <link>https://docs.oracle.com/javaee/5/api//</link>
                        <link>https://www.slf4j.org/api/</link>
                        <link>https://docs.spring.io/spring/docs/2.5.x/javadoc-api/</link>
                        <link>https://junit.org/junit4/javadoc/4.12/</link>
                        <link>http://easymock.org/api/easymock/2.4</link>
                        <link>https://www.quartz-scheduler.org/api/1.8.6/</link>
                    </links>
                    <!-- Don't include the sample apps - they're not part of Shiro's API: -->
                    <excludePackageNames>org.apache.shiro.samples.*</excludePackageNames>
                    <top><![CDATA[
  <!-- Begin Google Analytics code -->
  <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-11551827-1']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
  </script>
  <!-- End Google Analytics code -->
                    ]]></top>
                </configuration>
                <reportSets>
                    <reportSet>
                        <id>javadoc-aggregate</id>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <aggregate>true</aggregate>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.12.0</version>
                <configuration>
                    <sourceEncoding>utf-8</sourceEncoding>
                    <targetJdk>${jdk.version}</targetJdk>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.0.0</version>
                <!-- Disable, just to make it go faster -->
                <configuration>
                    <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.12</version>
                <!-- only run at the root -->
                <inherited>false</inherited>
                <configuration>
                		<!-- note that this configuration needs to be maintain both in pluginManagement and reporting sections -->
                    <excludes>
                        <exclude>**/.externalToolBuilders/*</exclude>
                        <exclude>**/infinitest.filters</exclude>
                        <!-- Apparently some test in samples/spring-client generates velocity log - would better to reconfigure to output to target/ -->
                        <exclude>velocity.log</exclude>
                        <exclude>CONTRIBUTING.md</exclude>
                        <exclude>README.md</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>**/spring.factories</exclude>
                        <exclude>**/spring.provides</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>3.0.0-M3</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>taglist-maven-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <tagListOptions>
                        <tagClasses>
                            <tagClass>
                                <displayName>Todo Work</displayName>
                                <tags>
                                    <tag>
                                        <matchString>todo</matchString>
                                        <matchType>ignoreCase</matchType>
                                    </tag>
                                    <tag>
                                        <matchString>FIXME</matchString>
                                        <matchType>exact</matchType>
                                    </tag>
                                </tags>
                            </tagClass>
                            <tagClass>
                                <displayName>Deprecated</displayName>
                                <tags>
                                    <tag>
                                        <matchString>@Deprecated</matchString>
                                        <matchType>exact</matchType>
                                    </tag>
                                </tags>
                            </tagClass>
                        </tagClasses>
                    </tagListOptions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jdepend-maven-plugin</artifactId>
                <version>2.0</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>dashboard-maven-plugin</artifactId>
                <version>1.0.0-beta-1</version>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <id>jacoco-aggregate</id>
                        <reports>
                            <report>report-integration</report>
                            <report>report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>fast</id>
            <properties>
                <maven.test.skip.exec>true</maven.test.skip.exec>
                <maven.test.skip>true</maven.test.skip>
            </properties>
            <build>
                <defaultGoal>install</defaultGoal>
            </build>
        </profile>
        <profile>
            <id>jdk8</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <configuration>
                                <additionalJOptions>
                                    <additionalJOption>-Xdoclint:none</additionalJOption>
                                    <additionalJOption>--allow-script-in-comments</additionalJOption>
                                </additionalJOptions>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>docs</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-api-docs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <inherited>true</inherited>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <inherited>true</inherited>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>apache-release</id>
            <distributionManagement>
                <site>
                    <id>shiro.website</id>
                    <name>Apache Shiro Site</name>
                    <url>scm:svn:https://svn.apache.org/repos/asf/shiro/site/publish/static/${project.version}</url>
                </site>
            </distributionManagement>
        </profile>
        <profile>
            <!--  NOTE: this plugin config will return false positives, usage will require
                  human interpretation (and should NOT be used to fail builds)
            -->
            <id>owasp</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <inherited>false</inherited>
                        <configuration>
                            <suppressionFile>${root.dir}/src/owasp-suppression.xml</suppressionFile>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                                <inherited>false</inherited>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <reporting>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <inherited>false</inherited>
                        <configuration>
                            <suppressionFile>${root.dir}/src/owasp-suppression.xml</suppressionFile>
                            <name>OWASP Dependency Check</name>
                        </configuration>
                        <reportSets>
                            <reportSet>
                                <reports>
                                    <report>aggregate</report>
                                </reports>
                            </reportSet>
                        </reportSets>
                    </plugin>
                </plugins>
            </reporting>
        </profile>
        <profile>
            <id>ci</id>
            <properties>
                <jacoco.skip>false</jacoco.skip>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.siom79.japicmp</groupId>
                        <artifactId>japicmp-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>japicmp</id>
                                <goals>
                                    <goal>cmp</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
