diff --git a/pom.xml b/pom.xml
index 2e76668..bf85f3e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,477 +21,510 @@
     ============LICENSE_END=========================================================
 
 -->
-<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>
+<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.oparent</groupId>
-        <artifactId>oparent</artifactId>
-        <version>2.0.0</version>
-        <relativePath/>
-    </parent>
+	<parent>
+		<groupId>org.onap.oparent</groupId>
+		<artifactId>oparent</artifactId>
+		<version>2.0.0</version>
+		<relativePath />
+	</parent>
 
-    <groupId>org.onap.aai</groupId>
-    <artifactId>babel</artifactId>
-    <version>1.6.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
+	<groupId>org.onap.aai</groupId>
+	<artifactId>babel</artifactId>
+	<version>1.6.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
 
-    <name>aai-babel</name>
-    <description>ONAP AAI Babel Microservice</description>
+	<name>aai-babel</name>
+	<description>ONAP AAI Babel Microservice</description>
 
-    <properties>
-        <!-- Spring boot version -->
-        <spring.boot.version>2.1.6.RELEASE</spring.boot.version>
+	<properties>
+		<!-- Spring boot version -->
+		<spring.boot.version>2.1.6.RELEASE</spring.boot.version>
 
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
-        <aai.schema.source.folder>onap/aai_schema</aai.schema.source.folder>
-        <aai.schema.target.folder>${project.build.directory}/aai-schema</aai.schema.target.folder>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+		<java.version>1.8</java.version>
+		<aai.schema.source.folder>onap/aai_schema</aai.schema.source.folder>
+		<aai.schema.target.folder>${project.build.directory}/aai-schema</aai.schema.target.folder>
+		<jacoco.report.directory>${project.build.directory}/code-coverage</jacoco.report.directory>
+		<jacoco.line.coverage.limit>0.90</jacoco.line.coverage.limit>
 
         <!-- docker related properties -->
-        <docker.fabric.version>0.28.0</docker.fabric.version>
-        <aai.docker.version>1.0.0</aai.docker.version>
-        <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/
-        </aai.build.directory>
-        <aai.docker.namespace>onap</aai.docker.namespace>
-        <aai.base.image>alpine</aai.base.image>
-        <aai.base.image.version>1.6.0</aai.base.image.version>
+		<docker.fabric.version>0.28.0</docker.fabric.version>
+		<aai.docker.version>1.0.0</aai.docker.version>
+		<aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/
+		</aai.build.directory>
+		<aai.docker.namespace>onap</aai.docker.namespace>
+		<aai.base.image>alpine</aai.base.image>
+		<aai.base.image.version>1.6.0</aai.base.image.version>
 
-        <!-- Dependency Versions -->
-        <common.logging.version>1.2.2</common.logging.version>
-        <sdc.tosca.version>1.5.1</sdc.tosca.version>
-        <commons.compress.version>1.18</commons.compress.version>
-        <javax.ws.rs.version>2.1</javax.ws.rs.version>
-        <mvn.jaxb2.version>0.13.2</mvn.jaxb2.version>
-        <aai-schema.group.id>org.onap.aai.schema-service</aai-schema.group.id>
-        <aai-schema.version>1.5.0</aai-schema.version>
-        <apache.lang3.version>3.7</apache.lang3.version>
-        <aai.rest.client.version>1.2.1</aai.rest.client.version>
-        <sdc.distribution.client.version>1.3.0</sdc.distribution.client.version>
-        <xmlunit.version>1.6</xmlunit.version>
-        <logback.version>1.2.3</logback.version>
-        <antrun.version>1.8</antrun.version>
+		<!-- Dependency Versions -->
+		<common.logging.version>1.2.2</common.logging.version>
+		<sdc.tosca.version>1.5.1</sdc.tosca.version>
+		<commons.compress.version>1.18</commons.compress.version>
+		<javax.ws.rs.version>2.1</javax.ws.rs.version>
+		<mvn.jaxb2.version>0.13.2</mvn.jaxb2.version>
+		<aai-schema.group.id>org.onap.aai.schema-service</aai-schema.group.id>
+		<aai-schema.version>1.5.0</aai-schema.version>
+		<aai.rest.client.version>1.2.1</aai.rest.client.version>
+		<sdc.distribution.client.version>1.3.0</sdc.distribution.client.version>
+		<xmlunit.version>1.6</xmlunit.version>
+		<logback.version>1.2.3</logback.version>
+		<antrun.version>1.8</antrun.version>
         <!-- This will be used for the docker images as the default format of maven build has issues -->
-        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
-    </properties>
+		<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+	</properties>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <!-- Import dependency management from Spring Boot -->
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring.boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<!-- Import dependency management from Spring Boot -->
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-dependencies</artifactId>
+				<version>${spring.boot.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
 
-    <profiles>
+	<profiles>
         <!-- Docker profile to be used for building docker image and pushing to nexus -->
-        <profile>
-            <id>docker</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>build-helper-maven-plugin</artifactId>
-                        <version>3.0.0</version>
-                        <executions>
-                            <execution>
-                                <phase>pre-clean</phase>
-                                <id>parse-version</id>
-                                <goals>
-                                    <goal>parse-version</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.groovy.maven</groupId>
-                        <artifactId>gmaven-plugin</artifactId>
-                        <version>1.0</version>
-                        <executions>
-                            <execution>
-                                <phase>pre-clean</phase>
-                                <goals>
-                                    <goal>execute</goal>
-                                </goals>
-                                <configuration>
-                                    <source>
-                                        def userAaiBaseImage = session.userProperties['aai.base.image'];
-                                        def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
-                                        if (userAaiCommonVersion != null) {
-                                            project.properties['aai.base.image.version'] = userAaiCommonVersion;
-                                        }
-                                        if (userAaiBaseImage != null) {
-                                            project.properties['aai.base.image'] = userAaiBaseImage;
-                                        }
-                                        log.info 'Base image flavour: ' + project.properties['aai.base.image'];
-                                        log.info 'Base image version: ' + project.properties['aai.base.image.version'];
-                                    </source>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>io.fabric8</groupId>
-                        <artifactId>docker-maven-plugin</artifactId>
-                        <version>${docker.fabric.version}</version>
-                        <configuration>
-                            <verbose>true</verbose>
-                            <apiVersion>1.23</apiVersion>
-                            <images>
-                                <image>
-                                    <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l
-                                    </name>
-                                    <build>
-                                        <filter>@</filter>
-                                        <tags>
-                                            <tag>latest</tag>
-                                            <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
-                                            <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag>
-                                        </tags>
-                                        <cleanup>try</cleanup>
-                                        <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
-                                        <assembly>
-                                            <inline>
-                                                <fileSets>
-                                                    <fileSet>
-                                                        <directory>${aai.build.directory}</directory>
-                                                        <outputDirectory>/${project.artifactId}</outputDirectory>
-                                                    </fileSet>
-                                                </fileSets>
-                                            </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>package</phase>
-                                <goals>
-                                    <goal>build</goal>
-                                </goals>
-                            </execution>
-                            <execution>
-                                <id>push-images</id>
-                                <phase>deploy</phase>
-                                <goals>
-                                    <goal>push</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-jetty</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-jersey</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.aai.logging-service</groupId>
-            <artifactId>common-logging</artifactId>
-            <version>${common.logging.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version><!--$NO-MVN-MAN-VER$-->
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-            <version>${logback.version}</version><!--$NO-MVN-MAN-VER$-->
-        </dependency>
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-compress</artifactId>
-            <version>${commons.compress.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${javax.ws.rs.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.sdc.sdc-tosca</groupId>
-            <artifactId>sdc-tosca</artifactId>
-            <version>${sdc.tosca.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.aai</groupId>
-            <artifactId>rest-client</artifactId>
-            <version>${aai.rest.client.version}</version>
-        </dependency>
+		<profile>
+			<id>docker</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>build-helper-maven-plugin</artifactId>
+						<version>3.0.0</version>
+						<executions>
+							<execution>
+								<phase>pre-clean</phase>
+								<id>parse-version</id>
+								<goals>
+									<goal>parse-version</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.groovy.maven</groupId>
+						<artifactId>gmaven-plugin</artifactId>
+						<version>1.0</version>
+						<executions>
+							<execution>
+								<phase>pre-clean</phase>
+								<goals>
+									<goal>execute</goal>
+								</goals>
+								<configuration>
+									<source>
+										def userAaiBaseImage = session.userProperties['aai.base.image'];
+										def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
+										if (userAaiCommonVersion != null) {
+										project.properties['aai.base.image.version'] = userAaiCommonVersion;
+										}
+										if (userAaiBaseImage != null) {
+										project.properties['aai.base.image'] = userAaiBaseImage;
+										}
+										log.info 'Base image flavour: ' + project.properties['aai.base.image'];
+										log.info 'Base image version: ' + project.properties['aai.base.image.version'];
+									</source>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>io.fabric8</groupId>
+						<artifactId>docker-maven-plugin</artifactId>
+						<version>${docker.fabric.version}</version>
+						<configuration>
+							<verbose>true</verbose>
+							<apiVersion>1.23</apiVersion>
+							<images>
+								<image>
+									<name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l
+									</name>
+									<build>
+										<filter>@</filter>
+										<tags>
+											<tag>latest</tag>
+											<tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
+											<tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag>
+										</tags>
+										<cleanup>try</cleanup>
+										<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
+										<assembly>
+											<inline>
+												<fileSets>
+													<fileSet>
+														<directory>${aai.build.directory}</directory>
+														<outputDirectory>/${project.artifactId}</outputDirectory>
+													</fileSet>
+												</fileSets>
+											</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>package</phase>
+								<goals>
+									<goal>build</goal>
+								</goals>
+							</execution>
+							<execution>
+								<id>push-images</id>
+								<phase>deploy</phase>
+								<goals>
+									<goal>push</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-jetty</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-jersey</artifactId>
+			<exclusions>
+				<exclusion>
+					<groupId>org.springframework.boot</groupId>
+					<artifactId>spring-boot-starter-tomcat</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.aai.logging-service</groupId>
+			<artifactId>common-logging</artifactId>
+			<version>${common.logging.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-classic</artifactId>
+			<version>${logback.version}</version><!--$NO-MVN-MAN-VER$-->
+		</dependency>
+		<dependency>
+			<groupId>ch.qos.logback</groupId>
+			<artifactId>logback-core</artifactId>
+			<version>${logback.version}</version><!--$NO-MVN-MAN-VER$-->
+		</dependency>
+		<dependency>
+			<groupId>commons-codec</groupId>
+			<artifactId>commons-codec</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-compress</artifactId>
+			<version>${commons.compress.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-lang3</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>javax.ws.rs</groupId>
+			<artifactId>javax.ws.rs-api</artifactId>
+			<version>${javax.ws.rs.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.groovy</groupId>
+			<artifactId>groovy</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.sdc.sdc-tosca</groupId>
+			<artifactId>sdc-tosca</artifactId>
+			<version>${sdc.tosca.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.aai</groupId>
+			<artifactId>rest-client</artifactId>
+			<version>${aai.rest.client.version}</version>
+		</dependency>
+		
+		<!-- Testing -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.sdc.sdc-distribution-client</groupId>
+			<artifactId>sdc-distribution-client</artifactId>
+			<version>${sdc.distribution.client.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>xmlunit</groupId>
+			<artifactId>xmlunit</artifactId>
+			<version>${xmlunit.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
 
-        <!-- Testing -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.sdc.sdc-distribution-client</groupId>
-            <artifactId>sdc-distribution-client</artifactId>
-            <version>${sdc.distribution.client.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <version>${xmlunit.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring.boot.version}</version>
-                <configuration>
-                    <jvmArguments>
-                        -DCONFIG_HOME=./appconfig-local
-                        -DAPP_HOME=.
-                        -Dtosca.mappings.config=./appconfig-local/tosca-mappings.json
-                        -DKEY_STORE_PASSWORD=${KEY_STORE_PASSWORD}
-                    </jvmArguments>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>unpack</id>
-                        <phase>initialize</phase>
-                        <goals>
-                            <goal>unpack</goal>
-                        </goals>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>${aai-schema.group.id}</groupId>
-                                    <artifactId>aai-schema</artifactId>
-                                    <version>${aai-schema.version}</version>
-                                    <type>jar</type>
-                                    <includes>${aai.schema.source.folder}/aai_schema_v**.xsd</includes>
-                                    <outputDirectory>${project.build.directory}/tmp</outputDirectory>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <version>${antrun.version}</version>
-                <executions>
-                    <execution>
-                        <id>Flatten XSDs</id>
-                        <phase>initialize</phase>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                        <configuration>
-                            <target>
-                                <copy todir="${aai.schema.target.folder}" flatten="true">
-                                    <fileset dir="${project.build.directory}/tmp">
-                                        <include name="**/*.xsd"/>
-                                    </fileset>
-                                </copy>
-                            </target>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.jvnet.jaxb2.maven2</groupId>
-                <artifactId>maven-jaxb2-plugin</artifactId>
-                <version>${mvn.jaxb2.version}</version>
-                <executions>
-                    <execution>
-                        <phase>process-sources</phase>
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <schemaDirectory>${aai.schema.target.folder}</schemaDirectory>
-                    <generatePackage>org.onap.aai.babel.xml.generator.xsd</generatePackage>
-                    <generateDirectory>${project.build.directory}/generated-sources</generateDirectory>
-                    <schemaIncludes>
-                        <include>aai_schema_latest.xsd</include>
-                    </schemaIncludes>
-                    <extension>true</extension>
-                    <args>
-                        <arg>-Xannotate</arg>
-                    </args>
-                    <plugins>
-                        <plugin>
-                            <groupId>org.jvnet.jaxb2_commons</groupId>
-                            <artifactId>jaxb2-basics-annotate</artifactId>
-                            <version>0.6.4</version>
-                        </plugin>
-                        <!-- Add the dependencies with your annotations as 'plugins' below -->
-                        <plugin>
-                            <groupId>org.jvnet.jaxb2_commons</groupId>
-                            <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
-                            <version>1.0.0</version>
-                        </plugin>
-                    </plugins>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>exec-maven-plugin</artifactId>
-                <groupId>org.codehaus.mojo</groupId>
-                <version>1.5.0</version>
-                <executions>
-                    <execution><!-- Run our script to get latest xsd version -->
-                        <id>Get latest xsd version</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>exec</goal>
-                        </goals>
-                        <configuration>
-                            <workingDirectory>${basedir}/scripts</workingDirectory>
-                            <executable>bash</executable>
-                            <commandlineArgs>get-latest-xsd-version.sh ${basedir}</commandlineArgs>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptors>
-                        <descriptor>src/main/assembly/descriptor.xml</descriptor>
-                    </descriptors>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>make-assembly</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>com.mycila</groupId>
-                <artifactId>license-maven-plugin</artifactId>
-                <version>3.0</version>
-                <configuration>
-                    <header>License.txt</header>
-                    <includes>
-                        <include>src/main/java/**</include>
-                        <include>src/test/java/**</include>
-                        <include>pom.xml</include>
-                    </includes>
-                    <skipExistingHeaders>true</skipExistingHeaders>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <!-- Set goal from "check" to "format" to auto update license headers -->
-                            <goal>check</goal>
-                        </goals>
-                        <phase>validate</phase>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <reuseForks>false</reuseForks>
-                    <forkCount>1</forkCount>
-                    <environmentVariables>
-                        <APP_HOME>.</APP_HOME>
-                        <CONFIG_HOME>src/test/resources</CONFIG_HOME>
-                    </environmentVariables>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.0.2</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                        <configuration>
-                            <classifier>client</classifier>
-                            <includes>
-                                <include>**/babel/service/data/*</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <configuration>
-                    <classifier>client</classifier>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<version>${spring.boot.version}</version>
+				<configuration>
+					<jvmArguments>
+						-DCONFIG_HOME=./appconfig-local
+						-DAPP_HOME=.
+						-Dtosca.mappings.config=./appconfig-local/tosca-mappings.json
+						-DKEY_STORE_PASSWORD=${KEY_STORE_PASSWORD}
+					</jvmArguments>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<goal>repackage</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>unpack</id>
+						<phase>initialize</phase>
+						<goals>
+							<goal>unpack</goal>
+						</goals>
+						<configuration>
+							<artifactItems>
+								<artifactItem>
+									<groupId>${aai-schema.group.id}</groupId>
+									<artifactId>aai-schema</artifactId>
+									<version>${aai-schema.version}</version>
+									<type>jar</type>
+									<includes>${aai.schema.source.folder}/aai_schema_v**.xsd</includes>
+									<outputDirectory>${project.build.directory}/tmp</outputDirectory>
+								</artifactItem>
+							</artifactItems>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-antrun-plugin</artifactId>
+				<version>${antrun.version}</version>
+				<executions>
+					<execution>
+						<id>Flatten XSDs</id>
+						<phase>initialize</phase>
+						<goals>
+							<goal>run</goal>
+						</goals>
+						<configuration>
+							<target>
+								<copy todir="${aai.schema.target.folder}" flatten="true">
+									<fileset dir="${project.build.directory}/tmp">
+										<include name="**/*.xsd" />
+									</fileset>
+								</copy>
+							</target>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.jvnet.jaxb2.maven2</groupId>
+				<artifactId>maven-jaxb2-plugin</artifactId>
+				<version>${mvn.jaxb2.version}</version>
+				<executions>
+					<execution>
+						<phase>process-sources</phase>
+						<goals>
+							<goal>generate</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<schemaDirectory>${aai.schema.target.folder}</schemaDirectory>
+					<generatePackage>org.onap.aai.babel.xml.generator.xsd</generatePackage>
+					<generateDirectory>${project.build.directory}/generated-sources</generateDirectory>
+					<schemaIncludes>
+						<include>aai_schema_latest.xsd</include>
+					</schemaIncludes>
+					<extension>true</extension>
+					<args>
+						<arg>-Xannotate</arg>
+					</args>
+					<plugins>
+						<plugin>
+							<groupId>org.jvnet.jaxb2_commons</groupId>
+							<artifactId>jaxb2-basics-annotate</artifactId>
+							<version>0.6.4</version>
+						</plugin>
+						<!-- Add the dependencies with your annotations as 'plugins' below -->
+						<plugin>
+							<groupId>org.jvnet.jaxb2_commons</groupId>
+							<artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
+							<version>1.0.0</version>
+						</plugin>
+					</plugins>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>exec-maven-plugin</artifactId>
+				<groupId>org.codehaus.mojo</groupId>
+				<version>1.5.0</version>
+				<executions>
+					<execution><!-- Run our script to get latest xsd version -->
+						<id>Get latest xsd version</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>exec</goal>
+						</goals>
+						<configuration>
+							<workingDirectory>${basedir}/scripts</workingDirectory>
+							<executable>bash</executable>
+							<commandlineArgs>get-latest-xsd-version.sh ${basedir}</commandlineArgs>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<descriptors>
+						<descriptor>src/main/assembly/descriptor.xml</descriptor>
+					</descriptors>
+				</configuration>
+				<executions>
+					<execution>
+						<id>make-assembly</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>com.mycila</groupId>
+				<artifactId>license-maven-plugin</artifactId>
+				<version>3.0</version>
+				<configuration>
+					<header>License.txt</header>
+					<includes>
+						<include>src/main/java/**</include>
+						<include>src/test/java/**</include>
+						<include>pom.xml</include>
+					</includes>
+					<skipExistingHeaders>true</skipExistingHeaders>
+				</configuration>
+				<executions>
+					<execution>
+						<goals>
+							<!-- Set goal from "check" to "format" to auto update license headers -->
+							<goal>check</goal>
+						</goals>
+						<phase>validate</phase>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<configuration>
+					<reuseForks>false</reuseForks>
+					<forkCount>1</forkCount>
+					<environmentVariables>
+						<APP_HOME>.</APP_HOME>
+						<CONFIG_HOME>src/test/resources</CONFIG_HOME>
+					</environmentVariables>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>3.0.2</version>
+				<executions>
+					<execution>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+						<configuration>
+							<classifier>client</classifier>
+							<includes>
+								<include>**/babel/service/data/*</include>
+							</includes>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-deploy-plugin</artifactId>
+				<configuration>
+					<classifier>client</classifier>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+				<configuration>
+					<excludes>
+						<exclude>org/onap/aai/babel/xml/generator/xsd/*</exclude>
+					</excludes>
+				</configuration>
+				<executions>
+					<execution>
+						<id>default-check</id>
+						<goals>
+							<goal>check</goal>
+						</goals>
+						<configuration>
+							<dataFile>${jacoco.report.directory}/jacoco-ut.exec</dataFile>
+							<rules>
+                                <!--  implementation is needed only for Maven 2  -->
+								<rule implementation="org.jacoco.maven.RuleConfiguration">
+									<element>BUNDLE</element>
+									<limits>
+										<limit implementation="org.jacoco.report.check.Limit">
+											<counter>LINE</counter>
+											<value>COVEREDRATIO</value>
+											<minimum>${jacoco.line.coverage.limit}</minimum>
+										</limit>
+									</limits>
+								</rule>
+							</rules>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
 
 </project>
