<?xml version="1.0" encoding="UTF-8"?>
<!-- ============LICENSE_START======================================================= 
	org.onap.optf.cmso ================================================================================ 
	Copyright © 2019 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="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.optf.cmso</groupId>
		<artifactId>cmso</artifactId>
		<version>2.0.0-SNAPSHOT</version>
	</parent>

	<groupId>org.onap.optf.cmso.ticketmgt</groupId>
	<artifactId>cmso-ticketmgt</artifactId>

	<packaging>jar</packaging>

	<name>cmso-ticketmgt</name>

	<properties>
		<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>

		<cmso.project.version>${project.version}</cmso.project.version>
		<cmso.build.timestamp>${maven.build.timestamp}</cmso.build.timestamp>
		<release-tag>Dublin</release-tag>
		<service.name>cmso</service.name>
		<name.space>org.onap.optf.cmso</name.space>
		<serviceArtifactName>cmso</serviceArtifactName>

		<java.version>1.8</java.version>
		<eelf.version>1.0.0</eelf.version>
		<spring.version>5.1.5.RELEASE</spring.version>
		<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
		<swagger.core.version>2.0.0</swagger.core.version>

		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.source>1.8</maven.compiler.source>
		<build.number>${maven.build.timestamp}</build.number>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
		<mariadb.version>2.2.1</mariadb.version>
		<swagger.directory>${basedir}/src/main/resources/META-INF/resources/swagger/</swagger.directory>
		<aaf.version>2.1.4</aaf.version>

		<!-- Sonar -->
		<ilib.version>2.0.7</ilib.version>
		<sonar.language>java</sonar.language>
		<jacoco.path>${basedir}/target/jacoco_report</jacoco.path>
		<jacoco.itPath>${basedir}/target/jacoco_itReport</jacoco.itPath>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.jacoco.reportPath>${basedir}/target/jacoco-ut.exec</sonar.jacoco.reportPath>
		<sonar.jacoco.itReportPath>${basedir}/target/jacoco-it.exec</sonar.jacoco.itReportPath>
		<sonar.surefire.reportsPath>${basedir}/target/surefire-reports</sonar.surefire.reportsPath>
		<sonar.failsafe.reportsPath>${basedir}/target/failsafe-reports</sonar.failsafe.reportsPath>

		<docker.push.registry>localhost:5000</docker.push.registry>
		<docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
		<docker.skip.build>false</docker.skip.build>
		<docker.skip.push>false</docker.skip.push>
		<docker.skip.tag>false</docker.skip.tag>
		<skip.staging.artifacts>false</skip.staging.artifacts>

	</properties>

	<dependencyManagement>
		<dependencies>
			<!-- Spring boot -->
			<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>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</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-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
		<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-loader-tools</artifactId> 
			</dependency> -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</dependency>
		<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> 
			</dependency> -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.mockito</groupId>
					<artifactId>mockito-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
		</dependency>
		<dependency>
			<groupId>com.att.eelf</groupId>
			<artifactId>eelf-core</artifactId>
			<version>${eelf.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.mockito</groupId>
					<artifactId>mockito-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.powermock</groupId>
					<artifactId>powermock-module</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.powermock</groupId>
					<artifactId>powermock-api-mockito</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.powermock</groupId>
					<artifactId>powermock-module-junit4</artifactId>
				</exclusion>

			</exclusions>
		</dependency>
		<!-- <dependency> <groupId>org.onap.aaf.authz</groupId> <artifactId>aaf-cadi-aaf</artifactId> 
			<version>2.1.1</version> </dependency> -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.1</version>
		</dependency>

		<!--Swagger Dependencies -->
		<dependency>
			<groupId>io.swagger.core.v3</groupId>
			<artifactId>swagger-jaxrs2</artifactId>
			<version>${swagger.core.version}</version>
		</dependency>
		<dependency>
			<groupId>io.swagger.core.v3</groupId>
			<artifactId>swagger-jaxrs2-servlet-initializer</artifactId>
			<version>${swagger.core.version}</version>
		</dependency>

		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-jersey2-jaxrs</artifactId>
			<version>1.5.0</version>
		</dependency>


		<!-- Database -->
		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
		</dependency>

		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-text</artifactId>
			<version>1.6</version>
		</dependency>
		<!-- Testing Dependencies -->
		<!-- <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> 
			<version>1.7.4</version> <scope>test</scope> </dependency> -->
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.9.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.jacoco</groupId>
			<artifactId>jacoco-maven-plugin</artifactId>
			<version>0.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.onap.aaf.authz</groupId>
			<artifactId>aaf-cadi-aaf</artifactId>
			<version>${aaf.version}</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>cmso-ticketmgt</finalName>
		<plugins>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.kongchen</groupId>
				<artifactId>swagger-maven-plugin</artifactId>
				<version>3.1.5</version>
				<configuration>
					<apiSources>
						<apiSource>
							<locations>
								<location>org.onap.optf.ticketmgt.service.rs</location>
							</locations>
							<basePath>/ticketmgt</basePath>
							<info>
								<title>${project.artifactId}</title>
								<version>${project.version}</version>
							</info>
							<swaggerDirectory>${swagger.directory}</swaggerDirectory>
						</apiSource>
					</apiSources>
				</configuration>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<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>${project.basedir}/src/main/script/TagVersion.groovy</source>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>${spring.boot.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>io.fabric8</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>0.26.0</version>
				<configuration>
					<verbose>true</verbose>
					<apiVersion>1.23</apiVersion>
					<images>
						<image>
							<name>onap/optf-cmso-ticketmgt</name>
							<alias>onap-optf-cmso-tciketmgt</alias>
							<build>
								<cleanup>true</cleanup>
								<tags>
									<tag>latest</tag>
									<tag>${project.docker.latesttagtimestamp.version}</tag>
									<tag>${project.docker.latesttag.version}</tag>
								</tags>
								<dockerFile>${project.basedir}/src/main/docker/Dockerfile</dockerFile>
								<assembly>
									<descriptor>${project.basedir}/src/main/docker/assembly/cmso-files.xml</descriptor>
									<name>onap-cmso-tm</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>build</goal>
							<goal>push</goal>
						</goals>
						<configuration>
							<image>onap/optf-cmso-ticketmgt:%l</image>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<!-- mention the logback.xml location through system property or environment 
			variable to edit logback.xml at run time -->
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>etc/config</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>${basedir}/truststore</directory>
				<targetPath>${basedir}/target/truststore</targetPath>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>${basedir}/bin</directory>
				<targetPath>${basedir}/target/bin</targetPath>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
			<resource>
				<directory>${basedir}/data</directory>
				<targetPath>${basedir}/target/data</targetPath>
				<filtering>true</filtering>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
		</resources>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											com.github.kongchen
										</groupId>
										<artifactId>
											swagger-maven-plugin
										</artifactId>
										<versionRange>
											[3.1.5]
										</versionRange>
										<goals>
											<goal>generate</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>snapshot</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<versionSuffix>-${build.number}-${release-tag}</versionSuffix>
			</properties>
		</profile>
		<profile>
			<id>next-stable</id>
			<properties>
				<versionSuffix>-${release-tag}</versionSuffix>
			</properties>
		</profile>
		<profile>
			<id>last-stable</id>
			<properties>
				<versionSuffix>-${release-tag}</versionSuffix>
			</properties>
		</profile>
	</profiles>
</project>