<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>
  <groupId>org.springframework.security.oauth</groupId>
  <artifactId>spring-security-oauth-parent</artifactId>
  <name>OAuth for Spring Security</name>
  <description>Parent Project for OAuth Support for Spring Security</description>
  <packaging>pom</packaging>
  <version>2.5.0.RELEASE</version>
  <url>https://docs.spring.io/spring-security/oauth</url>

  <modules>
    <module>spring-security-oauth</module>
    <module>spring-security-oauth2</module>
    <module>tests</module>
    <module>samples</module>
    <!--module>spring-security-jwt</module-->
  </modules>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <commons-codec.version>1.14</commons-codec.version>
    <spring.version>4.3.26.RELEASE</spring.version>
    <spring.security.version>4.2.15.RELEASE</spring.security.version>
    <spring.data.redis.version>1.5.2.RELEASE</spring.data.redis.version>
    <redis.clients.version>2.6.3</redis.clients.version>
    <junit.version>4.12</junit.version>
    <mockito.version>1.10.19</mockito.version>
    <java.version>1.6</java.version>
  </properties>

  <scm>
    <url>https://github.com/SpringSource/spring-security-oauth</url>
    <connection>scm:git:git://github.com/SpringSource/spring-security-oauth.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/SpringSource/spring-security-oauth.git</developerConnection>
    <tag>HEAD</tag>
  </scm>
  <issueManagement>
    <system>JIRA</system>
    <url>https://opensource.atlassian.com/projects/spring/browse/SECOAUTH</url>
  </issueManagement>
  <mailingLists>
    <mailingList>
      <name>Spring Security OAuth Forum</name>
      <post>https://forum.springframework.org/forumdisplay.php?f=79</post>
      <archive>https://forum.springframework.org/forumdisplay.php?f=79</archive>
    </mailingList>
  </mailingLists>
  <ciManagement>
    <system>Bamboo</system>
    <url>https://build.springframework.org/bamboo/browse/SECOAUTH</url>
  </ciManagement>
  <licenses>
    <license>
      <name>Apache 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>stoicflame</id>
      <name>Ryan Heaton</name>
      <email>stoicflame@gmail.com</email>
    </developer>
    <developer>
      <id>dsyer</id>
      <name>Dave Syer</name>
      <email>dsyer@vmware.com</email>
    </developer>
  </developers>

  <profiles>
    <profile>
      <id>staging</id>
      <properties>
        <dist.staging>/${java.io.tmpdir}/spring-security-oauth/dist</dist.staging>
      </properties>
      <distributionManagement>
        <site>
          <id>spring-site-staging</id>
          <url>file:///${java.io.tmpdir}/spring-security-oauth/docs/${project.version}</url>
        </site>
        <repository>
          <id>spring-milestone-staging</id>
          <url>file:///${java.io.tmpdir}/spring-security-oauth/milestone</url>
        </repository>
        <snapshotRepository>
          <id>spring-snapshot-staging</id>
          <url>file:///${java.io.tmpdir}/spring-security-oauth/snapshot</url>
        </snapshotRepository>
      </distributionManagement>
    </profile>
    <profile>
      <id>bootstrap</id>
      <repositories>
        <repository>
          <id>repo.spring.io-milestone</id>
          <name>Spring Framework Milestone Repository</name>
          <url>https://repo.spring.io/libs-milestone-local</url>
        </repository>
        <repository>
          <id>repo.spring.io-release</id>
          <name>Spring Framework Release Repository</name>
          <url>https://repo.spring.io/libs-release-local</url>
        </repository>
        <repository>
          <id>repo.spring.io-snapshot</id>
          <name>Spring Framework Maven Snapshot Repository</name>
          <url>https://repo.spring.io/libs-snapshot-local</url>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>oauth.googlecode.net</id>
          <url>https://oauth.googlecode.com/svn/code/maven/</url>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>milestone</id>
      <distributionManagement>
            <repository>
              <id>repo.spring.io</id>
              <name>Spring Milestone Repository</name>
              <url>https://repo.spring.io/libs-milestone-local</url>
            </repository>
      </distributionManagement>
    </profile>
	<profile>
	  <id>bintray</id>
	  <distributionManagement>
		<repository>
		  <id>bintray</id>
		  <name>Jcenter Repository</name>
		  <url>https://api.bintray.com/maven/spring/jars/org.springframework.security.oauth</url>
		</repository>
	  </distributionManagement>
	</profile>
    <profile>
      <id>central</id>
      <distributionManagement>
        <snapshotRepository>
          <id>sonatype-nexus-snapshots</id>
          <name>Sonatype Nexus Snapshots</name>
          <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
          <id>sonatype-nexus-staging</id>
          <name>Nexus Release Repository</name>
          <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
      </distributionManagement>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>spring5</id>
        <properties>
            <spring.version>5.0.16.RELEASE</spring.version>
            <spring.security.version>5.0.3.RELEASE</spring.security.version>
            <spring.data.redis.version>2.0.5.RELEASE</spring.data.redis.version>
            <redis.clients.version>2.9.0</redis.clients.version>
        </properties>
        <repositories>
            <repository>
                <id>repo.spring.io-milestone</id>
                <name>Spring Framework Milestone Repository</name>
                <url>https://repo.spring.io/libs-milestone-local</url>
            </repository>
            <repository>
                <id>repo.spring.io-snapshot</id>
                <name>Spring Framework Maven Snapshot Repository</name>
                <url>https://repo.spring.io/libs-snapshot-local</url>
                <snapshots><enabled>true</enabled></snapshots>
            </repository>
        </repositories>
        <build>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.1.1</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>8.31</version>
						</dependency>
						<dependency>
							<groupId>io.spring.nohttp</groupId>
							<artifactId>nohttp-checkstyle</artifactId>
							<version>0.0.3.RELEASE</version>
						</dependency>
					</dependencies>
					<configuration>
						<configLocation>${maven.multiModuleProjectDirectory}/etc/nohttp/checkstyle.xml</configLocation>
						<includes>src/**/*,*</includes>
						<sourceDirectories>
							<sourceDirectory>./</sourceDirectory>
						</sourceDirectories>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
			</plugins>
        </build>
    </profile>
    <profile>
        <id>default</id>
        <activation>
          <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <version>1.6</version>
                    <configuration>
                        <signature>
                            <groupId>org.codehaus.mojo.signature</groupId>
                            <artifactId>java16</artifactId>
                            <version>1.0</version>
                        </signature>
                    </configuration>
                    <executions>
                        <execution>
                            <id>enforce-java-6</id>
                            <phase>test</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <configuration>
                                <ignores>
                                    <!--allow dependencies on internal Sun APIs for now. Someday fix these.... -->
                                    <ignore>sun.net.www.protocol.http.*</ignore>
                                    <ignore>sun.net.www.protocol.https.*</ignore>
                                </ignores>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
      <id>tests-exclude-redis</id>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <configuration>
                      <skip>${skipTests}</skip>
                      <includes>
                          <include>**/*Tests.java</include>
                      </includes>
                      <excludes>
                          <exclude>**/RedisTokenStorePrefixTests.java</exclude>
                          <exclude>**/RedisTokenStoreTests.java</exclude>
                      </excludes>
                  </configuration>
              </plugin>
          </plugins>
      </build>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
			<version>${spring.security.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
			<version>${spring.security.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-jwt</artifactId>
			<version>${spring.security.jwt.version}</version>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
			<version>${spring.security.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-tx</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-taglibs</artifactId>
			<version>${spring.security.version}</version>
		</dependency>

		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>${commons-codec.version}</version>
		</dependency>

    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.2</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9.1</version>
        <configuration>
          <quiet>true</quiet>
        </configuration>
        <executions>
          <execution>
            <id>javadoc</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
	  <plugin>
		<!-- We don't recommend using mep particularly,
			 but this one is needed to prevent m2e from wiping out
			 the Spring project nature-->
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-eclipse-plugin</artifactId>
        <version>2.10</version>
		<configuration>
		  <additionalProjectnatures>
			<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
		  </additionalProjectnatures>
		  <additionalBuildcommands>
			<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
		  </additionalBuildcommands>
		</configuration>
	  </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
		<plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.3</version>
          <dependencies>
            <dependency><!-- add support for ssh/scp -->
              <groupId>org.apache.maven.wagon</groupId>
              <artifactId>wagon-ssh</artifactId>
              <version>1.0</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.20</version>
          <configuration>
            <skip>${skipTests}</skip>
            <includes>
              <include>**/*Tests.java</include>
            </includes>
            <forkCount>3</forkCount>
            <reuseForks>true</reuseForks>
            <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
          </configuration>
        </plugin>
	  </plugins>
    </pluginManagement>
    <extensions>
      <extension>
        <groupId>org.springframework.build</groupId>
        <artifactId>aws-maven</artifactId>
        <version>5.0.0.RELEASE</version>
      </extension>
    </extensions>
  </build>

  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.4</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.3</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <reportSets>
          <reportSet>
            <id>html</id>
            <reports>
              <report>javadoc</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <aggregate>true</aggregate>
          <breakiterator>true</breakiterator>
          <links>
            <link>https://java.sun.com/j2ee/1.4/docs/api</link>
            <link>https://java.sun.com/j2se/1.5.0/docs/api</link>
            <link>https://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link>
            <link>https://jakarta.apache.org/commons/dbcp/apidocs/</link>
            <link>https://jakarta.apache.org/commons/fileupload/apidocs/</link>
            <link>https://jakarta.apache.org/commons/httpclient/apidocs/</link>
            <link>https://jakarta.apache.org/commons/pool/apidocs/</link>
            <link>https://jakarta.apache.org/commons/logging/apidocs/</link>
            <link>http://junit.sourceforge.net/javadoc/</link>
            <link>https://logging.apache.org/log4j/docs/api/</link>
            <link>https://jakarta.apache.org/regexp/apidocs/</link>
            <link>https://jakarta.apache.org/velocity/api/</link>
            <link>https://docs.spring.io/spring/docs/2.5.x/api/</link>
          </links>
          <excludePackageNames>example</excludePackageNames>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>

  <distributionManagement>

    <site>
      <id>static.spring.io</id>
      <url>scp://docs.af.pivotal.io/var/www/domains/spring.io/docs/htdocs/spring-security/oauth/site/docs/${project.version}</url>
    </site>

    <repository>
      <id>repo.spring.io</id>
      <name>Spring Release Repository</name>
      <url>https://repo.spring.io/libs-release-local</url>
    </repository>

    <snapshotRepository>
      <id>repo.spring.io</id>
      <name>Spring Snapshot Repository</name>
      <url>https://repo.spring.io/libs-snapshot-local</url>
    </snapshotRepository>

  </distributionManagement>

</project>
