<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ JBoss, Home of Professional Open Source.
  ~ Copyright 2016, Red Hat, Inc., and individual contributors
  ~ as indicated by the @author tags. See the copyright.txt file in the
  ~ distribution for a full listing of individual contributors.
  ~
  ~ This is free software; you can redistribute it and/or modify it
  ~ under the terms of the GNU Lesser General Public License as
  ~ published by the Free Software Foundation; either version 2.1 of
  ~ the License, or (at your option) any later version.
  ~
  ~ This software is distributed in the hope that it will be useful,
  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  ~ Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public
  ~ License along with this software; if not, write to the Free
  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  -->

<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">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>37</version>
    </parent>

    <groupId>org.wildfly.clustering</groupId>
    <artifactId>wildfly-clustering-spring-session</artifactId>
    <version>3.0.2.Final</version>
    <packaging>pom</packaging>

    <name>Distributed session management for Spring Session</name>

    <scm>
        <connection>scm:git:git://github.com:wildfly-clustering/wildfly-clustering-spring-session.git</connection>
        <developerConnection>scm:git:git@github.com:wildfly-clustering/wildfly-clustering-spring-session.git</developerConnection>
        <url>https://github.com/wildfly-clustering/wildfly-clustering-spring-session</url>
        <tag>3.0.2.Final</tag>
    </scm>

    <!-- Spring Security does not yet have a final release that is compatible with Spring 5.3.x! -->
    <repositories>
        <repository>
            <id>SpringFramework</id>
            <name>Sping Framework milestone releases</name>
            <url>https://maven.springframework.org/milestone/</url>
        </repository>
    </repositories>

    <properties>
        <jdk.min.version>11</jdk.min.version>
        <jdk.release.version>8</jdk.release.version>
        <version.io.spring>5.3.7</version.io.spring>
        <version.io.spring.security>5.5.0</version.io.spring.security>
        <version.io.spring.session>2.5.0</version.io.spring.session>
        <version.jakarta.annotation>1.3.5</version.jakarta.annotation>
        <version.jakarta.servlet>4.0.3</version.jakarta.servlet>
        <version.org.apache.httpcomponents>4.5.13</version.org.apache.httpcomponents>
        <version.org.apache.tomcat>9.0.46</version.org.apache.tomcat>
        <version.org.infinispan>11.0.11.Final</version.org.infinispan>
        <version.org.infinispan.protostream>4.3.5.Final</version.org.infinispan.protostream>
        <version.org.infinispan.server>${version.org.infinispan}</version.org.infinispan.server>
        <version.org.jboss.arquillian>1.6.0.Final</version.org.jboss.arquillian>
        <version.org.jboss.arquillian.container.tomcat>1.1.0.Final</version.org.jboss.arquillian.container.tomcat>
        <version.org.jboss.marshalling>2.0.12.Final</version.org.jboss.marshalling>
        <version.org.kohsuke.metainf-services>1.8</version.org.kohsuke.metainf-services>
        <version.org.wildfly>23.0.2.Final</version.org.wildfly>
        <version.junit>4.13.2</version.junit>
    </properties>

    <modules>
        <module>core</module>
        <module>hotrod</module>
        <module>infinispan</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <goals>
                    <goal>compile</goal>
                </goals>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <configuration>
                            <release>${jdk.release.version}</release>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>${project.artifactId}</artifactId>
                            <version>${project.version}</version>
                        </artifactItem>
                    </artifactItems>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <source>${jdk.release.version}</source>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <tagNameFormat>@{project.version}</tagNameFormat>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.googlecode.maven-download-plugin</groupId>
                    <artifactId>download-maven-plugin</artifactId>
                    <version>1.6.0</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${version.jakarta.annotation}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${version.jakarta.servlet}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${version.org.apache.httpcomponents}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat</groupId>
                <artifactId>tomcat-catalina</artifactId>
                <version>${version.org.apache.tomcat}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-client-hotrod</artifactId>
                <version>${version.org.infinispan}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-server-testdriver-junit4</artifactId>
                <version>${version.org.infinispan.server}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.infinispan</groupId>
                        <artifactId>infinispan-cli-client</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.infinispan.protostream</groupId>
                <artifactId>protostream</artifactId>
                <version>${version.org.infinispan.protostream}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan.protostream</groupId>
                <artifactId>protostream-processor</artifactId>
                <version>${version.org.infinispan.protostream}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>${version.org.jboss.arquillian}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.container</groupId>
                <artifactId>arquillian-tomcat-managed-8</artifactId>
                <version>${version.org.jboss.arquillian.container.tomcat}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.marshalling</groupId>
                <artifactId>jboss-marshalling-river</artifactId>
                <version>${version.org.jboss.marshalling}</version>
            </dependency>
            <dependency>
                <groupId>org.kohsuke.metainf-services</groupId>
                <artifactId>metainf-services</artifactId>
                <version>${version.org.kohsuke.metainf-services}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${version.io.spring}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${version.io.spring}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${version.io.spring}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-config</artifactId>
                <version>${version.io.spring.security}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-web</artifactId>
                <version>${version.io.spring.security}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.session</groupId>
                <artifactId>spring-session-core</artifactId>
                <version>${version.io.spring.session}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-common</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly.core</groupId>
                        <artifactId>wildfly-controller</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-service</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-naming</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-naming-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly.core</groupId>
                        <artifactId>wildfly-server</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly.wildfly-http-client</groupId>
                        <artifactId>wildfly-http-naming-client</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-infinispan-client</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-infinispan-marshalling</artifactId>
                <version>${version.org.wildfly}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-infinispan-spi</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-marshalling-api</artifactId>
                <version>${version.org.wildfly}</version>
                <classifier>tests</classifier>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-marshalling-spi</artifactId>
                <version>${version.org.wildfly}</version>
                <classifier>tests</classifier>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-marshalling-jboss</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.modules</groupId>
                        <artifactId>jboss-modules</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-marshalling-protostream</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.modules</groupId>
                        <artifactId>jboss-modules</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-service</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.msc</groupId>
                        <artifactId>jboss-msc</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-server</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-singleton-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.wildfly.core</groupId>
                        <artifactId>wildfly-controller</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-web-cache</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.msc</groupId>
                        <artifactId>jboss-msc</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-web-hotrod</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-web-infinispan</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-common</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.wildfly</groupId>
                <artifactId>wildfly-clustering-web-spi</artifactId>
                <version>${version.org.wildfly}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.wildfly</groupId>
                        <artifactId>wildfly-clustering-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.metadata</groupId>
                        <artifactId>jboss-metadata-web</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${version.junit}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
