<?xml version="1.0"?>
<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
<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>com.yahoo.vespa</groupId>
    <artifactId>parent</artifactId>
    <version>7.581.33</version>
    <relativePath>../parent/pom.xml</relativePath>
  </parent>
  <artifactId>container-disc</artifactId>
  <version>7.581.33</version>
  <packaging>container-plugin</packaging>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>testutil</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>config-lib</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>provided-dependencies</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>security-utils</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>component</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>container-apache-http-client-bundle</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>container-core</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>com.yahoo.vespa</groupId>
          <artifactId>config</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.bouncycastle</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>container-messagebus</artifactId>
      <version>${project.version}</version>
      <exclusions>
        <exclusion>
          <groupId>com.yahoo.vespa</groupId>
          <artifactId>config</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>vespajlib</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>vespalog</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>hosted-zone-api</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <!-- WARNING: These are only here to make bundlification work -->
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>config-bundle</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>configdefinitions</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.yahoo.vespa</groupId>
      <artifactId>jdisc_jetty</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <!-- end WARNING -->

    <!-- ensure that transitive Jackson dependencies are not included in compile scope -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>com.yahoo.vespa</groupId>
        <artifactId>config-class-plugin</artifactId>
        <version>${project.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>config-gen</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.yahoo.vespa</groupId>
        <artifactId>bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
            <discApplicationClass>com.yahoo.container.jdisc.ConfiguredApplication</discApplicationClass>
            <buildLegacyVespaPlatformBundle>true</buildLegacyVespaPlatformBundle>
            <discPreInstallBundle>
                <!-- Vespa bundles -->
                config-bundle-jar-with-dependencies.jar,
                configdefinitions-jar-with-dependencies.jar,
                container-search-and-docproc-jar-with-dependencies.jar,
                container-search-gui-jar-with-dependencies.jar,
                docprocs-jar-with-dependencies.jar,
                hosted-zone-api-jar-with-dependencies.jar,
                jdisc-security-filters-jar-with-dependencies.jar,
                linguistics-components-jar-with-dependencies.jar,
                vespaclient-container-plugin-jar-with-dependencies.jar,
                vespa-athenz-jar-with-dependencies.jar,
                container-apache-http-client-bundle-jar-with-dependencies.jar, <!-- Apache http client repackaged as bundle -->

                <!-- Vespa security utils with necessary 3rd party bundles -->
                security-utils.jar,
                bcpkix-jdk15on-${bouncycastle.version}.jar,
                bcprov-jdk15on-${bouncycastle.version}.jar,

               <!-- Jetty -->
                <!-- TODO Vespa 8: embed these in container-core/disc, saving a lot of dep management. -->
                <!--               Check if those listed in container-dep-versions are not used by hosted apps! -->
                alpn-api-${jetty-alpn.version}.jar,
                http2-server-${jetty.version}.jar,
                http2-common-${jetty.version}.jar,
                http2-hpack-${jetty.version}.jar,
                jetty-alpn-java-server-${jetty.version}.jar,
                jetty-alpn-server-${jetty.version}.jar,
                jetty-continuation-${jetty.version}.jar,
                jetty-http-${jetty.version}.jar,
                jetty-io-${jetty.version}.jar,
                jetty-jmx-${jetty.version}.jar,
                jetty-security-${jetty.version}.jar,
                jetty-server-${jetty.version}.jar,
                jetty-servlet-${jetty.version}.jar,
                jetty-servlets-${jetty.version}.jar,
                jetty-util-${jetty.version}.jar,
                jetty-util-ajax-${jetty.version}.jar,
                javax.servlet-api-3.1.0.jar,

                <!-- Spifly (required for OSGi service loader used by Jetty)  -->
                <!-- TODO: embed these in container-core/disc, not used across bundles -->
                org.apache.aries.spifly.dynamic.bundle-${spifly.version}.jar,
                asm-${asm.version}.jar,
                asm-analysis-${asm.version}.jar,
                asm-commons-${asm.version}.jar,
                asm-tree-${asm.version}.jar,
                asm-util-${asm.version}.jar,
                <!-- Spifly end -->

                <!-- Jersey 2 + Jackson 2 -->
                aopalliance-repackaged-${hk2.version}.jar,
                hk2-api-${hk2.version}.jar,
                hk2-locator-${hk2.version}.jar,
                hk2-utils-${hk2.version}.jar,
                jackson-annotations-${jackson2.version}.jar,
                jackson-core-${jackson2.version}.jar,
                jackson-databind-${jackson-databind.version}.jar,
                jackson-datatype-jdk8-${jackson2.version}.jar,
                jackson-datatype-jsr310-${jackson2.version}.jar,
                jackson-jaxrs-base-${jackson2.version}.jar,
                jackson-jaxrs-json-provider-${jackson2.version}.jar,
                jackson-module-jaxb-annotations-${jackson2.version}.jar,
                javassist-${javassist.version}.jar,
                javax.ws.rs-api-${javax.ws.rs-api.version}.jar,
                jersey-client-${jersey2.version}.jar,
                jersey-common-${jersey2.version}.jar,
                jersey-guava-${jersey2.version}.jar,
                jersey-server-${jersey2.version}.jar,
                osgi-resource-locator-1.0.1.jar,
                validation-api-1.1.0.Final.jar
                <!-- jersey2 end -->
            </discPreInstallBundle>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>com.yahoo.vespa</groupId>
        <artifactId>abi-check-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>validate</phase>
                <goals>
                  <goal>exec</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <executable>rm</executable>
              <workingDirectory>${project.build.directory}</workingDirectory>
              <arguments>
                <argument>-f</argument>
                <argument>generated-sources/vespa-configgen-plugin/com/yahoo/container/jdisc/JdiscBindingsConfig.java</argument>
              </arguments>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
