<?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/xsd/maven-4.0.0.xsd">
  <parent>
    <groupId>org.apache.sling</groupId>
    <artifactId>sling-bundle-parent</artifactId>
    <version>41</version>
    <relativePath />
  </parent>

  <modelVersion>4.0.0</modelVersion>

  <artifactId>org.apache.sling.auth.saml2</artifactId>
  <name>SAML2 Service Provider</name>
  <version>0.2.6</version>
  <description>A SAML2 Web-profile SSO Service Provider (Sling Authentication) that uses encrypted
    POST Binding for communicating security assertions from an identity provider such as Shibboleth.</description>

  <properties>
   <opensaml.version>4.0.1</opensaml.version>    
    <sling.host>localhost</sling.host>
    <sling.port>8080</sling.port>
    <sling.user>admin</sling.user>
    <sling.password>admin</sling.password>
    <bnd.baseline.skip>true</bnd.baseline.skip>
    <powermock.version>2.0.9</powermock.version>
    <exam.version>4.13.3</exam.version>
    <maven.compiler.source>1.11</maven.compiler.source>
    <maven.compiler.target>1.11</maven.compiler.target>
    <pax.vm.options>
      -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5015
    </pax.vm.options>
    <noticeStatement>This module includes modified code from webprofile-ref-project-v3 [1],
which is licensed under the Apache-2.0 license.

[1]: https://bitbucket.org/srasmusson/webprofile-ref-project-v3</noticeStatement>
  </properties>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-auth-saml2.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-auth-saml2.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-auth-saml2.git</url>
    <tag>org.apache.sling.auth.saml2-0.2.6</tag>
 </scm>

  <build>
    <plugins>
      <plugin>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>bnd-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.sling</groupId>
        <artifactId>sling-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
         <source>11</source>
         <target>11</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes combine.children="append">
            <exclude>**/dependency-reduced-pom.xml</exclude>
            <exclude>**/*.vm</exclude>
            <exclude>src/test/resources/*</exclude>
            <exclude>*.asc.txt</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <redirectTestOutputToFile>true</redirectTestOutputToFile>
          <systemProperties>
            <property>
              <name>bundle.filename</name>
              <value>${basedir}/target/${project.build.finalName}.jar</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>depends-maven-plugin</artifactId>
        <version>1.4.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate-depends-file</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.simplify4u.plugins</groupId>
        <artifactId>pgpverify-maven-plugin</artifactId>
        <version>1.12.0</version>
        <executions>
          <execution>
              <goals>
                  <goal>check</goal>
              </goals>
          </execution>
       </executions>
       <configuration>
          <keysMapLocations>
            <!-- Verify Signatures of Shibboleth, OpenSAML and any other Embedded Artifacts -->
            <keysMapLocation>
              <location>${project.basedir}/shibboleth.asc.txt</location>
            </keysMapLocation>
          <!-- all other artifacts use signature provided in-band, 
            or configure them unsigned in any.asc.txt  -->
            <keysMapLocation>
              <location>${project.basedir}/any.asc.txt</location>
              <exclude>
                <pattern>net.shibboleth.utilities:.*</pattern>
              </exclude>
              <exclude>
                <pattern>org.opensaml:.*</pattern>
              </exclude>
              <exclude>
                <pattern>io.dropwizard.metrics:metrics-core.*</pattern>
              </exclude>
              <exclude>
                <pattern>com.google.guava:guava.*</pattern>
              </exclude>
              <exclude>
                <pattern>com.google.guava:failureaccess.*</pattern>
              </exclude>
              <exclude>
                <pattern>org.checkerframework:checker-qual.*</pattern>
              </exclude>
              <exclude>
                <pattern>org.apache.velocity:.*</pattern>
              </exclude>
              <exclude>
                <pattern>commons-lang:commons-lang.*</pattern>
              </exclude>
              <exclude>
                <pattern>com.google.errorprone:error_prone_annotations.*</pattern>
              </exclude>
              <exclude>
                <pattern>org.apache.santuario:xmlsec.*</pattern>
              </exclude>
              <exclude>
                <pattern>org.cryptacular:cryptacular.*</pattern>
              </exclude>
            </keysMapLocation>
          </keysMapLocations>
        </configuration>
      </plugin>
    </plugins> 
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.osgi-mock.junit4</artifactId>
      <version>3.0.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
      <version>3.0.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.scr.ds-annotations</artifactId>
      <version>1.2.10</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId>
      <version>1.2.0</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-mockito2</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jmock</groupId>
      <artifactId>jmock-junit4</artifactId>
      <version>2.12.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.clients</artifactId>
      <version>2.0.8</version>
      <scope>test</scope>
    </dependency>

    <!-- Sling Testing PaxExam -->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.testing.paxexam</artifactId>
      <version>3.1.0</version>
      <scope>test</scope>
    </dependency>

    <!-- Pax Exam -->
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam</artifactId>
      <version>${exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-cm</artifactId>
      <version>${exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-container-forked</artifactId>
      <version>${exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-junit4</artifactId>
      <version>${exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-link-mvn</artifactId>
      <version>${exam.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- Apache Felix -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>6.0.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
      <scope>test</scope>
    </dependency>

<!--    OPENSAML -->
    <dependency>
      <groupId>org.opensaml</groupId>
      <artifactId>opensaml-core</artifactId>
      <version>${opensaml.version}</version>
    </dependency>
    <dependency>
      <groupId>org.opensaml</groupId>
      <artifactId>opensaml-saml-impl</artifactId>
      <version>${opensaml.version}</version>
    </dependency>

<!-- OpenSAML Dependencies-->
<!-- METRICS (version used by OpenSAML) -->
    <dependency>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-core</artifactId>
      <version>4.1.9</version>
    </dependency>

<!--    XMLSEC (org.apache.santuario)-->
    <dependency>
      <groupId>org.apache.santuario</groupId>
      <artifactId>xmlsec</artifactId>
      <version>2.1.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.woodstox</groupId>
      <artifactId>woodstox-core</artifactId>
      <version>5.0.3</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.woodstox</groupId>
      <artifactId>stax2-api</artifactId>
      <version>3.1.4</version>
    </dependency>

<!--    GUAVA -->
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>30.1.1-jre</version>
    </dependency>
    <dependency>
      <groupId>org.checkerframework</groupId>
      <artifactId>checker-qual</artifactId>
      <version>2.11.1</version>
    </dependency> 
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>failureaccess</artifactId>
      <version>1.0.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_annotations</artifactId>
      <version>2.3.4</version>
    </dependency>

<!--    VELOCITY -->
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
      <version>2.3</version>
    </dependency>    
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.12</version>
    </dependency>

    <!--    JavaEE -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>

<!--  Sling Dependencies-->
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.auth.core</artifactId>
      <version>1.3.26</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.api</artifactId>
      <version>2.16.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.sling</groupId>
        <artifactId>org.apache.sling.jcr.api</artifactId>
        <version>2.4.0</version>
        <scope>provided</scope>
    </dependency>

<!--
this was removed from bnd.bnd
because it became difficult manage a version range while using a specific version in IT tests
Export-Package:org.apache.jackrabbit.oak.spi.security.authentication.external.*   
-->
    <dependency>
      <groupId>org.apache.jackrabbit</groupId>
      <artifactId>oak-auth-external</artifactId>
      <version>1.32.0</version>
      <scope>provided</scope>
    </dependency>


<!--    Apache Commons -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.5</version>
      <scope>provided</scope>
    </dependency>

<!--    OSGI Annotations-->
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>6.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.cmpn</artifactId>
      <version>6.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.annotation</artifactId>
      <version>6.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.component.annotations</artifactId>
      <version>1.3.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>autoInstallBundle</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.sling</groupId>
            <artifactId>sling-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>install-bundle</id>
                <goals>
                  <goal>install</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

<!-- The Shibboleth Repository is needed
https://wiki.shibboleth.net/confluence/display/DEV/Use+of+Maven+Central
-->
<repositories>
  <repository>
    <id>shibboleth</id>
    <url>https://build.shibboleth.net/nexus/content/repositories/releases/</url>
  </repository>
</repositories>

</project>
