<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.6.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>
          <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}/vnfm-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:etsi-sol003-adapter-application</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/ve-vnfm-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:etsi-sol002-adapter</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </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}/vfc-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-vfc-adapter</include>
                        </includes>
                        <outputFileNameMapping>app.jar</outputFileNameMapping>
                      </dependencySet>
                    </dependencySets>
                  </inline>
                </assembly>
              </build>
            </image>
            <image>
              <name>${docker.image.prefix}/nssmf-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.so-nssmf-adapter</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-nssmf-adapter</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-monitoring</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.monitoring:so-monitoring-service</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}/vfc-adapter,${docker.image.prefix}/sdc-controller,${docker.image.prefix}/bpmn-infra,${docker.image.prefix}/api-handler-infra,${docker.image.prefix}/so-monitoring,${docker.image.prefix}/so-simulator,${docker.image.prefix}/mso-nssmf-adapter</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>etsi-sol003-adapter-application</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>etsi-sol002-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <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>mso-vfc-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>mso-nssmf-adapter</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.monitoring</groupId>
      <artifactId>so-monitoring-service</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.simulator</groupId>
      <artifactId>so-simulator</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
