<?xml version="1.0" encoding="UTF-8"?>
<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>
    </parent>
    
    <groupId>org.onap.aai</groupId>
    <artifactId>sparky-be</artifactId>
    <version>1.7.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>aai-sparky-be</name>

	<modules>
		<module>sparkybe-onap-service/pom.xml</module>
		<module>sparkybe-onap-application/pom.xml</module>
	</modules>

    <properties>
        <sitePath>/content/sites/site/org/onap/aai/sparky-be/${project.artifactId}/${project.version}</sitePath>
        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
	 <portal.sdk.version>2.6.0</portal.sdk.version>

	<sonar.jacoco.reportPath />
	<sonar.jacoco.itReportPath />
	<sonar.jacoco.reportMissing.force.zero />

	<jacoco.line.coverage.limit>0.90</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>

	<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-fw</artifactId>
                <version>${portal.sdk.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- we don't need to deploy the top level pom project -->
	<build>
	  <pluginManagement>
	    <plugins>
		<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                </plugin>
		</plugins>
	      </pluginManagement>

	      <!-- once we connect aai-parent or oparent 3.0+ we can take out this
		   whole section -->
	      <plugins>
	      <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>
		    <exclude>org/onap/aai/babel/xml/generator/xsd/*</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, note the additional exclusion for babel above
	      -->
	    </plugins>


	</build>
	
    <distributionManagement>
       <repository>
          <id>ecomp-releases</id>
          <name>ECOMP Release Repository</name>
          <url>${onap.nexus.url}/content/repositories/releases/</url>
       </repository>
       <snapshotRepository>
          <id>ecomp-snapshots</id>
          <name>ECOMP Snapshot Repository</name>
          <url>${onap.nexus.url}/content/repositories/snapshots/</url>
      </snapshotRepository>
      <site>
        <id>ecomp-site</id>
        <url>dav:${onap.nexus.url}${sitePath}</url>
      </site>
   </distributionManagement>

    <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>${onap.nexus.url}/content/repositories/releases/</url>
        </repository>
        <repository>
            <id>ecomp-staging</id>
            <name>ECOMP Staging Repository</name>
            <url>${onap.nexus.url}/content/repositories/staging/</url>
        </repository>
        <repository>
            <id>ecomp-snapshots</id>
            <name>ECOMP Snapshot Repository</name>
            <url>${onap.nexus.url}/content/repositories/snapshots/</url>
        </repository>
    </repositories>
	
</project>