<?xml version="1.0" encoding="utf-8"?>
<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.ibm.research.kar</groupId>
    <artifactId>kar-java</artifactId>
    <version>0.5.1</version>
  </parent>

  <artifactId>kar-actor-runtime</artifactId>
  <packaging>jar</packaging>

  <name>kar-rest-client</name>
  <description>KAR Java SDK actor runtime</description>

  <properties>
    <version.maven-jar-plugin>3.2.0</version.maven-jar-plugin>
    <version.maven-compiler-plugin>3.8.1</version.maven-compiler-plugin>
    <version.microprofile>3.3</version.microprofile>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
    <quarkus.platform.version>1.8.1.Final</quarkus.platform.version>
    <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
    <quarkus-plugin.version>1.8.1.Final</quarkus-plugin.version>
    <version.maven-compiler-plugin>3.8.1</version.maven-compiler-plugin>
    <version.java-compiler>11</version.java-compiler>
    <surefire-plugin.version>2.22.1</surefire-plugin.version>
    <version.java-compiler>11</version.java-compiler>
    <jandex-plugin.version>1.0.8</jandex-plugin.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>kar-rest-client</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>openliberty</id>
      <activation>
	<property>
	  <name>!env.QUARKUS_VERSION</name>
	</property>
      </activation>
      <dependencies>
	<!-- Provided dependencies -->
	<dependency>
	  <groupId>javax</groupId>
	  <artifactId>javaee-api</artifactId>
	  <version>8.0</version>
	  <scope>provided</scope>
	</dependency>
	<dependency>
	  <groupId>org.eclipse.microprofile</groupId>
	  <!-- tag::microprofile[] -->
	  <artifactId>microprofile</artifactId>
	  <!-- end::microprofile[] -->
	  <version>${version.microprofile}</version>
	  <type>pom</type>
	  <scope>provided</scope>
	</dependency>
      </dependencies>
      <build>
	<finalName>${project.artifactId}-liberty-${project.version}</finalName>
	<plugins>
	  <plugin>
	    <groupId>org.apache.maven.plugins</groupId>
	    <artifactId>maven-compiler-plugin</artifactId>
	    <version>${version.maven-compiler-plugin}</version>
	    <configuration>
	      <release>${version.java-compiler}</release>
	      <excludes>
		<exclude>com/ibm/research/kar/actor/runtime/quarkus/**</exclude>
	      </excludes>
	    </configuration>
	  </plugin>
	  <plugin>
	    <artifactId>maven-jar-plugin</artifactId>
	    <version>${version.maven-jar-plugin}</version>
	  </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
	    <configuration>
              <!-- exclude packages that are not included in this profile -->
	      <excludePackageNames>com.ibm.research.kar.actor.runtime.quarkus</excludePackageNames>
	    </configuration>
          </plugin>
	</plugins>
      </build>
    </profile>
    <profile>
      <id>quarkus</id>
      <dependencyManagement>
	<dependencies>
	  <dependency>
	    <groupId>${quarkus.platform.group-id}</groupId>
	    <artifactId>${quarkus.platform.artifact-id}</artifactId>
	    <version>${quarkus.platform.version}</version>
	    <type>pom</type>
	    <scope>import</scope>
	  </dependency>
	</dependencies>
      </dependencyManagement>
      <dependencies>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-arc</artifactId>
	  <scope>provided</scope>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-resteasy</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-resteasy-jsonb</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-undertow</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-rest-client</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-rest-client-jsonb</artifactId>
	</dependency>
	<dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>kar-rest-client</artifactId>
          <version>${project.version}</version>
	</dependency>
      </dependencies>
      <build>
	<finalName>${project.artifactId}-quarkus-${project.version}</finalName>
	<plugins>
	  <plugin>
	    <groupId>org.jboss.jandex</groupId>
	    <artifactId>jandex-maven-plugin</artifactId>
	    <version>${jandex-plugin.version}</version>
	    <executions>
	      <execution>
		<id>make-index</id>
		<goals>
		  <goal>jandex</goal>
		</goals>
	      </execution>
	    </executions>
	  </plugin>
	  <plugin>
	    <groupId>io.quarkus</groupId>
	    <artifactId>quarkus-maven-plugin</artifactId>
	    <version>${quarkus-plugin.version}</version>
	    <executions>
	      <execution>
		<goals>
		  <goal>build</goal>
		  <goal>generate-code</goal>
		  <goal>generate-code-tests</goal>
		</goals>
	      </execution>
	    </executions>
	  </plugin>
	  <plugin>
	    <artifactId>maven-compiler-plugin</artifactId>
	    <version>${version.maven-compiler-plugin}</version>
	    <configuration>
	      <release>${version.java-compiler}</release>
	      <excludes>
		<exclude>com/ibm/research/kar/actor/runtime/ActorManagerImpl.java</exclude>
	      </excludes>
	    </configuration>
	  </plugin>
	  <plugin>
	    <artifactId>maven-surefire-plugin</artifactId>
	    <version>${surefire-plugin.version}</version>
	    <configuration>
	      <systemPropertyVariables>
		<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
		<maven.home>${maven.home}</maven.home>
	      </systemPropertyVariables>
	    </configuration>
	  </plugin>
	</plugins>
      </build>
    </profile>
    <profile>
      <id>native</id>
      <activation>
	<property>
	  <name>native</name>
	</property>
      </activation>
      <dependencyManagement>
	<dependencies>
	  <dependency>
	    <groupId>${quarkus.platform.group-id}</groupId>
	    <artifactId>${quarkus.platform.artifact-id}</artifactId>
	    <version>${quarkus.platform.version}</version>
	    <type>pom</type>
	    <scope>import</scope>
	  </dependency>
	</dependencies>
      </dependencyManagement>
      <dependencies>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-arc</artifactId>
	  <scope>provided</scope>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-resteasy</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-resteasy-jsonb</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-undertow</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-rest-client</artifactId>
	</dependency>
	<dependency>
	  <groupId>io.quarkus</groupId>
	  <artifactId>quarkus-rest-client-jsonb</artifactId>
	</dependency>
	<dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>kar-rest-client</artifactId>
          <version>${project.version}</version>
	</dependency>
      </dependencies>
      <build>
	<finalName>${project.artifactId}-native-${project.version}</finalName>
	<plugins>
	  <plugin>
	    <groupId>org.jboss.jandex</groupId>
	    <artifactId>jandex-maven-plugin</artifactId>
	    <version>${jandex-plugin.version}</version>
	    <executions>
	      <execution>
		<id>make-index</id>
		<goals>
		  <goal>jandex</goal>
		</goals>
	      </execution>
	    </executions>
	  </plugin>
	  <plugin>
	    <groupId>io.quarkus</groupId>
	    <artifactId>quarkus-maven-plugin</artifactId>
	    <version>${quarkus-plugin.version}</version>
	    <executions>
	      <execution>
		<goals>
		  <goal>build</goal>
		  <goal>generate-code</goal>
		  <goal>generate-code-tests</goal>
		</goals>
	      </execution>
	    </executions>
	  </plugin>
	  <plugin>
	    <artifactId>maven-compiler-plugin</artifactId>
	    <version>${version.maven-compiler-plugin}</version>
	    <configuration>
	      <release>${version.java-compiler}</release>
	      <excludes>
		<exclude>com/ibm/research/kar/actor/runtime/ActorManagerImpl.java</exclude>
	      </excludes>
	    </configuration>
	  </plugin>
	  <plugin>
	    <artifactId>maven-surefire-plugin</artifactId>
	    <version>${surefire-plugin.version}</version>
	    <configuration>
	      <systemPropertyVariables>
		<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
		<maven.home>${maven.home}</maven.home>
	      </systemPropertyVariables>
	    </configuration>
	  </plugin>
	</plugins>
      </build>
      <properties>
	<quarkus.package.type>native</quarkus.package.type>
      </properties>
    </profile>
  </profiles>
</project>
