<?xml version="1.0" encoding="UTF-8"?> <!-- ============LICENSE_START======================================================= org.onap.aai ================================================================================ Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. ================================================================================ 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. ============LICENSE_END========================================================= --> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" 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.aai.schema-service</groupId> <artifactId>schema-service</artifactId> <version>1.6.1-SNAPSHOT</version> </parent> <groupId>org.onap.aai.schema-service</groupId> <artifactId>aai-schema-service</artifactId> <properties> <java.version>1.8</java.version> <start-class>org.onap.aai.schemaservice.SchemaServiceApp</start-class> <!-- Start of the jacoco plugin properties --> <sonar.language>java</sonar.language> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco.exec</sonar.jacoco.reportPath> <sonar.jacoco.reportMissing.force.zero>false</sonar.jacoco.reportMissing.force.zero> <sonar.projectVersion>${project.version}</sonar.projectVersion> <!-- End of the jacoco plugin properties --> <docker.fabric.version>0.28.0</docker.fabric.version> <!-- Default docker registry that maven fabric plugin will try to pull from --> <docker.registry>docker.io</docker.registry> <!-- Specifying the docker push registry where the image should be pushed --> <!-- This value should be overwritten at runtime to wherever need to be pushed to --> <docker.push.registry>localhost:5000</docker.push.registry> <aai.docker.version>1.0.0</aai.docker.version> <!-- Location where assembly of our scripts, resources and main jar will be held Check the ${project.artifactId}/src/main/assembly/descriptor.xml for more info --> <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> <maven.skip.tests>true</maven.skip.tests> <jacoco.line.coverage.limit>0.44</jacoco.line.coverage.limit> <!-- 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> <javadoc.plugin.version>2.10.4</javadoc.plugin.version> <!-- Start of Default ONAP Schema Properties --> <schema.source.name>onap</schema.source.name> <schema.configuration.location>N/A</schema.configuration.location> <schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm </schema.nodes.location> <schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules </schema.edges.location> <schema.version.depth.start>v10</schema.version.depth.start> <schema.version.related.link.start>v10</schema.version.related.link.start> <schema.version.app.root.start>v11</schema.version.app.root.start> <schema.version.namespace.change.start>v12</schema.version.namespace.change.start> <schema.version.edge.label.start>v12</schema.version.edge.label.start> <schema.version.api.default>v16</schema.version.api.default> <schema.version.list>v10,v11,v12,v13,v14,v15,v16</schema.version.list> <schema.uri.base.path>/aai/schema-service</schema.uri.base.path> <!-- End of Default ONAP Schema Properties --> <!-- Setting some default value to not complain by editor but it will be overridden by gmaven plugin --> </properties> <profiles> <!-- Docker profile to be used for building docker image and pushing to nexus --> <profile> <id>docker</id> <build> <plugins> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <executions> <execution> <phase>pre-clean</phase> </execution> <execution> <id>parse-base</id> <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>${project.docker.latesttag.version}</tag> <tag>${project.major.version}.${project.minor.version}-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> <!-- Start of ONAP Profile --> <profile> <id>onap</id> <properties> <schema.source.name>onap</schema.source.name> <schema.version.namespace.change.start>v12</schema.version.namespace.change.start> <schema.version.list>v10,v11,v12,v13,v14,v15,v16</schema.version.list> </properties> </profile> <!-- End of ONAP Profile --> <profile> <id>runAjsc</id> <properties> <skipTests>${maven.skip.tests}</skipTests> </properties> <build> <defaultGoal>pre-integration-test</defaultGoal> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.6.0</version> <executions> <execution> <id>run-spring-boot</id> <phase>package</phase> <goals> <goal>java</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> <systemProperties> <property> <key>schema.source.name</key> <value>${schema.source.name}</value> </property> <property> <key>schema.configuration.location</key> <value>${schema.configuration.location}</value> </property> <property> <key>schema.nodes.location</key> <value>${schema.nodes.location}</value> </property> <property> <key>schema.edges.location</key> <value>${schema.edges.location}</value> </property> <property> <key>schema.version.depth.start</key> <value>${schema.version.depth.start}</value> </property> <property> <key>schema.version.related.link.start</key> <value>${schema.version.related.link.start}</value> </property> <property> <key>schema.version.app.root.start</key> <value>${schema.version.app.root.start}</value> </property> <property> <key>schema.version.namespace.change.start</key> <value>${schema.version.namespace.change.start}</value> </property> <property> <key>schema.version.edge.label.start</key> <value>${schema.version.edge.label.start}</value> </property> <property> <key>schema.version.api.default</key> <value>${schema.version.api.default}</value> </property> <property> <key>schema.version.list</key> <value>${schema.version.list}</value> </property> <property> <key>schema.uri.base.path</key> <value>${schema.uri.base.path}</value> </property> </systemProperties> <executable>java</executable> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencies> <dependency> <groupId>com.att.eelf</groupId> <artifactId>eelf-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> </dependency> <dependency> <groupId>org.onap.aai.aai-common</groupId> <artifactId>aai-core</artifactId> <exclusions> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> </exclusion> <exclusion> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-http</artifactId> </exclusion> <exclusion> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> <exclusion> <groupId>org.onap.aai</groupId> <artifactId>aai-schema-ingest</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-junit</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> </dependency> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.moxy</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <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> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-junit</artifactId> </dependency> </dependencies> <build> <resources> <resource> <directory>${project.basedir}/src/main/swm</directory> <targetPath>${project.build.directory}/swm</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources</directory> <includes> <include>application.properties</include> <include>dme2.properties</include> <include>logback.xml</include> <include>localhost-access-logback.xml</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources</directory> <includes> <include>**/*</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/etc/appprops/</directory> <includes> <include>aaiconfig.properties</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>false</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/etc/auth/</directory> <includes> <include>aai-client-cert.p12</include> <include>tomcat_keystore</include> <include>aai_policy.json</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/resources/</directory> <includes> <include>logback.xml</include> <include>localhost-access-logback.xml</include> <include>hbase-site.xml</include> </includes> <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.basedir}/src/main/docker</directory> <includes> <include>**/*</include> </includes> <targetPath>${aai.build.directory}</targetPath> <filtering>true</filtering> </resource> <resource> <directory>${project.build.directory}/</directory> <includes> <include>${project.artifactId}-${project.version}.jar</include> </includes> <targetPath>${aai.build.directory}/lib/</targetPath> <filtering>false</filtering> </resource> </resources> <pluginManagement> <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.properties['aai.project.version']; def versionArray; if (project.properties['aai.project.version'] != null) { versionArray = project.properties['aai.project.version'].split('\\.'); } project.properties["project.major.version"] = versionArray[0]; project.properties["project.minor.version"] = versionArray[1]; 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> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.4.1</version> <configuration> <filesets> <fileset> <directory>${project.basedir}/src/main/resources/schema</directory> <includes> <include>**/*</include> </includes> <followSymlinks>false</followSymlinks> </fileset> </filesets> </configuration> </plugin> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${javadoc.plugin.version}</version> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>src/main/assembly/descriptor.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- bind to the packaging phase --> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <executions> <execution> <id>copy-oxm-edgerules-project</id> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.basedir}/src/main/resources/schema</outputDirectory> <resources> <resource> <directory>${project.basedir}/../aai-schema/src/main/resources/</directory> <includes> <include>**/oxm/**/*.xml</include> <include>**/dbedgerules/**/*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-queries-project</id> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.basedir}/src/main/resources/schema</outputDirectory> <resources> <resource> <directory>${project.basedir}/../aai-queries/src/main/resources/schema</directory> <includes> <include>**/query/**/*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-oxm-edgerules</id> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/schema/</outputDirectory> <resources> <resource> <directory>${project.basedir}/../aai-schema/src/main/resources/</directory> <includes> <include>**/oxm/**/*.xml</include> <include>**/dbedgerules/**/*.json</include> </includes> </resource> </resources> </configuration> </execution> <execution> <id>copy-queries</id> <phase>initialize</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/schema/</outputDirectory> <resources> <resource> <directory>${project.basedir}/../aai-queries/src/main/resources/schema</directory> <includes> <include>**/query/**/*.json</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <argLine>-noverify ${argLine}</argLine> <runOrder>alphabetical</runOrder> </configuration> </plugin> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.3</version> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.9</version> <configuration> <dumpOnExit>true</dumpOnExit> <excludes> <exclude>**/**/models/**/*.class</exclude> </excludes> </configuration> <executions> <execution> <id>jacoco-initialize-unit-tests</id> <goals> <goal>prepare-agent</goal> </goals> <configuration> <destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile> <!-- <append>true</append> --> </configuration> </execution> <execution> <id>post-unit-test</id> <phase>test</phase> <goals> <goal>report</goal> </goals> <configuration> <!-- Sets the path to the file which contains the execution data. --> <dataFile>${project.build.directory}/coverage-reports/jacoco.exec</dataFile> <!-- Sets the output directory for the code coverage report. --> <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory> </configuration> </execution> <execution> <id>default-check</id> <goals> <goal>check</goal> </goals> <configuration> <dataFile>${project.build.directory}/coverage-reports/jacoco.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> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring.boot.version}</version> <configuration> <mainClass>${start-class}</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.4.1</version> <configuration> <filesets> <fileset> <directory>${project.basedir}/src/main/resources/schema</directory> <includes> <include>**/*</include> </includes> <followSymlinks>false</followSymlinks> </fileset> </filesets> </configuration> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.4</version> <configuration> <failOnError>false</failOnError> <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet> <docletArtifact> <groupId>org.umlgraph</groupId> <artifactId>umlgraph</artifactId> <version>5.6</version> </docletArtifact> <additionalparam>-views</additionalparam> <useStandardDocletOptions>true</useStandardDocletOptions> </configuration> </plugin> </plugins> </reporting> </project>