<?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="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.apache</groupId>
        <artifactId>apache</artifactId>
        <version>23</version>
    </parent>


    <groupId>org.apache.linkis</groupId>
    <artifactId>linkis</artifactId>
    <version>1.1.3</version>
    <packaging>pom</packaging>
    <name>Linkis Project Parent POM</name>
    <description>Linkis helps easily connect to various back-end computation/storage engines</description>
    <url>https://github.com/apache/incubator-linkis</url>

    <licenses>
        <license>
            <name>Apache 2.0 License</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <scm>
        <url>https://github.com/apache/incubator-linkis</url>
        <connection>scm:git:https://github.com/apache/incubator-linkis.git</connection>
        <developerConnection>scm:git:https://github.com/apache/incubator-linkis.git</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <mailingLists>
        <mailingList>
            <name>Development List</name>
            <subscribe>dev-subscribe@linkis.incubator.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@linkis.incubator.apache.org</unsubscribe>
            <post>dev@linkis.incubator.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Commits List</name>
            <subscribe>commits-subscribe@linkis.incubator.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@linkis.incubator.apache.org</unsubscribe>
            <post>commits@linkis.incubator.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Issues List</name>
            <subscribe>issues-subscribe@linkis.incubator.apache.org</subscribe>
            <unsubscribe>issues-unsubscribe@linkis.incubator.apache.org</unsubscribe>
            <post>issues@linkis.incubator.apache.org</post>
        </mailingList>
    </mailingLists>
    <developers>
        <developer>
            <id>Apache Linkis(incubating)</id>
            <name>The Linkis Project Contributors</name>
            <email>dev-subscribe@linkis.incubator.apache.org</email>
            <url>http://linkis.apache.org/</url>
        </developer>
    </developers>

    <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>

    <issueManagement>
        <system>Github Issues</system>
        <url>https://github.com/apache/linkis-incubator/issues</url>
    </issueManagement>
    <modules>
        <module>linkis-commons</module>
        <module>linkis-spring-cloud-services</module>
        <module>linkis-orchestrator</module>
        <module>linkis-public-enhancements</module>
        <module>linkis-computation-governance</module>
        <module>linkis-engineconn-plugins</module>
        <module>linkis-extensions</module>
        <module>assembly-combined-package</module>
    </modules>
    <properties>
        <linkis.version>1.1.3</linkis.version>
        <hadoop.version>2.7.2</hadoop.version>
        <zookeeper.version>3.5.9</zookeeper.version>
        <spring.boot.version>2.3.12.RELEASE</spring.boot.version>
        <guava.version>30.0-jre</guava.version>
        <gson.version>2.8.9</gson.version>
        <scala.version>2.11.12</scala.version>
        <jdk.compile.version>1.8</jdk.compile.version>
        <plugin.scala.version>2.15.2</plugin.scala.version>
        <scala.binary.version>2.11</scala.binary.version>
        <netty.version>4.1.68.Final</netty.version>
        <jackson-bom.version>2.13.2.1</jackson-bom.version>
        <!-- spark2.4 use 3.5.3, spark3.2 use 3.7.0-M11 -->
        <json4s.version>3.5.3</json4s.version>
        <jersey.version>1.19.4</jersey.version>
        <jersey.servlet.version>2.23.1</jersey.servlet.version>
        <jline.version>2.14.6</jline.version>
        <!-- hadoop 2.7 use curator 2.7.1, hadoop3.3 use curator 4.2.0-->
        <curator.version>2.7.1</curator.version>
        <jetty.version>9.4.44.v20210927</jetty.version>
        <httpclient.version>4.5.13</httpclient.version>
        <httpmime.version>4.5.4</httpmime.version>
        <slf4j.version>1.7.30</slf4j.version>
        <knife4j.version>2.0.9</knife4j.version>
        <maven.version>3.3.3</maven.version>
        <xstream.core.version>1.4.19</xstream.core.version>
        <reflections.version>0.9.10</reflections.version>
        <mybatis-plus.boot.starter.version>3.4.1</mybatis-plus.boot.starter.version>
        <mysql.connector.version>8.0.28</mysql.connector.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <javassist.version>3.19.0-GA</javassist.version>
        <commons-collections.version>3.2.2</commons-collections.version>
        <commons-lang.version>2.6</commons-lang.version>
        <commons-lang3.version>3.9</commons-lang3.version>
        <commons-io.version>2.11.0</commons-io.version>
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <druid.version>1.1.22</druid.version>
        <protobuf.version>3.15.8</protobuf.version>
        <cglib.version>3.3.0</cglib.version>
        <asm-bom.version>9.3</asm-bom.version>
        <log4j2.version>2.17.2</log4j2.version>
        <spotless.version>2.4.2</spotless.version>
        <junit5.version>5.7.2</junit5.version>
        <mockito.version>3.9.0</mockito.version>
        <assertj.version>3.17.2</assertj.version>
        <h2.version>1.4.200</h2.version>

        <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
        <assembly.package.rootpath>${basedir}</assembly.package.rootpath>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven-surefire-plugin.version>2.22.1</maven-surefire-plugin.version>
        <jacoco.version>0.8.7</jacoco.version>
        <jacoco.skip>false</jacoco.skip>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.linkis</groupId>
                <artifactId>linkis-module</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>hibernate-validator</artifactId>
                        <groupId>org.hibernate.validator</groupId>
                    </exclusion>
                </exclusions>
                <version>${linkis.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.linkis</groupId>
                <artifactId>linkis-common</artifactId>
                <version>${linkis.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.linkis</groupId>
                <artifactId>linkis-mybatis</artifactId>
                <version>${linkis.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>${xstream.core.version}</version>
            </dependency>

            <!-- scala version -->
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scalap</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons-lang.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.4.01</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>${log4j2.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections.version}</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.connector.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit5.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson-bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-core_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-jackson_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-ast_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>org.json4s</groupId>
                <artifactId>json4s-scalap_${scala.binary.version}</artifactId>
                <version>${json4s.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-servlet</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-guice</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-apache-client4</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.servlet.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>jline</groupId>
                <artifactId>jline</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-server</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-json</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jsr311-api</artifactId>
                        <groupId>javax.ws.rs</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.java.dev.jets3t</groupId>
                        <artifactId>jets3t</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xmlenc</groupId>
                        <artifactId>xmlenc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.java.dev.jets3t</groupId>
                        <artifactId>jets3t</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.avro</groupId>
                        <artifactId>avro</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-auth</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>servlet-api</artifactId>
                        <groupId>javax.servlet</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>com.google.protobuf</groupId>
                        <artifactId>protobuf-java</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-compress</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-beanutils</artifactId>
                        <groupId>commons-beanutils</groupId>
                    </exclusion>
                    <exclusion>
                        <!-- BeanUtils >= 1.9.0 no longer splits out -core; exclude it -->
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.fusesource.leveldbjni</groupId>
                        <artifactId>leveldbjni-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- BeanUtils >= 1.9.0 no longer splits out -core; exclude it -->
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mockito</groupId>
                        <artifactId>mockito-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>servlet-api-2.5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>net.java.dev.jets3t</groupId>
                        <artifactId>jets3t</artifactId>
                    </exclusion>
                    <!-- Hadoop-3.2 -->
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-webapp</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>io.netty</artifactId>
                        <groupId>netty</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>servlet-api</artifactId>
                        <groupId>javax.servlet</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-auth</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-core</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-api</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jdk.tools</groupId>
                        <artifactId>jdk.tools</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-common</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.jersey-test-framework</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-yarn-client</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>servlet-api</artifactId>
                        <groupId>javax.servlet</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jetty-util</artifactId>
                        <groupId>org.mortbay.jetty</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>log4j</artifactId>
                        <groupId>log4j</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>log4j</artifactId>
                        <groupId>log4j</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jline</groupId>
                        <artifactId>jline</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-native-epoll</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>${cglib.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-bom</artifactId>
                <version>${asm-bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

   <dependencies>
       <!-- Test -->
       <dependency>
           <groupId>org.junit.jupiter</groupId>
           <artifactId>junit-jupiter</artifactId>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.junit.platform</groupId>
           <artifactId>junit-platform-launcher</artifactId>
           <scope>test</scope>
       </dependency>

       <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-core</artifactId>
           <version>${mockito.version}</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-inline</artifactId>
           <version>${mockito.version}</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.mockito</groupId>
           <artifactId>mockito-junit-jupiter</artifactId>
           <version>${mockito.version}</version>
           <scope>test</scope>
       </dependency>

       <dependency>
           <groupId>org.assertj</groupId>
           <artifactId>assertj-core</artifactId>
           <version>${assertj.version}</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <exclusions>
               <exclusion>
                   <!-- The module is compatible with junit4 and junit 5, this example uses junit5 directly-->
                   <groupId>org.junit.vintage</groupId>
                   <artifactId>junit-vintage-engine</artifactId>
               </exclusion>
               <exclusion>
                   <artifactId>spring-boot-starter-logging</artifactId>
                   <groupId>org.springframework.boot</groupId>
               </exclusion>
           </exclusions>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>com.h2database</groupId>
           <artifactId>h2</artifactId>
           <version>${h2.version}</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-data-jpa</artifactId>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <scope>test</scope>
       </dependency>
   </dependencies>

    <profiles>
        <!-- jacoco: mvn validate -Pjacoco  -->
        <profile>
            <id>jacoco</id>
            <properties>
                <jacoco.skip>false</jacoco.skip>
            </properties>
        </profile>
        <!-- check apache license: mvn validate -Prat  -->
        <profile>
            <id>rat</id>
            <properties>
                <rat.skip>false</rat.skip>
            </properties>
        </profile>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.1.0</version>
                        <configuration>
                            <attach>true</attach>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-source-jar</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                    <goal>test-jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>3.0.0-M1</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.0.1</version>
                       <configuration>
                           <doclint>none</doclint>
                       </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.5</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>


    <build>
       <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.7</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>1.4.1</version>
                    <executions>
                        <execution>
                            <id>enforce-versions</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireMavenVersion>
                                        <version>${maven.version}</version>
                                    </requireMavenVersion>
                                    <requireJavaVersion>
                                        <version>${java.version}</version>
                                    </requireJavaVersion>
                                    <bannedDependencies>
                                        <excludes>
                                            <exclude>org.jboss.netty</exclude>
                                        </excludes>
                                        <searchTransitive>true</searchTransitive>
                                    </bannedDependencies>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.5.1</version>
                    <configuration>
                        <source>${jdk.compile.version}</source>
                        <target>${jdk.compile.version}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.3</version>
                </plugin>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.2</version>
                    <executions>
                        <execution>
                            <id>eclipse-add-source</id>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>scala-compile-first</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>scala-test-compile-first</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <scalaVersion>${scala.version}</scalaVersion>
                        <recompileMode>incremental</recompileMode>
                        <useZincServer>true</useZincServer>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.6</version>
                </plugin>

                <!--mvn apache-rat:check-->
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>${apache-rat-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>rat-validate</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <excludes>
                            <exclude>**/*.versionsBackup</exclude>
                            <exclude>**/.idea/</exclude>
                            <exclude>**/*.iml</exclude>
                            <exclude>**/*.txt</exclude>
                            <exclude>**/*.json</exclude>
                            <exclude>web/.editorconfig</exclude>
                            <exclude>web/.env</exclude>
                            <exclude>web/.eslintignore</exclude>
                            <exclude>web/.jshintrc</exclude>

                            <exclude>web/public/favicon.ico</exclude>
                            <exclude>web/dist/**</exclude>
                            <exclude>web/node_modules/**</exclude>
                            <exclude>web/apache-linkis-*-web-bin.tar.gz</exclude>

                            <exclude>**/*.md</exclude>
                            <exclude>.git/</exclude>
                            <exclude>.gitignore</exclude>
                            <exclude>**/.settings/*</exclude>
                            <exclude>**/.classpath</exclude>
                            <exclude>**/.project</exclude>
                            <exclude>**/target/**</exclude>
                            <exclude>**/out/**</exclude>
                            <exclude>**/*.log</exclude>
                            <exclude>CONTRIBUTING.md</exclude>
                            <exclude>CONTRIBUTING_CN.md</exclude>
                            <exclude>DISCLAIMER</exclude>
                            <exclude>DISCLAIMER</exclude>
                            <exclude>README.md</exclude>
                            <exclude>**/META-INF/**</exclude>
                            <exclude>.github/**</exclude>
                            <exclude>compiler/**</exclude>
                            <exclude>**/generated/**</exclude>
                        </excludes>
                    </configuration>
                </plugin>


                <!--mvn license:add-third-party-->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>2.0.0</version>
                    <executions>
                        <execution>
                            <id>license-check</id>
                            <configuration>
                                <!--<includedScopes>compile</includedScopes>-->
                                <licenseMerges>
                                    <licenseMerge>Apache License, Version 2.0|ASF 2.0|Apache 2.0 License|Apache 2.0|Apache 2|Apache License 2.0|Apache License Version 2.0|Apache License Version 2|Apache License v2.0|Apache License|Apache Public License 2.0|Apache Software License - Version 2.0|Apache v2|Apache-2.0|Apache_2_0_license
                                        Apache|The Apache License, Version 2.0|The Apache Software License, Version 2.0|</licenseMerge>
                                    <licenseMerge>MIT License|The MIT License</licenseMerge>
                                    <licenseMerge>The 3-Clause BSD License|BSD-3-Clause|BSD 3-Clause|New BSD License|BSD 3-Clause License|BSD|3-Clause BSD License|New BSD license|The New BSD License|The BSD 3-Clause License</licenseMerge>
                                    <licenseMerge>The 2-Clause BSD License|BSD-2-Clause|The BSD License|BSD License</licenseMerge>
                                    <licenseMerge>Mozilla Public License Version 1.1|MPL 1.1</licenseMerge>
                                    <licenseMerge>CDDL_1.0|CDDL 1.0</licenseMerge>
                                    <licenseMerge>CDDL_1.0|COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</licenseMerge>
                                    <licenseMerge>CDDL_1.0|Common_Development_and_Distribution_License_(CDDL)_v1_0</licenseMerge>
                                    <licenseMerge>CDDL_1.0|Common Development and Distribution License (CDDL) v1.0</licenseMerge>
                                    <licenseMerge>CDDL_1.0|CDDL 1.0 license</licenseMerge>
                                    <licenseMerge>CDDL_1.0|CDDL 2</licenseMerge>
                                    <licenseMerge>Eclipse Public License-1|Common_Public_License_Version_1_0</licenseMerge>
                                    <licenseMerge>Eclipse Public License-1|Eclipse_Public_License_-_Version_1_0</licenseMerge>
                                    <licenseMerge>Eclipse Public License-1|EPL 1.0 license</licenseMerge>

                                    <licenseMerge>GPL|GNU General Public Library</licenseMerge>
                                </licenseMerges>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.scalastyle</groupId>
                    <artifactId>scalastyle-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <verbose>false</verbose>
                        <failOnViolation>true</failOnViolation>
                        <includeTestSourceDirectory>false</includeTestSourceDirectory>
                        <failOnWarning>false</failOnWarning>
                        <sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
                        <testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
                        <configLocation>scalastyle-config.xml</configLocation>
                        <outputFile>${basedir}/target/scalastyle-output.xml</outputFile>
                        <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
                        <!--   <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>-->
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.diffplug.spotless</groupId>
                    <artifactId>spotless-maven-plugin</artifactId>
                    <version>${spotless.version}</version>
                    <configuration>
                        <java>
                            <googleJavaFormat>
                                <version>1.7</version>
                                <style>AOSP</style>
                            </googleJavaFormat>

                            <!-- \# refers to the static imports -->
                            <importOrder>
                                <order>org.apache.linkis,org.apache,org.springframework,javax,java,scala,\#</order>
                            </importOrder>

                            <removeUnusedImports />
                        </java>
                    </configuration>
                    <executions>
                        <execution>
                            <id>spotless-check</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.0.0-M4</version>
                    <configuration>
                        <forkCount>3</forkCount>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>