<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>io.apiman</groupId>
    <artifactId>apiman-distro</artifactId>
    <version>2.2.2.Final</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <artifactId>apiman-distro-wildfly</artifactId>
  <packaging>pom</packaging>
  <name>apiman-distro-wildfly</name>

  <properties>
    <docker.wildfly.version>wildfly</docker.wildfly.version>
    <docker.base-image>quay.io/wildfly/wildfly:23.0.2.Final</docker.base-image>
    <docker.target-image-name>apiman/on-wildfly:latest</docker.target-image-name>
    <docker.target-image-name.alias>wildfly-master</docker.target-image-name.alias>
  </properties>

  <dependencies>
    <!-- Apiman WildFly WAR deps -->
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-manager-api-war-wildfly8</artifactId>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-manager-ui-war-wildfly8</artifactId>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-gateway-platforms-war-wildfly8-api</artifactId>
      <type>war</type>
    </dependency>
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-gateway-platforms-war-wildfly8-gateway</artifactId>
      <type>war</type>
    </dependency>

    <!-- Other apiman modules -->
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-gateway-engine-beans</artifactId>
    </dependency>
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-distro-data</artifactId>
    </dependency>
    <dependency>
      <groupId>io.apiman</groupId>
      <artifactId>apiman-distro-tools</artifactId>
      <version>${project.version}</version>
      <type>zip</type>
    </dependency><!-- Keycloak -->
    <dependency>
      <groupId>org.keycloak</groupId>
      <artifactId>keycloak-server-overlay</artifactId>
      <type>zip</type>
      <exclusions>
        <exclusion>
          <groupId>org.keycloak</groupId>
          <artifactId>keycloak-jboss-modules</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.keycloak</groupId>
          <artifactId>keycloak-server-feature-pack</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.keycloak</groupId>
      <artifactId>keycloak-wildfly-adapter-dist</artifactId>
      <version>${version.org.keycloak}</version>
      <type>zip</type>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.keycloak</groupId>
                  <artifactId>keycloak-server-overlay</artifactId>
                  <version>${version.org.keycloak}</version>
                  <type>zip</type>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/keycloak</outputDirectory>
                </artifactItem>
                <artifactItem>
                  <groupId>org.keycloak</groupId>
                  <artifactId>keycloak-wildfly-adapter-dist</artifactId>
                  <version>${version.org.keycloak}</version>
                  <type>zip</type>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/keycloak</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>overlay</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <attach>true</attach>
              <descriptors>
                <descriptor>src/main/assembly/overlay.xml</descriptor>
              </descriptors>
              <archiverConfig>
                <defaultDirectoryMode>0755</defaultDirectoryMode>
              </archiverConfig>
              <archiveBaseDirectory>${project.basedir}</archiveBaseDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
        <id>docker</id>
        <build>
          <plugins>
            <plugin>
              <groupId>io.fabric8</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>${version.docker.plugin}</version>
              <executions>
                <execution>
                  <id>docker-build</id>
                  <goals>
                    <goal>build</goal>
                  </goals>
                </execution>
              </executions>
              <configuration>
                <images>
                  <image>
                    <name>${docker.target-image-name}</name>
                    <alias>${docker.target-image-name.alias}</alias>
                    <build>
                      <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
                      <assembly>
                        <inline>
                          <fileSets>
                            <fileSet>
                              <includes>
                                <include>target/${project.artifactId}-${project.version}-overlay.zip</include>
                              </includes>
                              <outputDirectory></outputDirectory>
                              <filtered>false</filtered>
                              <directoryMode>0755</directoryMode>
                              <fileMode>0755</fileMode>
                            </fileSet>
                          </fileSets>
                        </inline>
                      </assembly>
                      <tags>
                        <tag>wildfly-master</tag>
                      </tags>
                    </build>
                    <run>
                      <ports>
                        <port>8080:8080</port>
                        <port>8443:8443</port>
                      </ports>
                    </run>
                  </image>
                </images>
              </configuration>
            </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
