<!--
  ~ Copyright (c) 2018-2025 the original author or authors.
  ~
  ~ This program is licensed to you under the Apache License Version 2.0,
  ~ and you may not use this file except in compliance with the Apache License Version 2.0.
  ~ You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the Apache License Version 2.0 is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
  -->
<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.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <relativePath/>
    <version>9</version>
  </parent>

  <groupId>com.github.flysium-io</groupId>
  <artifactId>yew-parent</artifactId>
  <version>1.0.4</version>
  <packaging>pom</packaging>
  <name>Yew Parent</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <!-- Storage (Relational-DBMS(RDB)) -->
    <jdbc-mysql.version>5.1.47</jdbc-mysql.version>
    <!-- DataSource -->
    <druid.version>1.1.10</druid.version>
    <!-- Apache Commons -->
    <apache-commons.lang.version>2.6</apache-commons.lang.version>
    <apache-commons.lang3.version>3.8.1</apache-commons.lang3.version>
    <apache-commons.collections4.version>4.2</apache-commons.collections4.version>
    <apache-commons.codec.version>1.11</apache-commons.codec.version>
    <apache-commons.io.version>2.6</apache-commons.io.version>
    <!-- Serialization \ JSON \ XML -->
    <fastjson.version>1.2.51</fastjson.version>
    <kryo.version>4.0.1</kryo.version>
    <kryo-serializers.version>0.42</kryo-serializers.version>
    <!-- LOGGER -->
    <slf4j.version>1.7.30</slf4j.version>
    <!--  <log4j.version>1.2.27</log4j.version> -->
    <log4j2.version>2.12.1</log4j2.version>
    <commons-logging.version>1.2</commons-logging.version>
    <!-- Lombok -->
    <lombok.version>1.18.2</lombok.version>
    <findbugs.version>2.0.3</findbugs.version>

    <!-- Tests -->
    <hamcrest.version>1.3</hamcrest.version>
    <junit.version>4.12</junit.version>
    <powermock.version>1.7.4</powermock.version>
    <jmh.version>1.21</jmh.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Yew -->
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-parent</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-logger</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-serialization</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-serialization-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-serialization-jdk</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-serialization-kryo</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-crypto</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.flysium-io</groupId>
        <artifactId>yew-util-simple-jdbc</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- Storage (Relational-DBMS(RDB)) -->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${jdbc-mysql.version}</version>
      </dependency>

      <!-- DataSource -->
      <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
      </dependency>

      <!-- Apache Commons -->
      <!-- <dependency>
               <groupId>commons-lang</groupId>
               <artifactId>commons-lang</artifactId>
               <version>${apache-commons.lang.version}</version>
             </dependency> -->
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${apache-commons.lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${apache-commons.collections4.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${apache-commons.codec.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${apache-commons.io.version}</version>
      </dependency>

      <!-- Serialization \ JSON \ XML -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>${fastjson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.esotericsoftware</groupId>
        <artifactId>kryo</artifactId>
        <version>${kryo.version}</version>
      </dependency>
      <dependency>
        <groupId>de.javakaffee</groupId>
        <artifactId>kryo-serializers</artifactId>
        <version>${kryo-serializers.version}</version>
      </dependency>

      <!-- LOGGER -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <!--<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.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-slf4j-impl</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
      </dependency>

      <!-- Lombok -->
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>${findbugs.version}</version>
      </dependency>

      <!-- Unit Tests -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- Mock Tests -->
      <!-- <dependency>
              <groupId>org.mockito</groupId>
              <artifactId>mockito-core</artifactId>
              <version>${mockito.version}</version>
              <scope>test</scope>
            </dependency> --> <!-- 不随意升级mockito版本，mockito由powermock依赖构建出来 -->
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- Benchmark Tests -->
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-core</artifactId>
        <version>${jmh.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-generator-annprocess</artifactId>
        <version>${jmh.version}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.3</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!--
    <distributionManagement>
      <repository>
        <id>internal</id>
        <name>Nexus Release Repository</name>
        <url>file:///～/.m2/repository</url>
      </repository>
    </distributionManagement>
  -->

</project>
