blob: 77559a21f64b185743758d468d1da0d95c0bf9ef [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
ONAP POLICY-CLAMP
================================================================================
Copyright (C) 2017-2021 AT&T Intellectual Property. All rights reserved.
Modifications Copyright (C) 2021 Nordix Foundation.
================================================================================
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.policy.clamp</groupId>
<artifactId>policy-clamp</artifactId>
<version>6.3.0-SNAPSHOT</version>
</parent>
<artifactId>policy-clamp-runtime</artifactId>
<name>${project.artifactId}</name>
<description>
This is the MAVEN project that builds everything for ONAP POLICY-CLAMP.
Docker engine is normally required to perfom all possible tasks (including integration tests)
It can build:
- The ONAP POLICY-CLAMP JAR that contains CLAMP back-end code.
- The DOCKER images for:
* POLICY-CLAMP backend (Java Spring)
It can test:
- The POLICY-CLAMP backend, JAVA unit testing
- The POLICY-CLAMP backend, JAVA integration tests (with Spring + docker mariadb database + docker policy/dcae
emulator written in python)
The test coverage for dev's can be found after a "clean install" build in:
- Clamp backend: target/jacoco-dev.exec (unit tests + integration tests merged)
or separately target/coverage-reports/jacoco.exec and target/coverage-reports/jacoco-it.exec
Useful mvn commands:
- mvn clean install: Build Clamp backend JAR + unit tests + integration tests (+coverage for all)
- mvn clean install -DskipITs=true: Build Clamp backend JAR + unit tests (+coverage for all), it
does not require a DOCKER engine
- mvn clean install -DskipTests -P docker: Build Clamp backend JAR + all docker images
To start POLICY-CLAMP (Build it before. In order to start frontend, is also required policy/gui repo built):
- Use docker-compose file in ./extra/docker/clamp/docker-compose.yml
- Use the scripts located in ./extra/bin-for-dev/: start-db.sh + start-backend.sh
- Use your IDE to use the Jar or start NVM
</description>
<properties>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
<clamp.project.version>${project.version}</clamp.project.version>
<clamp.build.timestamp>${maven.build.timestamp}</clamp.build.timestamp>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
<sonar.coverage.jacoco.xmlReportPaths>${project.build.directory}/jacoco-html-xml-reports/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
<sonar.projectVersion>${project.version}</sonar.projectVersion>
<sonar.log.level>DEBUG</sonar.log.level>
<sonar.verbose>true</sonar.verbose>
<sonar.sources>src/main</sonar.sources>
<sonar.exclusions>src/main/resources/**</sonar.exclusions>
<sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
<sonar.coverage.exclusions>src/main/resources/**</sonar.coverage.exclusions>
<docker.push.registry>localhost:5000</docker.push.registry>
<docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
<docker.skip.build>true</docker.skip.build>
<docker.skip.push>true</docker.skip.push>
<docker.skip.tag>true</docker.skip.tag>
<skip.staging.artifacts>false</skip.staging.artifacts>
<python.http.proxy.param />
<!-- This property triggers generation of the Swagger documents -->
<!-- swagger.generation.phase>post-integration-test</swagger.generation.phase-->
</properties>
<profiles>
<!-- BEGIN: NOT USABLE profiles, those are defined when specific flags are enabled -->
<profile>
<id>without-test</id>
<activation>
<property>
<name>maven.test.skip</name>
<value>true</value>
</property>
</activation>
<properties>
<docker.skip.run>true</docker.skip.run>
<docker.skip>true</docker.skip>
</properties>
</profile>
<profile>
<id>without-IT-only</id>
<activation>
<property>
<name>skipITs</name>
<value>true</value>
</property>
</activation>
<properties>
<docker.skip.run>true</docker.skip.run>
<docker.skip>true</docker.skip>
</properties>
</profile>
<profile>
<id>without-IT-only2</id>
<activation>
<property>
<name>skipTests</name>
<value>true</value>
</property>
</activation>
<properties>
<docker.skip.run>true</docker.skip.run>
<docker.skip>true</docker.skip>
</properties>
</profile>
<!-- END: NOT USABLE profiles, those are defined when specific flags are enabled -->
<profile>
<id>docker</id>
<properties>
<skip.staging.artifacts>true</skip.staging.artifacts>
<docker.skip.build>false</docker.skip.build>
<docker.skip.tag>false</docker.skip.tag>
<docker.skip.push>false</docker.skip.push>
<docker.skip>false</docker.skip>
</properties>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>org.onap.policy.clamp</groupId>
<artifactId>policy-clamp-examples</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
</dependency>
<!-- For CAMEL -->
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-http-starter</artifactId>
<version>${version.camel}</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>${version.camel}</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-jaxb-starter</artifactId>
<version>${version.camel}</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-servlet-starter</artifactId>
<version>${version.camel}</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-gson-starter</artifactId>
<version>${version.camel}</version>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-swagger-java-starter</artifactId>
<version>${version.camel}</version>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-ext</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring famework -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<exclusions>
<exclusion>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Policy dependencies mainly for the models required -->
<dependency>
<groupId>org.onap.policy.models</groupId>
<artifactId>policy-models-pdp</artifactId>
<version>${policy.models.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
</exclusion>
<exclusion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
</exclusion>
<exclusion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-common</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Others dependencies -->
<!-- Jaxws is required for AAF -->
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
</dependency>
<dependency>
<groupId>org.onap.aaf.authz</groupId>
<artifactId>aaf-cadi-aaf</artifactId>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<exclusions>
<exclusion>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
<!-- Other dependencies to fix nexus IQ reported vulnerabilities -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
</dependency>
<!-- Remove the MYSQL connector and replace it by Mariadb -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<!-- For SDC Controller -->
<dependency>
<groupId>org.onap.sdc.sdc-distribution-client</groupId>
<artifactId>sdc-distribution-client</artifactId>
</dependency>
<dependency>
<groupId>org.onap.sdc.sdc-tosca</groupId>
<artifactId>sdc-tosca</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
</dependency>
<!-- TESTING -->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java-core</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>policy-clamp-backend</finalName>
<testResources>
<testResource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>clds/aaf/**</exclude>
</excludes>
</testResource>
<testResource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>clds/aaf/**</include>
</includes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<excludes>
<exclude>**/*.jks</exclude>
<exclude>**/*.csar</exclude>
</excludes>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>src/test/resources/https</directory>
<includes>
<include>**.jks</include>
</includes>
<filtering>false</filtering>
<targetPath>https</targetPath>
</testResource>
<testResource>
<directory>src/test/resources/example/sdc</directory>
<includes>
<include>**.csar</include>
</includes>
<filtering>false</filtering>
<targetPath>example/sdc</targetPath>
</testResource>
</testResources>
<resources>
<!-- For AAF folder maven should not try to filter Keystores/Truststores ... Otherwise
they will be broken and unreadable -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>clds/aaf/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>clds/aaf/**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>de.jpdigital</groupId>
<artifactId>hibernate52-ddl-maven-plugin</artifactId>
<version>2.2.0</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>gen-ddl</goal>
</goals>
<configuration>
<packages>
<param>org.onap.policy.clamp</param>
</packages>
<dialects>
<param>MARIADB53</param>
</dialects>
<outputDirectory>${project.basedir}/extra/sql/bulkload/</outputDirectory>
<outputFileNameSuffix>create-tables</outputFileNameSuffix>
<!-- <createDropStatements>true</createDropStatements> -->
<omitDialectFromFileName>true</omitDialectFromFileName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>docker-tags</id>
<phase>validate</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>${project.basedir}/src/main/script/TagVersion.groovy</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>jar-with-only-classes</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>classes</classifier>
<includes>
<include>org/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>attach-artifact</goal>
</goals>
<phase>package</phase>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/policy-clamp-backend-classes.jar</file>
<type>jar</type>
<classifier>classes</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
<execution>
<id>reserve-port-for-tests</id>
<phase>process-resources</phase>
<goals>
<goal>reserve-network-port</goal>
</goals>
<configuration>
<portNames>
<portName>docker.mariadb.port.host</portName>
<portName>docker.http-cache.port.host</portName>
<portName>clamp.it.tests.http-redirected</portName>
<portName>clamp.it.tests.robotframework.http</portName>
<portName>clamp.it.tests.https</portName>
<portName>clamp.it.tests.http</portName>
</portNames>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<forkCount>1C</forkCount>
<reuseForks>true</reuseForks>
<useSystemClassLoader>false</useSystemClassLoader>
<argLine>${surefireArgLine}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>${project.build.directory}/classes
</additionalClasspathElement>
</additionalClasspathElements>
<includes>
<include>**/*ItTestCase.java</include>
</includes>
<forkCount>1C</forkCount>
<reuseForks>true</reuseForks>
<useSystemClassLoader>false</useSystemClassLoader>
<argLine>${failsafeArgLine}</argLine>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
<apiVersion>1.35</apiVersion>
<images>
<image>
<name>docker.io/mariadb:10.5.4</name>
<alias>mariadb</alias>
<run>
<env>
<MYSQL_ROOT_PASSWORD>strong_pitchou</MYSQL_ROOT_PASSWORD>
</env>
<hostname>mariadb</hostname>
<volumes>
<bind>
<volume>${project.basedir}/extra/sql/:/docker-entrypoint-initdb.d:rw</volume>
<volume>${project.basedir}/extra/docker/mariadb/conf1:/etc/mysql/conf.d</volume>
</bind>
</volumes>
<wait>
<log>port: 3306</log>
<time>300000</time>
<exec>
<preStop>/docker-entrypoint-initdb.d/dump/backup-data-only.sh</preStop>
</exec>
</wait>
<ports>
<port>${docker.mariadb.port.host}:3306</port>
</ports>
<network>
<mode>bridge</mode>
</network>
</run>
</image>
<image>
<name>docker.io/python:2-slim</name>
<alias>python</alias>
<run>
<hostname>python</hostname>
<volumes>
<bind>
<volume>
${project.basedir}/src/test/resources/http-cache/:/usr/src/http-cache-app
</volume>
<volume>
${project.basedir}/src/test/resources/http-cache/example/:/usr/src/http-cache-app/data-cache
</volume>
</bind>
</volumes>
<wait>
<tcp>
<ports>
<port>8080</port>
</ports>
<mode>direct</mode>
</tcp>
<time>120000</time>
</wait>
<ports>
<port>${docker.http-cache.port.host}:8080</port>
</ports>
<workingDir>/usr/src/http-cache-app</workingDir>
<cmd>
<shell>./start_http_cache.sh ${python.http.proxy.param}
--python_proxyaddress=localhost:${docker.http-cache.port.host}
</shell>
</cmd>
<network>
<mode>bridge</mode>
</network>
</run>
</image>
<image>
<name>onap/policy-clamp-backend</name>
<alias>onap-policy-clamp-backend</alias>
<run>
<skip>true</skip>
</run>
<build>
<cleanup>true</cleanup>
<tags>
<tag>latest</tag>
<tag>${project.docker.latesttagtimestamp.version}</tag>
<tag>${project.docker.latesttag.version}</tag>
</tags>
<!-- A relative path is looked up in ${project.basedir}/src/main/docker by
default -->
<dockerFile>backend/Dockerfile</dockerFile>
<assembly>
<descriptor>backend/backend-files.xml</descriptor>
<name>onap-policy-clamp-backend</name>
</assembly>
</build>
</image>
</images>
</configuration>
<executions>
<execution>
<id>generate-images</id>
<phase>install</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<execution>
<id>push-images</id>
<phase>deploy</phase>
<goals>
<goal>push</goal>
</goals>
</execution>
<execution>
<id>docker-start-for-it</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>docker-stop-for-it</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<configuration>
<dumpOnExit>true</dumpOnExit>
<append>true</append>
<includes>
<include>org/onap/policy/clamp/**</include>
</includes>
</configuration>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/coverage-reports/jacoco.exec</destFile>
<propertyName>surefireArgLine</propertyName>
<!-- <append>true</append> -->
</configuration>
</execution>
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/coverage-reports/jacoco-it.exec</destFile>
<propertyName>failsafeArgLine</propertyName>
<!-- <append>true</append> -->
<!-- Need to overwrite the policy integration parent flag -->
<skip>false</skip>
</configuration>
</execution>
<execution>
<goals>
<goal>merge</goal>
</goals>
<phase>post-integration-test</phase>
<configuration>
<fileSets>
<fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
<directory>${project.build.directory}/coverage-reports</directory>
<includes>
<include>*.exec</include>
</includes>
</fileSet>
</fileSets>
<destFile>${project.build.directory}/jacoco.exec</destFile>
</configuration>
</execution>
<execution>
<id>report-xml</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Setting explicit path, so that we remember where it picks them up from -->
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-html-xml-reports</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- This plugin will be useful when we will have multi-modules project -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
</plugin>
<!-- Plugin to generate a X509 Certificate for https tests -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>keytool-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-certificate-for-dev</id>
<configuration>
<keystore>${project.build.directory}/classes/clds/aaf/org.onap.clamp.p12</keystore>
<storepass>China in the Spring</storepass>
<alias>clamptest</alias>
<storetype>PKCS12</storetype>
<keyalg>RSA</keyalg>
<dname>cn=CN, ou=OU, o=O, c=C</dname>
<validity>365</validity>
</configuration>
<goals>
<goal>generateKeyPair</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>add-certificate-for-test</id>
<configuration>
<keystore>${project.build.directory}/test-classes/clds/aaf/org.onap.clamp.p12</keystore>
<storepass>China in the Spring</storepass>
<alias>clamptest</alias>
<storetype>PKCS12</storetype>
<keyalg>RSA</keyalg>
<dname>cn=CN, ou=OU, o=O, c=C</dname>
<validity>365</validity>
</configuration>
<goals>
<goal>generateKeyPair</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>