<?xml version="1.0" encoding="UTF-8"?>
<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>cn.home1</groupId>
        <artifactId>deps-spring-boot</artifactId>
        <version>0.0.4.OSS</version>
    </parent>

    <artifactId>deps-spring-boot-1.x</artifactId>
    <description>Dependency management for spring-boot (1.x), spring-data, spring-cloud</description>
    <name>deps-spring-boot-1.x</name>
    <packaging>pom</packaging>

    <modules>
        <module>deps-spring-boot-1.5.12.RELEASE</module>
        <module>deps-spring-boot-1.5.13.RELEASE</module>
    </modules>

    <properties>
    </properties>

    <profiles>
        <profile>
            <id>spring-and-its-dependencies</id>
            <activation>
                <property>
                    <name>!suppress-spring-and-its-dependencies</name>
                </property>
            </activation>
            <properties>
                <!-- org.springframework.boot:spring-boot-dependencies -->
                <spring-boot.version>1.5.12.RELEASE</spring-boot.version>
                <!-- org.springframework.data:spring-data-releasetrain -->
                <spring-data-releasetrain.version>Ingalls-SR11</spring-data-releasetrain.version>
                <!-- io.spring.platform:platform-bom -->
                <spring-io-platform.version>Brussels-SR9</spring-io-platform.version>
                <!-- org.springframework.cloud:spring-cloud-dependencies -->
                <spring-cloud.version>Dalston.SR3</spring-cloud.version>
                <spring-mobile.version>1.1.5.RELEASE</spring-mobile.version>
                <spring-integration.version>4.3.16.RELEASE</spring-integration.version>
                <spring-integration-kafka.version>2.3.0.RELEASE</spring-integration-kafka.version>
                <spring-session.version>1.3.3.RELEASE</spring-session.version>
                <spring-statemachine.version>1.2.11.RELEASE</spring-statemachine.version>

                <!-- org.springframework.boot:spring-boot-dependencies -->
                <commons-lang3.version>3.5</commons-lang3.version>
                <log4j2.version>2.8.1</log4j2.version>
                <!-- io.spring.platform:platform-bom -->
                <bouncycastle.version>1.56</bouncycastle.version>
                <jackson.version>2.9.0</jackson.version>
                <jackson1.version>1.9.13</jackson1.version>
                <lombok.version>1.16.18</lombok.version>
                <!-- org.springframework.cloud:spring-cloud-dependencies -->

                <!-- third-party -->
                <gson-jodatime-serialisers.version>1.6.0</gson-jodatime-serialisers.version>
                <auto-value.version>1.5</auto-value.version>
                <disruptor.version>3.3.6</disruptor.version>
                <hikaricp.version>2.4.6</hikaricp.version>
                <freebuilder.version>1.14.4</freebuilder.version>
                <jjwt.version>0.9.0</jjwt.version>

                <!-- third-party (potential risk of conflicts) -->
                <!-- note:  commons-beanutils, commons-collections, commons-digester version -->
                <commons-validator.version>1.6</commons-validator.version>
                <commons-collections4.version>4.1</commons-collections4.version>
                <!-- conflict: hibernate-validator & io.springfox:springfox-swagger2 -->
                <classmate.version>1.3.3</classmate.version>
                <guava.version>20.0</guava.version>
                <!-- note: org.apache.kafka:kafka_2.11 com.101tec:zkclient version -->
                <zookeeper.version>3.4.10</zookeeper.version>
                <!-- note: hibernate version -->
                <usertype.version>6.0.1.GA</usertype.version>
                <!-- note: org.javassist:javassist version -->
                <javassist.version>3.21.0-GA</javassist.version>
                <!-- note: classmate version -->
                <springfox-swagger.version>2.7.0</springfox-swagger.version>
                <swagger.version>1.5.13</swagger.version>
                <!-- conflict: spring-io-platform & orika-core -->
                <orika.version>1.5.1</orika.version>
                <!-- conflict: org.eclipse.jetty:jetty-annotations & com.netflix.governator:governator -->
                <asm.version>5.1</asm.version>
                <!-- note: cglib version -->
                <p6spy.version>3.6.0</p6spy.version>
            </properties>
            <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>io.spring.platform</groupId>
                        <artifactId>platform-bom</artifactId>
                        <version>${spring-io-platform.version}</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-dependencies</artifactId>
                        <version>${spring-boot.version}</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.data</groupId>
                        <artifactId>spring-data-releasetrain</artifactId>
                        <version>${spring-data-releasetrain.version}</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-dependencies</artifactId>
                        <version>${spring-cloud.version}</version>
                        <type>pom</type>
                        <scope>import</scope>
                    </dependency>

                    <!-- For this to work, you must go to: Preferences->Editor->Code Style->Formatter Control and check Enable formatter markers in comments -->
                    <!-- @formatter:off -->
                    <!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId><version>[1.0.0.RELEASE,)</version><scope>provided</scope></dependency>-->
                    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId><version>${spring-boot.version}</version><scope>provided</scope></dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version>
                        <exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>${spring-boot.version}</version>
                        <exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
                    </dependency>
                    <!--<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>[1.0.0.RELEASE,)</version><scope>provided</scope></dependency>-->
                    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>${spring-boot.version}</version><scope>provided</scope></dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jersey</artifactId><version>${spring-boot.version}</version>
                        <exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot.version}</version>
                        <exclusions>
                            <exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion>
                            <exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion>
                        </exclusions>
                    </dependency>

                    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mobile</artifactId><version>${spring-boot.version}</version></dependency>
                    <dependency><groupId>org.springframework.mobile</groupId><artifactId>spring-mobile-device</artifactId><version>${spring-mobile.version}</version></dependency>

                    <dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-bom</artifactId><version>${spring-integration.version}</version></dependency>
                    <dependency><groupId>org.springframework.integration</groupId><artifactId>spring-integration-kafka</artifactId><version>${spring-integration-kafka.version}</version></dependency>
                    <!--
                    org.springframework.integration:spring-integration-java-dsl
                    org.springframework.integration:spring-integration-aws
                    org.springframework.integration:spring-integration-smb
                    org.springframework.integration:spring-integration-zip
                    org.springframework.integration:org.springframework.integration.event
                    org.springframework.integration:spring-integration-hazelcast
                    -->
                    <dependency><groupId>org.springframework.session</groupId><artifactId>spring-session</artifactId><version>${spring-session.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-autoconfigure</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-cluster</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-core</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-data-common</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-data-jpa</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-data-mongodb</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-data-redis</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-kryo</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-recipes-common</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-starter</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-test</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-uml</artifactId><version>${spring-statemachine.version}</version></dependency>
                    <dependency><groupId>org.springframework.statemachine</groupId><artifactId>spring-statemachine-zookeeper</artifactId><version>${spring-statemachine.version}</version></dependency>

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

                    <dependency><groupId>com.fasterxml</groupId><artifactId>classmate</artifactId><version>${classmate.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.datatype</groupId><artifactId>jackson-datatype-joda</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fasterxml.jackson.module</groupId><artifactId>jackson-module-jaxb-annotations</artifactId><version>${jackson.version}</version></dependency>
                    <dependency><groupId>com.fatboyindustrial.gson-jodatime-serialisers</groupId><artifactId>gson-jodatime-serialisers</artifactId><version>${gson-jodatime-serialisers.version}</version></dependency>
                    <!-- see: https://github.com/google/auto/tree/master/value -->
                    <dependency><groupId>com.google.auto.value</groupId><artifactId>auto-value</artifactId><version>${auto-value.version}</version></dependency>
                    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>${guava.version}</version></dependency>

                    <dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${disruptor.version}</version></dependency>
                    <dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>${hikaricp.version}</version></dependency>

                    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>${commons-collections4.version}</version></dependency>
                    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency>

                    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version></dependency>
                    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version></dependency>
                    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version></dependency>
                    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-1.2-api</artifactId><version>${log4j2.version}</version></dependency>
                    <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version></dependency>

                    <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version></dependency>

                    <!--The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms.
                    This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.-->
                    <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>${bouncycastle.version}</version></dependency>
                    <!--The Bouncy Castle Java APIs for CMS, PKCS, EAC, TSP, CMP, CRMF, OCSP, and certificate generation.
                    This jar contains APIs for JDK 1.5 to JDK 1.8. The APIs can be used in conjunction with a JCE/JCA provider
                    such as the one provided with the Bouncy Castle Cryptography APIs.-->
                    <!--dependency><groupId>org.bouncycastle</groupId><artifactId>bcpkix-jdk15on</artifactId><version>${bouncycastle.version}</version></dependency-->
                    <!--The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms.
                    This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
                    Note: this package includes the NTRU encryption algorithms.-->
                    <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-ext-jdk15on</artifactId><version>${bouncycastle.version}</version></dependency>

                    <!-- see: https://github.com/google/FreeBuilder -->
                    <dependency><groupId>org.inferred</groupId><artifactId>freebuilder</artifactId><version>${freebuilder.version}</version></dependency>
                    <dependency><groupId>org.jadira.usertype</groupId><artifactId>usertype.core</artifactId><version>${usertype.version}</version></dependency>
                    <dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>${javassist.version}</version></dependency>
                    <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency>

                    <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>${jjwt.version}</version></dependency>

                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-bean-validators</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-core</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-data-rest</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-spi</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-staticdocs</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-common</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger1</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${springfox-swagger.version}</version></dependency>
                    <dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>${swagger.version}</version></dependency>
                    <dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>${swagger.version}</version></dependency>

                    <dependency><groupId>ma.glasnost.orika</groupId><artifactId>orika-core</artifactId><version>${orika.version}</version></dependency>

                    <dependency><groupId>org.ow2.asm</groupId><artifactId>asm-commons</artifactId><version>${asm.version}</version></dependency>
                    <dependency><groupId>org.ow2.asm</groupId><artifactId>asm-tree</artifactId><version>${asm.version}</version></dependency>
                    <dependency><groupId>org.ow2.asm</groupId><artifactId>asm</artifactId><version>${asm.version}</version></dependency>

                    <dependency><groupId>p6spy</groupId><artifactId>p6spy</artifactId><version>${p6spy.version}</version></dependency>
                    <!-- @formatter:on -->
                </dependencies>
            </dependencyManagement>
        </profile>
        <profile>
            <id>third-party</id>
            <activation>
                <property>
                    <name>!suppress-third-party</name>
                </property>
            </activation>
            <properties>
                <!-- third party -->
                <mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>

                <aws-java-sdk-s3.version>1.11.125</aws-java-sdk-s3.version>
                <libphonenumber.version>8.9.6</libphonenumber.version>
                <html2pdf.version>2.0.2</html2pdf.version>
                <itextpdf.version>5.5.13</itextpdf.version>
                <druid.version>1.0.31</druid.version>
                <fastjson.version>1.2.38</fastjson.version>
                <beetl.version>2.2.7</beetl.version>
                <zkclient.version>0.10</zkclient.version>
                <protostuff.version>1.5.9</protostuff.version>
                <httpclient.version>4.5.5</httpclient.version>
                <poi.version>3.9</poi.version>
                <redisson.version>3.7.0</redisson.version>
                <reflection.version>0.9.11</reflection.version>
                <scala-library.version>2.11.11</scala-library.version>
                <simple-java-mail.version>4.2.3</simple-java-mail.version>
                <logstash-logback-encoder.version>5.0</logstash-logback-encoder.version>
                <super-csv.version>2.4.0</super-csv.version>
            </properties>
            <dependencyManagement>
                <dependencies>
                    <!-- For this to work, you must go to: Preferences->Editor->Code Style->Formatter Control and check Enable formatter markers in comments -->
                    <!-- @formatter:off -->
                    <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-spring-boot-starter.version}</version></dependency>

                    <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>${aws-java-sdk-s3.version}</version></dependency>

                    <dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>libphonenumber</artifactId><scope>provided</scope><version>${libphonenumber.version}</version></dependency>

                    <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><scope>provided</scope><version>${itextpdf.version}</version></dependency>
                    <dependency><groupId>com.itextpdf</groupId><artifactId>html2pdf</artifactId><scope>provided</scope><version>${html2pdf.version}</version></dependency>

                    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency>
                    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency>

                    <dependency><groupId>com.ibeetl</groupId><artifactId>beetl</artifactId><version>${beetl.version}</version></dependency>

                    <dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>${zkclient.version}</version></dependency>

                    <dependency><groupId>io.protostuff</groupId><artifactId>protostuff-api</artifactId><version>${protostuff.version}</version></dependency>
                    <dependency><groupId>io.protostuff</groupId><artifactId>protostuff-core</artifactId><version>${protostuff.version}</version></dependency>
                    <dependency><groupId>io.protostuff</groupId><artifactId>protostuff-runtime</artifactId><version>${protostuff.version}</version></dependency>

                    <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient.version}</version></dependency>
                    <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>${httpclient.version}</version></dependency>

                    <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi.version}</version></dependency>
                    <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency>

                    <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>${redisson.version}</version></dependency>
                    <dependency><groupId>org.reflections</groupId><artifactId>reflections</artifactId><version>${reflection.version}</version></dependency>

                    <dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala-library.version}</version></dependency>

                    <dependency><groupId>org.simplejavamail</groupId><artifactId>simple-java-mail</artifactId><version>${simple-java-mail.version}</version></dependency>

                    <dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>${logstash-logback-encoder.version}</version></dependency>
                    <dependency><groupId>net.sf.supercsv</groupId><artifactId>super-csv</artifactId><version>${super-csv.version}</version></dependency>
                    <!-- @formatter:on -->
                </dependencies>
            </dependencyManagement>
        </profile>
    </profiles>
</project>