<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.onap.so</groupId>
    <artifactId>packages</artifactId>
    <version>1.9.0-SNAPSHOT</version>
  </parent>

  <packaging>pom</packaging>
  <artifactId>docker</artifactId>
  <name>Docker Images</name>
  <description>Docker Images</description>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <so.project.version>${project.version}</so.project.version>
    <docker.skip>false</docker.skip>
    <docker.skip.build>false</docker.skip.build>
    <docker.skip.push>false</docker.skip.push>
    <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
    <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
    <docker.image.prefix>onap/so</docker.image.prefix>
    <docker.push.phase>deploy</docker.push.phase>
  </properties>

  <build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <plugins>
      <plugin>
        <groupId>org.codehaus.groovy.maven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                println 'Project version: ' + project.properties['so.project.version'];
                def versionArray;
                if ( project.properties['so.project.version'] != null ) {
                  versionArray = project.properties['so.project.version'].split('-');
                }

                if ( project.properties['so.project.version'].endsWith("-SNAPSHOT") ) {
                  project.properties['project.docker.latesttag.version']=versionArray[0] + "-SNAPSHOT-latest";
                } else {
                  project.properties['project.docker.latesttag.version']=versionArray[0] + "-STAGING-latest";
                }

                println 'New tag for docker: ' + project.properties['project.docker.latesttag.version'];
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>0.31.0</version>
        <configuration combine.self="override">
          <verbose>true</verbose>
          <apiVersion>1.23</apiVersion>
          <pullRegistry>${docker.pull.registry}</pullRegistry>
          <pushRegistry>${docker.push.registry}</pushRegistry>
          <images>
            <image>
              <name>${docker.image.prefix}/base-image:1.0</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-base-image</dockerFile>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/catalog-db-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so.adapters:mso-catalog-db-adapter</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/request-db-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so.adapters:mso-requests-db-adapter</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/sdnc-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so:mso-sdnc-adapter</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/openstack-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so:mso-openstack-adapters</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/so-appc-orchestrator</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so.adapters:so-appc-orchestrator</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/sdc-controller</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so:asdc-controller</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/bpmn-infra</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so:mso-infrastructure-bpmn</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/api-handler-infra</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so:mso-api-handler-infra</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/so-simulator</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-app</dockerFile>
                <tags>
                  <tag>${project.version}</tag>
                  <tag>${project.version}-${maven.build.timestamp}</tag>
                  <tag>${project.docker.latesttag.version}</tag>
                </tags>
                <assembly>
                  <inline>
                    <dependencySets>
                      <dependencySet>
                        <includes>
                          <include>org.onap.so.simulator:so-simulator</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
          </images>
        </configuration>

        <executions>
          <execution>
            <id>clean-images</id>
            <phase>pre-clean</phase>
            <goals>
              <goal>remove</goal>
            </goals>
            <configuration>
              <removeAll>true</removeAll>
            </configuration>
          </execution>

          <execution>
            <id>generate-images</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>

          <execution>
            <id>push-images</id>
            <phase>${docker.push.phase}</phase>
            <goals>
              <goal>build</goal>
              <goal>push</goal>
            </goals>
            <configuration>
              <image>${docker.image.prefix}/catalog-db-adapter,${docker.image.prefix}/request-db-adapter,${docker.image.prefix}/sdnc-adapter,${docker.image.prefix}/openstack-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-simulator</image>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8</version>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>mso-catalog-db-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>mso-requests-db-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>mso-sdnc-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>mso-openstack-adapters</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>so-appc-orchestrator</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>asdc-controller</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>mso-infrastructure-bpmn</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>mso-api-handler-infra</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.simulator</groupId>
      <artifactId>so-simulator</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
