<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.7.1-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}/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}/mso-cnf-adapter</name>
              <build>
                <cleanup>try</cleanup>
                <dockerFile>docker-files/Dockerfile.mso-cnf-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-cnf-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-oof-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-oof-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>
            <image>
              <name>${docker.image.prefix}/so-etsi-nfvo-ns-lcm</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.etsi.nfvo:so-etsi-nfvo-ns-lcm-application</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,${docker.image.prefix}/so-oof-adapter,${docker.image.prefix}/mso-cnf-adapter,${docker.image.prefix}/so-etsi-nfvo-ns-lcm</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>mso-catalog-db-adapter</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.onap.so.adapters</groupId>
      <artifactId>mso-cnf-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>mso-oof-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>
    <dependency>
      <groupId>org.onap.so.etsi.nfvo</groupId>
      <artifactId>so-etsi-nfvo-ns-lcm-application</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
