<?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>
		<relativePath />
	</parent>

	<groupId>org.onap.portal</groupId>
	<artifactId>onap-portal-parent</artifactId>
	<version>3.4.0</version>

	<packaging>pom</packaging>
	<name>portal</name>

	<modules>
		<!-- This parent POM names only ONAP projects -->
		<module>ecomp-portal-BE-common</module>
		<module>ecomp-portal-BE-os</module>
		<module>portal-FE-os</module>
		<module>ecomp-portal-widget-ms</module>
	</modules>

	<properties>
		<!-- Jenkins should invoke mvn with argument -Dbuild.number=${BUILD_NUMBER} -->
		<build.number>0</build.number>
		<epsdk.version>3.3.0-SNAPSHOT</epsdk.version>
		<springframework.version>4.3.24.RELEASE</springframework.version>
		<springframework.security.version>4.2.13.RELEASE</springframework.security.version>
		<hibernate.version>4.3.11.Final</hibernate.version>
		<fasterxml.version>2.8.11.4</fasterxml.version>
		<!-- NOT provided by OParent, unfortunately -->
		<jacocoVersion>0.8.1</jacocoVersion>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<encoding>UTF-8</encoding>
		<!-- <sonar.exclusions>**/scripts/**/*,**.js</sonar.exclusions>  -->
		<sonar.test.exclusions>**/test/**/*,**/tests/**/*</sonar.test.exclusions>
		<enforcer.skip>false</enforcer.skip>
		<sonar.scm.exclusions.disabled>true</sonar.scm.exclusions.disabled>
		<enforcerToDisableSnapshot>false</enforcerToDisableSnapshot>
	</properties>

	<!-- Specify the repositories here to avoid coordination of ~/.m2/settings.xml 
		files among developers. Use values (not properties) so oparent can be resolved. -->
	<repositories>
		<repository>
			<id>onap-releases</id>
			<name>ONAP - Release Repository</name>
			<url>https://nexus.onap.org/content/repositories/releases</url>
		</repository>
		<repository>
			<id>onap-staging</id>
			<name>ONAP - Staging Repository</name>
			<url>https://nexus.onap.org/content/repositories/staging</url>
		</repository>
		<repository>
			<id>onap-snapshots</id>
			<name>ONAP - Snapshot Repository</name>
			<url>https://nexus.onap.org/content/repositories/snapshots</url>
		</repository>
		<repository>
			<id>onap-public</id>
			<url>https://nexus.onap.org/content/groups/public</url>
		</repository>
	</repositories>

	<!-- Specify the repositories here to avoid coordination of ~/.m2/settings.xml 
		files among all developers. -->
	<pluginRepositories>
		<pluginRepository>
			<id>onap-plugin-release</id>
			<url>https://nexus.onap.org/content/repositories/releases/</url>
		</pluginRepository>
		<pluginRepository>
			<id>onap-plugin-staging</id>
			<url>https://nexus.onap.org/content/repositories/staging/</url>
		</pluginRepository>
		<pluginRepository>
			<id>onap-plugin-snapshots</id>
			<url>https://nexus.onap.org/content/repositories/snapshots/</url>
		</pluginRepository>
	</pluginRepositories>

	<profiles>
		<!-- disable doclint, a new feature in Java 8, when generating javadoc -->
		<profile>
			<id>doclint-java8-disable</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>3.0.0-M1</version>
						<configuration>
							<additionalparam>-Xdoclint:none</additionalparam>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<build>
		<pluginManagement>
			<plugins>
				<!-- Silence Eclipse m2e warnings -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-checkstyle-plugin</artifactId>
										<versionRange>2.17,)</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.1</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
					</configuration>
				</plugin>
				<!-- maven-site-plugin config is provided by OParent -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.6</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.maven.wagon</groupId>
							<artifactId>wagon-webdav-jackrabbit</artifactId>
							<version>2.10</version>
						</dependency>
					</dependencies>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- Jacoco -->
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<!-- Override OParent version -->
				<version>${jacocoVersion}</version>
				<executions>
					<!-- disable jacoco executions from oparent -->
					<execution>
						<id>pre-unit-test</id>
						<phase>none</phase>
					</execution>
					<execution>
						<id>post-unit-test</id>
						<phase>none</phase>
					</execution>
					<execution>
						<id>pre-integration-test</id>
						<phase>none</phase>
					</execution>
					<execution>
						<id>post-integration-test</id>
						<phase>none</phase>
					</execution>
					<!-- Order matters -->
					<execution>
						<id>portal-prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<destFile>${sonar.jacoco.reportPath}</destFile>
						</configuration>
					</execution>
					<!-- offline instrumentation for PowerMock -->
					<execution>
						<id>portal-offline-instrument</id>
						<goals>
							<goal>instrument</goal>
						</goals>
					</execution>
					<execution>
						<id>portal-restore-instrumented-classes</id>
						<phase>test</phase>
						<goals>
							<goal>restore-instrumented-classes</goal>
						</goals>
					</execution>
					<execution>
						<id>portal-post-unit-test</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
						<configuration>
							<dataFile>${sonar.jacoco.reportPath}</dataFile>
							<outputDirectory>${project.basedir}/target/site/jacoco</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<systemPropertyVariables>
						<jacoco-agent.destfile>${project.build.directory}/code-coverage/jacoco-ut.exec</jacoco-agent.destfile>
					</systemPropertyVariables>
				</configuration>
			</plugin>
			<!-- No deployment step for this project -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<!-- version managed by oparent <version>2.8</version> -->
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>sonar-maven-plugin</artifactId>
				<version>3.0.2</version>
			</plugin>
			
			<plugin>
			<artifactId>maven-checkstyle-plugin</artifactId>
			<version>2.17</version>
			<dependencies>
			  <dependency>
				<groupId>org.onap.oparent</groupId>
				<artifactId>checkstyle</artifactId>
				<version>2.0.0</version>
			  </dependency>
			</dependencies>
			<executions>
			  <execution>
				<id>onap-license</id>
				<goals>
				  <goal>check</goal>
				</goals>
				<phase>process-sources</phase>
				<configuration>
				  <configLocation>onap-checkstyle/check-license.xml</configLocation>
				  <includeResources>false</includeResources>
				  <includeTestSourceDirectory>true</includeTestSourceDirectory>
				  <includeTestResources>false</includeTestResources>
				  <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
				  <excludes>
				  </excludes>
				  <consoleOutput>true</consoleOutput>
				  <failsOnViolation>false</failsOnViolation>
				</configuration>
			  </execution>
			  <execution>
				<id>onap-java-style</id>
				<goals>
				  <goal>check</goal>
				</goals>
				<phase>none</phase>
				<configuration>
				  <!-- Use Google Java Style Guide:
					   https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
					   with minor changes -->
				  <configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
				  <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory -->
				  <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
				  <includeResources>true</includeResources>
				  <includeTestSourceDirectory>true</includeTestSourceDirectory>
				  <includeTestResources>true</includeTestResources>
				  <excludes>
				  </excludes>
				  <consoleOutput>true</consoleOutput>
				  <failsOnViolation>false</failsOnViolation>
				</configuration>
			  </execution>
			</executions>
		  </plugin>
		  <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-enforcer-plugin</artifactId>
                     <version>3.0.0-M2</version>
                     <executions>
                      <execution>
                      <id>enforce-no-snapshots</id>
                      <goals>
                      <goal>enforce</goal>
                      </goals>
                    <configuration>
                    <rules>
                    <requireReleaseVersion>
                     <message>No Snapshots Allowed!</message>
                    </requireReleaseVersion>
                    </rules>
                    <fail>${enforcerToDisableSnapshot}</fail>
                    </configuration>
                  </execution>
                 </executions>
                 </plugin>
		</plugins>
	</build>

	<distributionManagement>
		<!-- oparent.version defines snapshot and release repositories -->
		<site>
			<id>ecomp-site</id>
			<url>dav:https://nexus.onap.org/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</url>
		</site>
	</distributionManagement>
</project>