Controller Blueprints Microservice

Add Docker Build and Deploy Maven Implementations for Controller Blueprint MS and their dependencies

Change-Id: I9eee9fff535bcc9ca0b855150892ce53af126d1c
Issue-ID: CCSDK-483
Signed-off-by: Muthuramalingam, Brinda Santh(bs2796) <bs2796@att.com>
diff --git a/ms/controllerblueprints/distribution/pom.xml b/ms/controllerblueprints/distribution/pom.xml
new file mode 100644
index 0000000..37c0b84
--- /dev/null
+++ b/ms/controllerblueprints/distribution/pom.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ~  Copyright © 2017-2018 AT&T Intellectual Property.

+  ~

+  ~  Licensed under the Apache License, Version 2.0 (the "License");

+  ~  you may not use this file except in compliance with the License.

+  ~  You may obtain a copy of the License at

+  ~

+  ~      http://www.apache.org/licenses/LICENSE-2.0

+  ~

+  ~  Unless required by applicable law or agreed to in writing, software

+  ~  distributed under the License is distributed on an "AS IS" BASIS,

+  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  ~  See the License for the specific language governing permissions and

+  ~  limitations under the License.

+  -->

+

+<project

+        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

+        xmlns="http://maven.apache.org/POM/4.0.0"

+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+    <modelVersion>4.0.0</modelVersion>

+    <parent>

+        <groupId>org.onap.ccsdk.apps.controllerblueprints</groupId>

+        <artifactId>parent</artifactId>

+        <version>0.3.0-SNAPSHOT</version>

+        <relativePath>../parent</relativePath>

+    </parent>

+    <artifactId>distribution</artifactId>

+    <packaging>pom</packaging>

+    <name>Controller Blueprints Distribution</name>

+    <properties>

+        <assembly.id>maven</assembly.id>

+        <name.space>org.onap.ccsdk.apps</name.space>     <!-- <name.space>${namespace}</name.space> -->

+        <serviceArtifactName>controllerblueprints</serviceArtifactName>

+        <image.name>onap/ccsdk-controllerblueprints</image.name>

+    </properties>

+

+    <dependencies>

+        <dependency>

+            <groupId>org.onap.ccsdk.apps.controllerblueprints</groupId>

+            <artifactId>application</artifactId>

+        </dependency>

+    </dependencies>

+    <build>

+        <plugins>

+            <plugin>

+                <artifactId>maven-resources-plugin</artifactId>

+                <version>2.6</version>

+                <executions>

+                    <execution>

+                        <id>copy-dockerfile</id>

+                        <goals>

+                            <goal>copy-resources</goal>

+                        </goals><!-- here the phase you need -->

+                        <phase>validate</phase>

+                        <configuration>

+                            <outputDirectory>${basedir}/target/docker-stage</outputDirectory>

+                            <resources>

+                                <resource>

+                                    <directory>src/main/docker</directory>

+                                    <includes>

+                                        <include>*</include>

+                                    </includes>

+                                    <filtering>true</filtering>

+                                </resource>

+                            </resources>

+                        </configuration>

+                    </execution>

+                </executions>

+            </plugin>

+            <plugin>

+                <groupId>org.apache.maven.plugins</groupId>

+                <artifactId>maven-antrun-plugin</artifactId>

+                <executions>

+                    <execution>

+                        <id>ant-test</id>

+                        <phase>package</phase>

+                        <configuration>

+                            <tasks>

+                                <fixcrlf srcdir="${basedir}" eol="unix"

+                                         includes="**/*.sh, **/*.source"/>

+                            </tasks>

+                        </configuration>

+                        <goals>

+                            <goal>run</goal>

+                        </goals>

+                    </execution>

+                </executions>

+            </plugin>

+            <plugin>

+                <!--build the final artifact for docker deployment -->

+                <artifactId>maven-assembly-plugin</artifactId>

+                <version>3.0.0</version>

+                <configuration>

+                    <!-- <skipAssembly>${skip.assembly}</skipAssembly>-->

+                    <outputDirectory>${basedir}/target/docker-stage</outputDirectory>

+                    <descriptors>

+                        <descriptor>src/main/docker/distribution.xml</descriptor>

+                    </descriptors>

+                    <tarLongFileMode>posix</tarLongFileMode>

+                </configuration>

+                <executions>

+                    <execution>

+                        <id>${assembly.id}</id>

+                        <phase>package</phase>

+                        <goals>

+                            <goal>single</goal>

+                        </goals>

+                    </execution>

+                </executions>

+            </plugin>

+            <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.properties['ccsdk.project.version'];

+                                def versionArray;

+                                if (project.properties['ccsdk.project.version'] != null ) {

+                                    versionArray = project.properties['ccsdk.project.version'].split('\\.');

+                                }

+

+                                if (project.properties['ccsdk.project.version'].endsWith("-SNAPSHOT"))

+                                {

+                                    project.properties['project.docker.latesttag.version']=versionArray[0] + '.' + versionArray[1] + "-STAGING-latest";

+                                } else {

+                                    project.properties['project.docker.latesttag.version']=versionArray[0]+'.' + versionArray[1]+"-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.26.1</version>

+                <inherited>false</inherited>

+                <configuration>

+                    <images>

+                        <image>

+                            <name>${image.name}</name>

+                            <build>

+                                <cleanup>try</cleanup>

+                                <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>

+                                <tags>

+                                    <tag>${project.version}</tag>

+                                    <tag>${project.version}-STAGING-${maven.build.timestamp}</tag>

+                                    <tag>${project.docker.latesttag.version}</tag>

+                                </tags>

+                            </build>

+                        </image>

+                    </images>

+                    <verbose>true</verbose>

+                </configuration>

+                <executions>

+                    <!--<execution>-->

+                        <!--<id>build-images</id>-->

+                        <!--<phase>package</phase>-->

+                        <!--<goals>-->

+                            <!--<goal>build</goal>-->

+                        <!--</goals>-->

+                    <!--</execution>-->

+                    <execution>

+                        <id>push-images</id>

+                        <phase>deploy</phase>

+                        <goals>

+                            <goal>build</goal>

+                            <goal>push</goal>

+                        </goals>

+                    </execution>

+                </executions>

+            </plugin>

+        </plugins>

+    </build>

+</project>

+