small, multi-platform docker images
[dmaap/datarouter.git] / datarouter-prov / pom.xml
old mode 100644 (file)
new mode 100755 (executable)
index 07ddc84..44f70f5
@@ -3,13 +3,14 @@
   * org.onap.dmaap\r
   * ===========================================================================\r
   * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
+  * Modifications Copyright (C) 2018 Nokia. All rights reserved.\r
   * ===========================================================================\r
   * Licensed under the Apache License, Version 2.0 (the "License");\r
   * you may not use this file except in compliance with the License.\r
   * You may obtain a copy of the License at\r
-  * \r
+  *\r
    *      http://www.apache.org/licenses/LICENSE-2.0\r
-  * \r
+  *\r
    * Unless required by applicable law or agreed to in writing, software\r
   * distributed under the License is distributed on an "AS IS" BASIS,\r
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
@@ -25,7 +26,7 @@
     <parent>\r
         <groupId>org.onap.dmaap.datarouter</groupId>\r
         <artifactId>parent</artifactId>\r
-        <version>1.0.1-SNAPSHOT</version>\r
+        <version>2.0.2-SNAPSHOT</version>\r
         <relativePath>../pom.xml</relativePath>\r
     </parent>\r
     <artifactId>datarouter-prov</artifactId>\r
     <name>datarouter-prov</name>\r
     <url>https://github.com/att/DMAAP_DATAROUTER</url>\r
     <properties>\r
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r
-        <maven.compiler.source>1.8</maven.compiler.source>\r
-        <maven.compiler.target>1.8</maven.compiler.target>\r
-        <docker.location>${basedir}/target/</docker.location>\r
         <sonar.language>java</sonar.language>\r
         <sonar.skip>false</sonar.skip>\r
-        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>\r
-        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>\r
-        <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath>\r
-        <sonar.jacoco.itReportPath>${project.build.directory}/coverage-reports/jacoco-it.exec\r
-        </sonar.jacoco.itReportPath>\r
         <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>\r
-        <sonar.projectVersion>${project.version}</sonar.projectVersion>\r
-        <nexusproxy>https://nexus.onap.org</nexusproxy>\r
-        <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>\r
-        <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>\r
-        <stagingNexusPath>/content/repositories/staging/</stagingNexusPath>\r
         <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>\r
+\r
+        <docker.location>${basedir}/target/${artifactId}</docker.location>\r
+        <datarouter.prov.image.name>onap/dmaap/datarouter-prov</datarouter.prov.image.name>\r
+\r
+        <timestamp>${maven.build.timestamp}</timestamp>\r
+        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>\r
+\r
+        <docker.verbose>true</docker.verbose>\r
+        <docker.apiVersion>1.23</docker.apiVersion>\r
     </properties>\r
     <dependencies>\r
+        <dependency>\r
+            <groupId>xml-apis</groupId>\r
+            <artifactId>xml-apis</artifactId>\r
+            <version>${xml-apis.version}</version>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>org.dom4j</groupId>\r
+            <artifactId>dom4j</artifactId>\r
+            <version>${dom4j.version}</version>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>commons-codec</groupId>\r
+            <artifactId>commons-codec</artifactId>\r
+            <version>${commons-codec.version}</version>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>com.google.guava</groupId>\r
+            <artifactId>guava</artifactId>\r
+            <version>${google.guava.version}</version>\r
+        </dependency>\r
         <dependency>\r
             <groupId>ch.qos.logback</groupId>\r
             <artifactId>logback-classic</artifactId>\r
-            <version>1.2.0</version>\r
+            <version>${qos.logback.version}</version>\r
             <scope>compile</scope>\r
         </dependency>\r
         <dependency>\r
             <groupId>ch.qos.logback</groupId>\r
             <artifactId>logback-core</artifactId>\r
-            <version>1.2.0</version>\r
+            <version>${qos.logback.version}</version>\r
             <scope>compile</scope>\r
         </dependency>\r
         <dependency>\r
             <groupId>com.thoughtworks.xstream</groupId>\r
             <artifactId>xstream</artifactId>\r
-            <version>1.4.7</version>\r
+            <version>${thoughtworks.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.json</groupId>\r
         <dependency>\r
             <groupId>javax.mail</groupId>\r
             <artifactId>javax.mail-api</artifactId>\r
-            <version>1.5.1</version>\r
+            <version>${javax.mail-api.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>com.att.eelf</groupId>\r
             <artifactId>eelf-core</artifactId>\r
             <version>0.0.1</version>\r
         </dependency>\r
-        <dependency>\r
-            <groupId>javax.servlet</groupId>\r
-            <artifactId>servlet-api</artifactId>\r
-            <version>2.5</version>\r
-        </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-server</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-continuation</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-util</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-deploy</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-servlet</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-servlets</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-http</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-security</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-websocket</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.websocket.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty</groupId>\r
             <artifactId>jetty-io</artifactId>\r
-            <version>7.6.14.v20131031</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.apache.commons</groupId>\r
             <version>1.6.4</version>\r
             <scope>test</scope>\r
         </dependency>\r
-        <!--        <dependency><groupId>org.junit</groupId><artifactId>com.springsource.org.junit</artifactId><version>4.4.0</version></dependency>-->\r
         <dependency>\r
-            <groupId>mysql</groupId>\r
-            <artifactId>mysql-connector-java</artifactId>\r
-            <version>5.1.21</version>\r
+            <groupId>org.apache.commons</groupId>\r
+            <artifactId>commons-lang3</artifactId>\r
+            <version>3.0</version>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>org.mariadb.jdbc</groupId>\r
+            <artifactId>mariadb-java-client</artifactId>\r
+            <version>2.2.5</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>org.eclipse.jetty.cdi</groupId>\r
             <artifactId>cdi-websocket</artifactId>\r
-            <version>9.3.11.v20160721</version>\r
+            <version>${jetty.version}</version>\r
         </dependency>\r
         <dependency>\r
             <groupId>log4j</groupId>\r
             <version>1.2.17</version>\r
             <scope>compile</scope>\r
         </dependency>\r
+        <dependency>\r
+            <groupId>com.h2database</groupId>\r
+            <artifactId>h2</artifactId>\r
+            <version>1.4.197</version>\r
+        </dependency>\r
+        <dependency>\r
+            <groupId>org.hibernate</groupId>\r
+            <artifactId>hibernate-entitymanager</artifactId>\r
+            <version>5.2.9.Final</version>\r
+            <exclusions>\r
+                <exclusion>\r
+                    <groupId>dom4j</groupId>\r
+                    <artifactId>dom4j</artifactId>\r
+                </exclusion>\r
+            </exclusions>\r
+        </dependency>\r
     </dependencies>\r
+    <profiles>\r
+        <profile>\r
+            <id>docker</id>\r
+            <properties>\r
+                <skipDockerBuild>false</skipDockerBuild>\r
+                <skipDockerTag>false</skipDockerTag>\r
+                <skipTests>true</skipTests>\r
+            </properties>\r
+            <build>\r
+                <plugins>\r
+\r
+                    <!-- Setup image tags per https://wiki.onap.org/display/DW/Independent+Versioning+and+Release+Process#IndependentVersioningandReleaseProcess-StandardizedDockerTagging -->\r
+                    <plugin>\r
+                      <groupId>org.codehaus.groovy.maven</groupId>\r
+                      <artifactId>gmaven-plugin</artifactId>\r
+                      <executions>\r
+                          <execution>\r
+                              <phase>validate</phase>\r
+                              <goals>\r
+                                  <goal>execute</goal>\r
+                              </goals>\r
+                              <configuration>\r
+                                  <properties>\r
+                                      <ver>${project.version}</ver>\r
+                                      <timestamp>${maven.build.timestamp}</timestamp>\r
+                                  </properties>\r
+                                  <source>\r
+                                      println 'ver: ' + project.properties['ver'];\r
+                                      if ( project.properties['ver'].endsWith("-SNAPSHOT") ) {\r
+                                          project.properties['dockertag1']=project.properties['ver'] + "-latest";\r
+                                          project.properties['dockertag2']=project.properties['ver'] + "-" + project.properties['timestamp'];\r
+                                      } else {\r
+                                          project.properties['dockertag1']=project.properties['ver'] + "-STAGING-latest";\r
+                                          project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp'];\r
+                                      }\r
+                                      println 'docker tag 1: ' + project.properties['dockertag1'];\r
+                                      println 'docker tag 2: ' + project.properties['dockertag2'];\r
+                                  </source>\r
+                              </configuration>\r
+                          </execution>\r
+                      </executions>\r
+                    </plugin>\r
+                    <plugin>\r
+                        <groupId>io.fabric8</groupId>\r
+                        <artifactId>docker-maven-plugin</artifactId>\r
+                        <version>0.28.0</version>\r
+                        <configuration>\r
+                            <verbose>${docker.verbose}</verbose>\r
+                            <apiVersion>${docker.apiVersion}</apiVersion>\r
+                            <pullRegistry>${docker.pull.registry}</pullRegistry>\r
+                            <pushRegistry>${docker.push.registry}</pushRegistry>\r
+                            <images>\r
+                                <image>\r
+                                    <name>${datarouter.prov.image.name}</name>\r
+                                    <build>\r
+                                        <cleanup>try</cleanup>\r
+                                        <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>\r
+                                        <dockerFile>Dockerfile</dockerFile>\r
+                                        <tags>\r
+                                            <tag>${dockertag1}</tag>\r
+                                            <tag>${dockertag2}</tag>\r
+                                        </tags>\r
+                                    </build>\r
+                                </image>\r
+                            </images>\r
+                        </configuration>\r
+                         <executions>\r
+                             <execution>\r
+                                 <id>generate-images</id>\r
+                                 <phase>install</phase>\r
+                                 <goals>\r
+                                     <goal>build</goal>\r
+                                 </goals>\r
+                             </execution>\r
+                             <execution>\r
+                                 <id>push-images</id>\r
+                                 <phase>deploy</phase>\r
+                                 <goals>\r
+                                     <goal>push</goal>\r
+                                 </goals>\r
+                             </execution>\r
+                         </executions>\r
+                    </plugin>\r
+                </plugins>\r
+            </build>\r
+        </profile>\r
+    </profiles>\r
     <build>\r
         <finalName>datarouter-prov</finalName>\r
         <resources>\r
                 <directory>src/main/resources</directory>\r
                 <filtering>true</filtering>\r
                 <includes>\r
-                    <include>**/proserver.properties</include>\r
+                    <include>**/provserver.properties</include>\r
                 </includes>\r
             </resource>\r
             <resource>\r
                     <include>**/log4j.properties</include>\r
                 </includes>\r
             </resource>\r
-            <!-- <resource><directory>src/main/config</directory><filtering>true</filtering><includes><include>**/log4j*.xml</include></includes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><excludes><exclude>**/cambriaApiVersion.properties</exclude></excludes></resource>-->\r
+            <resource>\r
+                <directory>src/test/resources</directory>\r
+                <filtering>true</filtering>\r
+                <includes>\r
+                    <include>**/log4j.properties</include>\r
+                </includes>\r
+            </resource>\r
         </resources>\r
         <plugins>\r
             <plugin>\r
                     <descriptorRefs>\r
                         <descriptorRef>jar-with-dependencies</descriptorRef>\r
                     </descriptorRefs>\r
-                    <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>\r
+                    <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/lib</outputDirectory>\r
                     <archive>\r
                         <manifest>\r
                             <addClasspath>true</addClasspath>\r
                 </configuration>\r
                 <version>3.6.0</version>\r
             </plugin>\r
-            <plugin>\r
-                <groupId>com.spotify</groupId>\r
-                <artifactId>docker-maven-plugin</artifactId>\r
-                <version>0.4.11</version>\r
-                <configuration>\r
-                    <imageName>onap/dmaap/datarouter-prov</imageName>\r
-                    <dockerDirectory>${docker.location}</dockerDirectory>\r
-                    <serverId>docker-hub</serverId>\r
-                    <registryUrl>https://${docker.registry}</registryUrl>\r
-                    <imageTags>\r
-                        <imageTag>${project.version}</imageTag>\r
-                        <imageTag>latest</imageTag>\r
-                    </imageTags>\r
-                    <forceTags>true</forceTags>\r
-                </configuration>\r
-            </plugin>\r
+\r
+            <!-- Copy files to docker-stage to be included in image -->\r
             <plugin>\r
                 <artifactId>maven-resources-plugin</artifactId>\r
                 <version>2.7</version>\r
                 <executions>\r
                     <execution>\r
-                        <id>copy-docker-file</id>\r
-                        <phase>package</phase>\r
+                        <id>copy-dockerfile</id>\r
+                        <phase>validate</phase>\r
                         <goals>\r
                             <goal>copy-resources</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${docker.location}</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage</outputDirectory>\r
                             <overwrite>true</overwrite>\r
                             <resources>\r
                                 <resource>\r
                                     <directory>${basedir}/src/main/resources/docker</directory>\r
                                     <filtering>true</filtering>\r
                                     <includes>\r
-                                        <include>**/*</include>\r
+                                        <include>Dockerfile</include>\r
                                     </includes>\r
                                 </resource>\r
                             </resources>\r
                         </configuration>\r
                     </execution>\r
                     <execution>\r
-                        <id>copy-resources-1</id>\r
+                        <id>copy-startup-script</id>\r
                         <phase>validate</phase>\r
                         <goals>\r
                             <goal>copy-resources</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage/opt</outputDirectory>\r
+                            <overwrite>true</overwrite>\r
                             <resources>\r
                                 <resource>\r
-                                    <directory>${project.basedir}/src/main/resources</directory>\r
+                                    <directory>${basedir}/src/main/resources/docker</directory>\r
+                                    <filtering>true</filtering>\r
                                     <includes>\r
-                                        <include>**/*.jar</include>\r
+                                        <include>startup.sh</include>\r
                                     </includes>\r
                                 </resource>\r
                             </resources>\r
                             <goal>copy-resources</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${basedir}/target/opt/app/datartr/etc</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/etc</outputDirectory>\r
                             <resources>\r
                                 <resource>\r
                                     <directory>${basedir}/src/main/resources</directory>\r
                             <goal>copy-resources</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${basedir}/target/opt/app/datartr</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr</outputDirectory>\r
                             <resources>\r
                                 <resource>\r
                                     <directory>${basedir}/data</directory>\r
                             <goal>copy-resources</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${basedir}/target/opt/app/datartr/self_signed</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/aaf_certs</outputDirectory>\r
                             <resources>\r
                                 <resource>\r
-                                    <directory>${basedir}/self_signed</directory>\r
+                                    <directory>${basedir}/aaf_certs</directory>\r
                                     <includes>\r
                                         <include>misc/**</include>\r
                                         <include>**/**</include>\r
                             <goal>copy-dependencies</goal>\r
                         </goals>\r
                         <configuration>\r
-                            <outputDirectory>${project.build.directory}/opt/app/datartr/lib</outputDirectory>\r
+                            <outputDirectory>${basedir}/target/docker-stage/opt/app/datartr/aaf_certs</outputDirectory>\r
                             <overWriteReleases>false</overWriteReleases>\r
                             <overWriteSnapshots>false</overWriteSnapshots>\r
                             <overWriteIfNewer>true</overWriteIfNewer>\r
                         <format>html</format>\r
                         <format>xml</format>\r
                     </formats>\r
+                    <check/>\r
                 </configuration>\r
             </plugin>\r
             <plugin>\r
                 <version>1.6.7</version>\r
                 <extensions>true</extensions>\r
                 <configuration>\r
-                    <nexusUrl>${nexusproxy}</nexusUrl>\r
+                    <nexusUrl>${onap.nexus.url}</nexusUrl>\r
                     <stagingProfileId>176c31dfe190a</stagingProfileId>\r
                     <serverId>ecomp-staging</serverId>\r
                 </configuration>\r
             </plugin>\r
         </plugins>\r
     </build>\r
-    <distributionManagement>\r
-        <repository>\r
-            <id>ecomp-releases</id>\r
-            <name>DR Release Repository</name>\r
-            <url>${nexusproxy}${releaseNexusPath}</url>\r
-        </repository>\r
-        <snapshotRepository>\r
-            <id>ecomp-snapshots</id>\r
-            <name>DR Snapshot Repository</name>\r
-            <url>${nexusproxy}${snapshotNexusPath}</url>\r
-        </snapshotRepository>\r
-        <site>\r
-            <id>ecomp-site</id>\r
-            <url>dav:${nexusproxy}${sitePath}</url>\r
-        </site>\r
-    </distributionManagement>\r
-    <pluginRepositories>\r
-        <pluginRepository>\r
-            <id>onap-plugin-snapshots</id>\r
-            <url>https://nexus.onap.org/content/repositories/snapshots/</url>\r
-        </pluginRepository>\r
-    </pluginRepositories>\r
-</project>
\ No newline at end of file
+</project>\r