| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ============LICENSE_START======================================================= |
| org.onap.aai |
| ================================================================================ |
| Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. |
| Copyright © 2017-2018 European Software Marketing Ltd. |
| ================================================================================ |
| 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="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.1.0</version> |
| <relativePath /> |
| </parent> |
| |
| <groupId>org.onap.aai.model-loader</groupId> |
| <artifactId>model-loader</artifactId> |
| <name>aai-model-loader</name> |
| <version>1.7.0-SNAPSHOT</version> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-dependencies</artifactId> |
| <version>${spring-boot.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <properties> |
| <start-class>org.onap.aai.modelloader.service.ModelLoaderApplication</start-class> |
| <nexusproxy>https://nexus.onap.org</nexusproxy> |
| <docker.location>${basedir}/target</docker.location> |
| <spring-boot.version>2.1.12.RELEASE</spring-boot.version> |
| <apache.commons-text.version>1.8</apache.commons-text.version> |
| <commons-compress.version>1.19</commons-compress.version> |
| <hamcrest-all.version>1.3</hamcrest-all.version> |
| <babel.version>1.6.2</babel.version> |
| <aai.rest.client.version>1.2.1</aai.rest.client.version> |
| <sdc-distribution-client.version>1.3.0</sdc-distribution-client.version> |
| <logback.version>1.2.3</logback.version> |
| <!-- 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> |
| <!-- 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> |
| |
| <sonar.jacoco.reportPath /> |
| <sonar.jacoco.itReportPath /> |
| <sonar.jacoco.reportMissing.force.zero /> |
| |
| <jacoco.line.coverage.limit>0.75</jacoco.line.coverage.limit> |
| <jacoco.version>0.8.5</jacoco.version> |
| <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version> |
| <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> |
| <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> |
| <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions> |
| |
| <sonar.scanner.version>3.7.0.1746</sonar.scanner.version> |
| |
| </properties> |
| |
| <distributionManagement> |
| <repository> |
| <id>ecomp-releases</id> |
| <name>ECOMP Release Repository</name> |
| <url>${nexusproxy}/content/repositories/releases/</url> |
| </repository> |
| <snapshotRepository> |
| <id>ecomp-snapshots</id> |
| <name>ECOMP Snapshot Repository</name> |
| <url>${nexusproxy}/content/repositories/snapshots/</url> |
| </snapshotRepository> |
| </distributionManagement> |
| |
| <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-web</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-tomcat</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.aai</groupId> |
| <artifactId>babel</artifactId> |
| <version>${babel.version}</version> |
| <classifier>client</classifier> |
| <exclusions> |
| <exclusion> |
| <groupId>*</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.jersey.core</groupId> |
| <artifactId>jersey-common</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.onap.aai</groupId> |
| <artifactId>rest-client</artifactId> |
| <version>${aai.rest.client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.code.gson</groupId> |
| <artifactId>gson</artifactId> |
| </dependency> |
| |
| <!-- Test dependencies --> |
| <!-- https://mvnrepository.com/artifact/com.mikesamuel/json-sanitizer --> |
| <dependency> |
| <groupId>com.mikesamuel</groupId> |
| <artifactId>json-sanitizer</artifactId> |
| <version>1.2.0</version> |
| </dependency> |
| |
| <!-- Common logging framework --> |
| <dependency> |
| <groupId>org.onap.aai.logging-service</groupId> |
| <artifactId>common-logging</artifactId> |
| <version>1.5.0</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>org.onap.sdc.sdc-distribution-client</groupId> |
| <artifactId>sdc-distribution-client</artifactId> |
| <version>${sdc-distribution-client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.json</groupId> |
| <artifactId>json</artifactId> |
| <version>20131018</version><!--$NO-MVN-MAN-VER$ --> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-security</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>jline</groupId> |
| <artifactId>jline</artifactId> |
| <version>2.12.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| <version>${commons-compress.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>2.4</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-text</artifactId> |
| <version>${apache.commons-text.version}</version> |
| </dependency> |
| |
| <!-- Test dependencies --> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-all</artifactId> |
| <version>${hamcrest-all.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-test</artifactId> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <!-- Plugins and repositories --> |
| <pluginRepositories> |
| <pluginRepository> |
| <id>central</id> |
| <url>http://repo1.maven.org/maven2</url> |
| </pluginRepository> |
| <pluginRepository> |
| <id>EvoSuite</id> |
| <name>EvoSuite Repository</name> |
| <url>http://www.evosuite.org/m2</url> |
| </pluginRepository> |
| </pluginRepositories> |
| |
| <repositories> |
| <repository> |
| <id>central</id> |
| <name>Maven 2 repository 2</name> |
| <url>http://repo2.maven.org/maven2/</url> |
| </repository> |
| <repository> |
| <id>ecomp-releases</id> |
| <name>ECOMP Release Repository</name> |
| <url>${nexusproxy}/content/repositories/releases/</url> |
| </repository> |
| <repository> |
| <id>ecomp-snapshots</id> |
| <name>ECOMP Snapshot Repository</name> |
| <url>${nexusproxy}/content/repositories/snapshots/</url> |
| </repository> |
| <repository> |
| <id>ecomp-staging</id> |
| <name>ECOMP Staging Repository</name> |
| <url>${nexusproxy}/content/repositories/staging/</url> |
| </repository> |
| </repositories> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-maven-plugin</artifactId> |
| <version>${spring-boot.version}</version> |
| <configuration> |
| <executable>true</executable> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>repackage</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>version/properties</include> |
| <include>pom.xml</include> |
| </includes> |
| <skipExistingHeaders>true</skipExistingHeaders> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <!-- Set goal to "format" to auto update license headers --> |
| <goal>check</goal> |
| </goals> |
| <phase>process-sources</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-deploy-plugin</artifactId> |
| <configuration> |
| <classifier>client</classifier> |
| </configuration> |
| </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> |
| |
| <!-- once we connect aai-parent or oparent 3.0+ we can take out this |
| whole section --> |
| |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>${jacoco.version}</version> |
| <configuration> |
| <!-- Note: This exclusion list should match <sonar.exclusions> property |
| above --> |
| <excludes> |
| <exclude>**/gen/**</exclude> |
| <exclude>**/generated-sources/**</exclude> |
| <exclude>**/yang-gen/**</exclude> |
| <exclude>**/pax/**</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <!-- Prepares the property pointing to the JaCoCo runtime agent which |
| is passed as VM argument when Maven the Surefire plugin is executed. --> |
| <execution> |
| <id>pre-unit-test</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile> |
| <!-- Sets the name of the property containing the settings for JaCoCo |
| runtime agent. --> |
| <propertyName>surefireArgLine</propertyName> |
| </configuration> |
| </execution> |
| <!-- Ensures that the code coverage report for unit tests is created |
| after unit tests have been run. --> |
| <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}/code-coverage/jacoco-ut.exec</dataFile> |
| <!-- Sets the output directory for the code coverage report. --> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>pre-integration-test</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile> |
| <!-- Sets the name of the property containing the settings for JaCoCo |
| runtime agent. --> |
| <propertyName>failsafeArgLine</propertyName> |
| </configuration> |
| </execution> |
| <!-- Ensures that the code coverage report for integration tests after |
| integration tests have been run. --> |
| <execution> |
| <id>post-integration-test</id> |
| <phase>post-integration-test</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the path to the file which contains the execution data |
| . --> |
| <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile> |
| <!-- Sets the output directory for the code coverage report. --> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>default-check</id> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <configuration> |
| <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile> |
| <rules> |
| <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-surefire-plugin</artifactId> |
| <version>3.0.0-M4</version> |
| <configuration> |
| <!-- Sets the VM argument line used when unit tests are run. --> |
| <argLine>${surefireArgLine}</argLine> |
| <!-- Excludes integration tests when unit tests are run. --> |
| <excludes> |
| <exclude>**/IT*.java</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>3.0.0-M4</version> |
| <executions> |
| <!-- Ensures that both integration-test and verify goals of the Failsafe |
| Maven plugin are executed. --> |
| <execution> |
| <id>integration-tests</id> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| <configuration> |
| <!-- Sets the VM argument line used when integration tests are run. --> |
| <argLine>${failsafeArgLine}</argLine> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>${sonar.scanner.version}</version> |
| </plugin> |
| <!-- end removable sonar config --> |
| |
| |
| |
| </plugins> |
| </build> |
| </project> |