<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.normation.plugins</groupId>
  <artifactId>plugins-parent</artifactId>
  <packaging>pom</packaging>
  <!--
    This is the plugin-parent pom version. plugin will have a different one.
  -->
  <version>8.3.9-2.1.1</version>

  <parent>
    <groupId>com.normation.rudder</groupId>
    <artifactId>rudder-parent</artifactId>
    <!-- here, we can't use 8.3.9-SNAPSHOT because of maven limitation-->
    <version>8.3.9-SNAPSHOT</version>
  </parent>

  <description>
    This pom define common resources and build process for all
    plugins.
  </description>

  <licenses>
    <license>
      <name> GPL-3.0-only</name>
      <url>https://www.gnu.org/licenses/gpl-3.0.txt</url>
    </license>
  </licenses>

  <properties>
    <!-- the destination path for build.conf. By default ${project.artifactId} but may be
         overridden in children project if needed (for ex if names is not a valid class name)
    -->
    <destDirectory>${project.artifactId}</destDirectory>
  </properties>

  <build>
    <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
          <files>
            <file>${project.basedir}/../main-build.conf</file>
            <file>${project.basedir}/build.conf</file>
          </files>
        </configuration>
        <executions>
          <execution>
            <!-- first phase available, to have properties always defined -->
            <phase>validate</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>copy-build-conf</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <!-- we want to copy the build.conf in the plugin own package to allow
                   unique identification of build.conf when several plugins presents.
                   So build.conf is at the root of "basePackage"
               -->
              <outputDirectory>target/classes/com/normation/plugins/${destDirectory}</outputDirectory>
              <resources>
                <resource>
                  <directory>.</directory>
                  <includes><include>build.conf</include></includes>
                  <filtering>true</filtering>
                </resource>
                <resource>
                  <directory>..</directory>
                  <includes><include>main-build.conf</include></includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-metadata</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target</outputDirectory>
              <resources>
                <resource>
                  <directory>packaging</directory>
                  <includes><include>metadata</include></includes>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
          <!-- copy elm stuff -->
          <execution>
            <id>copy-elm-toserve</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>target/classes/toserve/${destDirectory}</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/elm/generated</directory>
                  <includes>
                    <include>*.css</include>
                    <include>*.js</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <id>compile-elm-application</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>src/main/build.sh</executable>
              <commandlineArgs>--release</commandlineArgs>
            </configuration>
          </execution>


          <execution>
            <id>elm-review</id>
            <phase>test</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>npx</executable>
              <workingDirectory>src/main/elm</workingDirectory>
              <commandlineArgs>elm-review</commandlineArgs>
            </configuration>
          </execution>


        
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.6.0</version>
        <configuration>
          <finalName>${project.artifactId}-${project.version}-jar-with-dependencies</finalName>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- formatting with scalafmt -->
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>2.27.2</version>
        <configuration>
          <scala>
            <includes>
              <include>src/**/*.scala</include>
            </includes>
            <excludes>
            </excludes>

            <scalafmt>
              <!-- version is inherited from rudder parent pom -->
              <file>../.scalafmt.conf</file>
            </scalafmt>
          </scala>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase> <!-- verify: default value -->
          </execution>
        </executions>
      </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <scala>
            <scalafmt>
              <file>../.scalafmt.conf</file>
            </scalafmt>
          </scala>
        </configuration>
        <executions>
          <execution>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <!-- We need to specify that dependencies coming from parent are provided (they are by rudder-web) -->
  <dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.normation.plugins</groupId>
      <artifactId>plugins-common-private</artifactId>
      <version>8.3.9-2.1.0</version>
    </dependency>
    <!--
      dependencyManagement with subprojects is a joke in maven. It mostly not work. https://issues.apache.org/jira/browse/MNG-5761
      It's still the "best" available way to fix dependencies, but it needs to be copy/pasted at all level.
    -->
    <!-- from rudder-web: use:
    mvn dependency:resolve | grep "compile\|provided" | awk '{print $2}' | \
     awk -F':' '{print "<dependency><groupId>"$1"</groupId><artifactId>"$2"</artifactId><scope>provided</scope></dependency>"}' | sort -u

     We need to add by hand version of lib that also come via transitive dependencies, because they are lost.
     Ideally, that section should be provided by a project in Rudder with a script to autogenerate it, name it "rudder-libs-bom", and
     be imported in each plugin project.
    -->
    <dependency><groupId>antlr</groupId><artifactId>antlr</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>ca.mrvisser</groupId><artifactId>sealerate_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><scope>provided</scope><version>${logback-version}</version></dependency>
    <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><scope>provided</scope><version>${logback-version}</version></dependency>
    <dependency><groupId>co.fs2</groupId><artifactId>fs2-core_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>co.fs2</groupId><artifactId>fs2-io_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.beachape</groupId><artifactId>enumeratum_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.beachape</groupId><artifactId>enumeratum-macros_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.comcast</groupId><artifactId>ip4s-core_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.github.alonsodomin.cron4s</groupId><artifactId>cron4s-core_${scala-binary-version}</artifactId><scope>provided</scope><version>${cron4s-version}</version></dependency>
    <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><scope>provided</scope><version>${caffeine-version}</version></dependency>
    <dependency><groupId>com.github.pathikrit</groupId><artifactId>better-files_${scala-binary-version}</artifactId><scope>provided</scope><version>${better-files-version}</version></dependency>
    <dependency><groupId>com.github.seancfoley</groupId><artifactId>ipaddress</artifactId><scope>provided</scope><version>${ipaddress-version}</version></dependency>
    <dependency><groupId>com.google.code.findbugs</groupId><artifactId>jsr305</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.googlecode.javaewah</groupId><artifactId>JavaEWAH</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.google.errorprone</groupId><artifactId>error_prone_annotations</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.ibm.icu</groupId><artifactId>icu4j</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.jayway.jsonpath</groupId><artifactId>json-path</artifactId><scope>provided</scope><version>${json-path-version}</version></dependency>
    <dependency><groupId>com.lihaoyi</groupId><artifactId>fastparse_${scala-binary-version}</artifactId><scope>provided</scope><version>${fastparse-version}</version></dependency>
    <dependency><groupId>com.lihaoyi</groupId><artifactId>geny_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.lihaoyi</groupId><artifactId>sourcecode_${scala-binary-version}</artifactId><scope>provided</scope><version>${sourcecode-version}</version></dependency>
    <dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><scope>provided</scope><version>${commons-codec-version}</version></dependency>
    <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><scope>provided</scope><version>${commons-fileupload}</version></dependency>
    <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><scope>provided</scope><version>${commons-io-version}</version></dependency>
    <dependency><groupId>com.normation</groupId><artifactId>scala-ldap</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation</groupId><artifactId>utils</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.inventory</groupId><artifactId>inventory-api</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.inventory</groupId><artifactId>inventory-fusion</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.inventory</groupId><artifactId>inventory-provisioning-core</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.inventory</groupId><artifactId>inventory-repository</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.rudder</groupId><artifactId>rudder-core</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.rudder</groupId><artifactId>rudder-rest</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.normation.rudder</groupId><artifactId>rudder-templates</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.softwaremill.magnolia1_2</groupId><artifactId>magnolia_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.softwaremill.quicklens</groupId><artifactId>quicklens_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.thoughtworks.paranamer</groupId><artifactId>paranamer</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>com.typesafe</groupId><artifactId>config</artifactId><scope>provided</scope><version>${config-version}</version></dependency>
    <dependency><groupId>com.unboundid</groupId><artifactId>unboundid-ldapsdk</artifactId><scope>provided</scope><version>${unboundid-version}</version></dependency>
    <dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><scope>provided</scope><version>${hikaricp-version}</version></dependency>
    <dependency><groupId>com.zaxxer</groupId><artifactId>nuprocess</artifactId><scope>provided</scope><version>${nuprocess-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>izumi-reflect_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>izumi-reflect-thirdparty-boopickle-shaded_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio_${scala-binary-version}</artifactId><scope>provided</scope><version>${dev-zio-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-concurrent_${scala-binary-version}</artifactId><scope>provided</scope><version>${dev-zio-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-internal-macros_${scala-binary-version}</artifactId><scope>provided</scope><version>${dev-zio-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-interop-cats_${scala-binary-version}</artifactId><scope>provided</scope><version>${zio-cats-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-interop-tracer_${scala-binary-version}</artifactId><scope>provided</scope><version>${zio-cats-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-json_${scala-binary-version}</artifactId><scope>provided</scope><version>${zio-json-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-json-yaml_${scala-binary-version}</artifactId><scope>provided</scope><version>${zio-json-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-stacktracer_${scala-binary-version}</artifactId><scope>provided</scope><version>${dev-zio-version}</version></dependency>
    <dependency><groupId>dev.zio</groupId><artifactId>zio-streams_${scala-binary-version}</artifactId><scope>provided</scope><version>${dev-zio-version}</version></dependency>
    <dependency><groupId>io.github.java-diff-utils</groupId><artifactId>java-diff-utils</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>io.scalaland</groupId><artifactId>chimney_${scala-binary-version}</artifactId><scope>provided</scope><version>${chimney-version}</version></dependency>
    <dependency><groupId>io.scalaland</groupId><artifactId>chimney-macro-commons_${scala-version}</artifactId><scope>provided</scope><version>${chimney-version}</version></dependency>
    <dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><scope>provided</scope><version>${servlet-version}</version></dependency>
    <dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><scope>provided</scope><version>${jodatime-version}</version></dependency>
    <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-actor_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-common_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-json_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-json-ext_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-markdown_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-util_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.liftweb</groupId><artifactId>lift-webkit_${scala-binary-version}</artifactId><scope>provided</scope><version>${lift-version}</version></dependency>
    <dependency><groupId>net.minidev</groupId><artifactId>accessors-smart</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>net.minidev</groupId><artifactId>json-smart</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>nu.validator</groupId><artifactId>htmlparser</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.antlr</groupId><artifactId>stringtemplate</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.bouncycastle</groupId><artifactId>bcpkix-${bouncycastle-compat}</artifactId><scope>provided</scope><version>${bouncycastle-version}</version></dependency>
    <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-${bouncycastle-compat}</artifactId><scope>provided</scope><version>${bouncycastle-version}</version></dependency>
    <dependency><groupId>org.bouncycastle</groupId><artifactId>bcutil-${bouncycastle-compat}</artifactId><scope>provided</scope><version>${bouncycastle-version}</version></dependency>
    <dependency><groupId>org.codehaus.janino</groupId><artifactId>janino</artifactId><scope>provided</scope><version>${janino-version}</version></dependency>
    <dependency><groupId>org.checkerframework</groupId><artifactId>checker-qual</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.eclipse.jgit</groupId><artifactId>org.eclipse.jgit</artifactId><scope>provided</scope><version>${jgit-version}</version></dependency>
    <dependency><groupId>org.graalvm.js</groupId><artifactId>js-language</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.js</groupId><artifactId>js-scriptengine</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.polyglot</groupId><artifactId>polyglot</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.regex</groupId><artifactId>regex</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.sdk</groupId><artifactId>collections</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.sdk</groupId><artifactId>nativeimage</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.sdk</groupId><artifactId>word</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.shadowed</groupId><artifactId>icu4j</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.graalvm.truffle</groupId><artifactId>truffle-api</artifactId><scope>provided</scope><version>${graalvm-version}</version></dependency>
    <dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.jgrapht</groupId><artifactId>jgrapht-core</artifactId><scope>provided</scope><version>${jgrapht-version}</version></dependency>
    <dependency><groupId>org.jheaps</groupId><artifactId>jheaps</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.jline</groupId><artifactId>jline</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.joda</groupId><artifactId>joda-convert</artifactId><scope>provided</scope><version>${jodaconvert-version}</version></dependency>
    <dependency><groupId>org.mindrot</groupId><artifactId>jbcrypt</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.mozilla</groupId><artifactId>rhino</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.ow2.asm</groupId><artifactId>asm</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>provided</scope><version>${postgresql-version}</version></dependency>
    <dependency><groupId>org.reflections</groupId><artifactId>reflections</artifactId><scope>provided</scope><version>${reflections-version}</version></dependency>
    <dependency><groupId>org.scalaj</groupId><artifactId>scalaj-http_${scala-binary-version}</artifactId><scope>provided</scope><version>${scalaj-version}</version></dependency>
    <dependency><groupId>org.scala-lang</groupId><artifactId>scala-compiler</artifactId><scope>provided</scope><version>${scala-version}</version></dependency>
    <dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><scope>provided</scope><version>${scala-version}</version></dependency>
    <dependency><groupId>org.scala-lang</groupId><artifactId>scalap</artifactId><scope>provided</scope><version>${scala-version}</version></dependency>
    <dependency><groupId>org.scala-lang</groupId><artifactId>scala-reflect</artifactId><scope>provided</scope><version>${scala-version}</version></dependency>
    <dependency><groupId>org.scala-lang.modules</groupId><artifactId>scala-collection-compat_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.scala-lang.modules</groupId><artifactId>scala-parallel-collections_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.scala-lang.modules</groupId><artifactId>scala-parser-combinators_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.scala-lang.modules</groupId><artifactId>scala-xml_${scala-binary-version}</artifactId><scope>provided</scope><version>${scala-xml-version}</version></dependency>
    <dependency><groupId>org.scodec</groupId><artifactId>scodec-bits_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><scope>provided</scope><version>${slf4j-version}</version></dependency>
    <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><scope>provided</scope><version>${slf4j-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-jcl</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><scope>provided</scope><version>${spring-version}</version></dependency>
    <dependency><groupId>org.springframework.ldap</groupId><artifactId>spring-ldap-core</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><scope>provided</scope><version>${spring-security-version}</version></dependency>
    <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><scope>provided</scope><version>${spring-security-version}</version></dependency>
    <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-crypto</artifactId><scope>provided</scope><version>${spring-security-version}</version></dependency>
    <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-ldap</artifactId><scope>provided</scope><version>${spring-security-version}</version></dependency>
    <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><scope>provided</scope><version>${spring-security-version}</version></dependency>
    <dependency><groupId>org.tpolecat</groupId><artifactId>doobie-core_${scala-binary-version}</artifactId><scope>provided</scope><version>${doobie-version}</version></dependency>
    <dependency><groupId>org.tpolecat</groupId><artifactId>doobie-free_${scala-binary-version}</artifactId><scope>provided</scope><version>${doobie-version}</version></dependency>
    <dependency><groupId>org.tpolecat</groupId><artifactId>doobie-postgres_${scala-binary-version}</artifactId><scope>provided</scope><version>${doobie-version}</version></dependency>
    <dependency><groupId>org.tpolecat</groupId><artifactId>typename_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-core_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-effect_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-effect-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-effect-kernel_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-effect-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-effect-std_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-effect-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-free_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>cats-kernel_${scala-binary-version}</artifactId><scope>provided</scope><version>${cats-version}</version></dependency>
    <dependency><groupId>org.typelevel</groupId><artifactId>literally_${scala-binary-version}</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>xerces</groupId><artifactId>xercesImpl</artifactId><scope>provided</scope></dependency>
    <dependency><groupId>xml-apis</groupId><artifactId>xml-apis</artifactId><scope>provided</scope></dependency>
  </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- this one is needed else overridden by lift trans dep. Really. Don't remove it. -->

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

    <dependency>
      <groupId>com.normation.rudder</groupId>
      <artifactId>rudder-web</artifactId>
      <version>8.3.9-SNAPSHOT</version>
      <!-- this is needed as rudder-web is a war - its classes are packaged with "-classes" appended -->
      <classifier>classes</classifier>
      <scope>provided</scope>
    </dependency>

    <!-- Test: rudder -->
    <dependency>
      <groupId>com.normation.rudder</groupId>
      <artifactId>rudder-core</artifactId>
      <version>8.3.9-SNAPSHOT</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.normation.rudder</groupId>
      <artifactId>rudder-rest</artifactId>
      <version>8.3.9-SNAPSHOT</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.normation.rudder</groupId>
      <artifactId>rudder-web</artifactId>
      <version>8.3.9-SNAPSHOT</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <!--
      Aaaannnnd maven is horrible, so we need to put back needed dependencies, see:
      https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html
      Perhaps it's time to quit maven.
     -->
     <!-- Testing Liftweb -->
    <dependency>
      <groupId>net.liftweb</groupId>
      <artifactId>lift-testkit_${scala-binary-version}</artifactId>
      <version>${lift-version}</version>
      <scope>test</scope>
    </dependency>
    <!-- YAML parser, for REST API test -->

  </dependencies>

  <repositories>
    <repository>
      <id>rudder-release</id>
      <url>https://repository.rudder.io/maven/releases/</url>
      <layout>default</layout>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
      <id>rudder-snapshot</id>
      <url>https://repository.rudder.io/maven/snapshots/</url>
      <layout>default</layout>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>


  <!-- In the general case, we don't want to build module plugins-common-private
       as it depends on rudder internal repository
  -->
  <profiles>
    <profile>
      <id>internal-limited</id>
      <activation>
        <!-- Activation via *presence* of a system property to ensure mutual exclusivity
             of this profile with internal-default -->
        <property><name>limited</name></property>
      </activation>
      <modules>
        <module>plugins-common-private</module>
      </modules>
    </profile>
  </profiles>

</project>
