<?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:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://maven.apache.org/POM/4.0.0"
    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>

    <name>NLPCraft Parent</name>
    <groupId>org.apache.nlpcraft</groupId>
    <artifactId>nlpcraft-parent</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <url>https://nlpcraft.apache.org</url>
    <description>An open source API to convert natural language into actions.</description>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>10</version>
    </parent>

    <modules>
        <module>nlpcraft</module>
    </modules>

    <developers>
        <developer>
            <id>aradzinski</id>
            <name>Aaron Radzinski</name>
            <email>aradzinski@apache.org</email>
            <organization>apache</organization>
            <organizationUrl>https://apache.org</organizationUrl>
            <roles>
                <role>architect</role>
            </roles>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <scm>
        <url>https://github.com/apache/incubator-nlpcraft.git</url>
        <connection>scm:git:ssh://git@github.com/apache/incubator-nlpcraft.git</connection>
        <developerConnection>scm:git:ssh://git@github.com/apache/incubator-nlpcraft.git</developerConnection>
        <!-- Set actual tag name here -->
        <tag>v1.0.0</tag>
    </scm>

    <properties>
        <!-- Major Java/Scala version. -->
        <scala.major.ver>3</scala.major.ver>
        <scala3.ver>${scala.major.ver}.1.1</scala3.ver>
        <scala2.ver>2.13.8</scala2.ver>
        <java.ver>11</java.ver>
        <maven.build.timestamp.format>yyyy-MM-dd-HH-mm</maven.build.timestamp.format>
        <timestamp>${maven.build.timestamp}</timestamp>

        <!-- Versions. -->
        <scala.plugin.ver>4.6.3</scala.plugin.ver>
        <log4j.ver>2.17.2</log4j.ver>
        <scala.config.ver>1.3.4</scala.config.ver>
        <scala.logging.ver>3.9.4</scala.logging.ver>
        <scalatest.ver>3.2.11</scalatest.ver>
        <scala.par.colections>1.0.4</scala.par.colections>
        <maven.jar.plugin.ver>3.2.2</maven.jar.plugin.ver>
        <maven.compiler.plugin.ver>3.8.1</maven.compiler.plugin.ver>
        <maven.enforcer.plugin.ver>1.4.1</maven.enforcer.plugin.ver>
        <maven.surefire.plugin.ver>2.22.1</maven.surefire.plugin.ver>
        <maven.shade.plugin.ver>3.2.1</maven.shade.plugin.ver>
        <maven.project.info.reports.plugin.ver>2.2</maven.project.info.reports.plugin.ver>
        <maven.install.plugin.ver>2.5.2</maven.install.plugin.ver>
        <maven.source.plugin.ver>3.0.1</maven.source.plugin.ver>
        <maven.clean.plugin.ver>3.1.0</maven.clean.plugin.ver>
        <maven.javadoc.plugin.ver>3.2.0</maven.javadoc.plugin.ver>
        <org.antlr4.ver>4.10.1</org.antlr4.ver>
        <jline.ver>3.21.0</jline.ver>
        <commons.io.ver>2.11.0</commons.io.ver>
        <commons.lang3.ver>3.12.0</commons.lang3.ver>
        <commons.codec.ver>1.15</commons.codec.ver>
        <commons.collections.ver>4.4</commons.collections.ver>
        <scala3.ref.ver>1.1.4</scala3.ref.ver>
        <junit.ver>5.8.2</junit.ver>
        <scalatest.ver>3.2.11</scalatest.ver>
        <jackson.ver>2.13.2</jackson.ver>
        <jackson.yaml.ver>2.13.2</jackson.yaml.ver>
        <apache.opennlp.ver>1.9.4</apache.opennlp.ver>
        <jmh.version>1.35</jmh.version>
        <gson.ver>2.9.0</gson.ver>

        <!-- Force specific encoding on text resources. -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Jar with all dependencies. -->
        <nlpcraft.all.deps.jar>apache-${project.artifactId}-incubating-${project.version}-all-deps.jar</nlpcraft.all.deps.jar>

        <!--
            NOTE: this library is NOT included in binary build and is optional
            for NLPCraft. It is licensed under GPLv3 and has to be downloaded separately by
            the end user, when required.
        -->
        <stanford.corenlp.ver>4.4.0</stanford.corenlp.ver>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--
                Scala3 dependencies.
                ===================
            -->

            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala3-library_${scala.major.ver}</artifactId>
                <version>${scala3.ver}</version>
            </dependency>

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

            <dependency>
                <groupId>org.scala-lang.modules</groupId>
                <artifactId>scala-parallel-collections_${scala.major.ver}</artifactId>
                <version>${scala.par.colections}</version>
            </dependency>

            <dependency>
                <groupId>com.typesafe.scala-logging</groupId>
                <artifactId>scala-logging_${scala.major.ver}</artifactId>
                <version>${scala.logging.ver}</version>
            </dependency>

            <!--
             Other dependencies.
             ==================
            -->

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.ver}</version>
            </dependency>

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

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

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

            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>${jackson.ver}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.ver}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_3</artifactId>
                <version>${jackson.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${org.antlr4.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.opennlp</groupId>
                <artifactId>opennlp-tools</artifactId>
                <version>${apache.opennlp.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.ver}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.ver}</version>
            </dependency>

            <!--
             JLine dependencies.
             ==================
            -->
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-terminal</artifactId>
                <version>${jline.ver}</version>
            </dependency>

            <!--
             Stanford dependencies.
             ==================
            -->

            <dependency>
                <groupId>edu.stanford.nlp</groupId>
                <artifactId>stanford-corenlp</artifactId>
                <version>${stanford.corenlp.ver}</version>
            </dependency>

            <dependency>
                <groupId>edu.stanford.nlp</groupId>
                <artifactId>stanford-corenlp</artifactId>
                <version>${stanford.corenlp.ver}</version>
                <classifier>models</classifier>
            </dependency>

            <!--
                Test scope.
                ===========
            -->
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_${scala.major.ver}</artifactId>
                <version>${scalatest.ver}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${junit.ver}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven.jar.plugin.ver}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>${scala.plugin.ver}</version>
                <configuration>
                    <jvmArgs>
                        <jvmArg>-Xms512m</jvmArg>
                        <jvmArg>-Xmx4096m</jvmArg>
                        <jvmArg>-Xss2048k</jvmArg>
                    </jvmArgs>
                    <args>
                        <arg>-unchecked</arg>
                        <arg>-deprecation</arg>
                        <arg>-feature</arg>
                    </args>
                    <scalaCompatVersion>3</scalaCompatVersion>
                    <source>${java.ver}</source>
                    <target>${java.ver}</target>
                </configuration>
                <executions>
                    <execution>
                        <id>scala-compile-first</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>scala-test-compile</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.ver}</version>
                <configuration>
                    <source>${java.ver}</source>
                    <target>${java.ver}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${maven.enforcer.plugin.ver}</version>
                <configuration>
                    <rules>
                        <requireJavaVersion>
                            <message>

                                ------------------------------------------------------------------------
                                You are trying to compile NLPCraft with inappropriate JDK version!
                                Detected JDK Version: ${java.runtime.version}.
                                JDK version should be 11 or later.
                                ------------------------------------------------------------------------

                            </message>
                            <version>11</version>
                        </requireJavaVersion>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven.source.plugin.ver}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <!-- Stanford CoreNLP integration is not included by default due to GPL-licensed code. -->
        <profile>
            <id>stanford-core</id>
            <modules>
                <module>nlpcraft-stanford</module>
            </modules>
        </profile>

        <profile>
            <id>examples</id>
            <modules>
                <module>nlpcraft-examples/time</module>
                <module>nlpcraft-examples/lightswitch</module>
                <module>nlpcraft-examples/lightswitch-ru</module>
                <module>nlpcraft-examples/lightswitch-fr</module>
                <module>nlpcraft-examples/pizzeria</module>
            </modules>
        </profile>
    </profiles>
</project>
