<?xml version="1.0"?>
<!--
  ============LICENSE_START==========================================
  org.onap.dmaap
  ===================================================================
  Copyright © 2018 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============================================
  ECOMP is a trademark and service mark of AT&T Intellectual Property.
-->
<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.onap.dmaap.dbcapi</groupId>
	<artifactId>dbcapi</artifactId>
	<version>${artifact.version}</version>
	<name>dmaap-dbcapi</name>
	<parent>
		<groupId>org.onap.oparent</groupId>
		<artifactId>oparent</artifactId>
		<version>1.1.0</version>
		<relativePath />
	</parent>
	<build>
		<finalName>dbcapi</finalName>
		<resources>
			<resource>
				<directory>src/main/java/org/onap/dmaap/dbcapi/logging</directory>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
		<plugins>
			<!-- reference: https://tech.homeaway.com/development/2016/06/02/generating-swagger-spec.html -->
			<plugin>
				<groupId>com.github.kongchen</groupId>
				<artifactId>swagger-maven-plugin</artifactId>
				<version>3.1.5</version>
				<configuration>
					<apiSources>
						<apiSource>
							<springmvc>false</springmvc>
							<locations>
								<location>org.onap.dmaap.dbcapi.resources</location>
							</locations>
							<schemes>
								<scheme>http</scheme>
								<scheme>https</scheme>
							</schemes>
							<host>www.[host]:[port]</host>
							<basePath>/webapi</basePath>
							<info>
								<title>DMaaP Bus Controller REST API</title>
								<version>1.1.0</version>
								<description>
									provides an API for OpenDCAE components which need to provision
									underlying DMaaP technologies (Data Router and Message Router).
									Primary clients for this API are anticipated to be the OpenDCAE
									Controller, OpenDCAE Orchestrator, OpenDCAE Inventory and the
									ECOMP Portal.

									Objects managed by DMaaP are deployed in a dcaeLocation which is a
									unique identifier for an OpenStack tenant for a dcaeLayer,
									opendcae-central (aka ecomp) or opendcae-local-ntc (aka edge).

									A dcaeEnvironment (e.g. FTL or prod) has a single DMaaP. A
									DMaaP is managed by a one or more stateless DMaaP Bus
									Controller(s), though Bus Controller relies on PGaaS for
									persistence. Each DMaaP has a single instance of Data Router,
									which has 1 or more DR_Nodes deployed at each dcaeLocation. DR
									Clients of type DR_Pub generally publish to a DR_Node that is
									local to its dcaeLocation. Routing for a Feed is determined by
									the dcaelocation of its DR_Sub clients.

									A DMaaP may have many Message Router instances. Each instance is
									deployed as an MR_Cluster. One MR_Cluster is deployed at each
									dcaeLocation. MR_Clients generally communicate to the
									MR_Cluster at the same dcaeLocation. Replication of messages
									between MR_Clusters is accomplished by MR Bridge, which is
									provioned by DMaaP Bus Controller based on Topic attributes.

									Therefore, the role of DMaaP Bus Controller is to support other
									DCAE infrastructure components to dynamically provision DMaaP
									services on behalf of DMaaP clients, and to assist in any
									management or discovery activity of its clients.

									A convention of this API is to return JSON responses per
									OpenStack style.
								</description>
								<termsOfService>
									http://www.apache.org/licenses/LICENSE-2.0
								</termsOfService>
								<contact>
									<url>http://www.onap.org</url>
								</contact>
								<license>
									<url>http://www.apache.org/licenses/LICENSE-2.0</url>
									<name>Licensed under the Apache License, Version 2.0</name>
								</license>
							</info>
							<swaggerDirectory>target/generated-sources/</swaggerDirectory>
						</apiSource>
					</apiSources>
				</configuration>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- for Staging -->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ecomp-staging</serverId>
                    <nexusUrl>${nexusproxy}</nexusUrl>
                    <stagingProfileId>176c31dfe190a</stagingProfileId>
                </configuration>
            </plugin>


		<!-- for Distribution Managment -->
		<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>
				<!--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>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[2.10,)</versionRange>
										<goals>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.glassfish.jersey</groupId>
				<artifactId>jersey-bom</artifactId>
				<version>${jersey.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
        <dependency>
			<groupId>org.onap.aaf.authz</groupId>
			<artifactId>aaf-cadi-aaf</artifactId>
			<version>2.1.2-SNAPSHOT</version>
            <classifier>full</classifier>
        </dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
<!-- for DMAAP-205, a point release on the common version
	 addresses a security issue.  Note the add notation here
			<version>${jackson.version}.1</version>
  -->
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.2.0</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.2.0</version>
		</dependency>
<!-- DMAAP-656:
   - override this dependency because it utilized a third party
   - lib called com.google.guava:20.0 which had severe security threat identified.
 -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>24.1.1-jre</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-core</artifactId>
			<version>${swagger.version}</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-jersey2-jaxrs</artifactId>
			<version>${swagger.version}</version>
		</dependency>
		<dependency>
			<groupId>io.swagger</groupId>
			<artifactId>swagger-annotations</artifactId>
			<version>${swagger.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-servlet-core</artifactId>
			<!-- use the following artifactId if you don't need servlet 2.x compatibility -->
			<!-- artifactId>jersey-container-servlet</artifactId -->
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-moxy</artifactId>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-server</artifactId>
			<version>${jettyVersion}</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-servlet</artifactId>
			<version>${jettyVersion}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-servlets</artifactId>
			<version>${jettyVersion}</version>
			<scope>compile</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.11</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>9.4.1208.jre7</version>
		</dependency>
		<dependency>
			<groupId>com.att.eelf</groupId>
			<artifactId>eelf-core</artifactId>
			<version>${eelf.version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.22</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.test-framework.providers</groupId>
			<!-- use this if compatibility issues with jetty artifactId:
			<artifactId>jersey-test-framework-provider-jetty</artifactId>
        	<version>${jersey.version}</version>
			-->
			<artifactId>jersey-test-framework-provider-jdk-http</artifactId>
        	<version>2.22.1</version>
		</dependency>
		<dependency>
    		<groupId>org.glassfish.jersey.inject</groupId>
    		<artifactId>jersey-hk2</artifactId>
		</dependency>
	</dependencies>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
				<configuration>
					<failOnError>false</failOnError>
					<doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
					<docletArtifact>
						<groupId>org.umlgraph</groupId>
						<artifactId>umlgraph</artifactId>
						<version>5.6</version>
					</docletArtifact>
					<additionalparam>-views</additionalparam>
					<useStandardDocletOptions>true</useStandardDocletOptions>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
	<distributionManagement>
		<site>
			<id>ecomp-site</id>
			<url>dav:${nexusproxy}${sitePath}</url>
		</site>
	</distributionManagement>
	<properties>
		<swagger.version>1.5.19</swagger.version>
	    <jackson.version>2.9.5</jackson.version>
		<jersey.version>2.26</jersey.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<jettyVersion>9.3.8.RC0</jettyVersion> 
		<eelf.version>0.0.1</eelf.version>
		<artifact.version>1.0.15-SNAPSHOT</artifact.version>
		<!-- SONAR -->
		<jacoco.version>0.7.7.201606060606</jacoco.version>
		<sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
		<!-- Default Sonar configuration -->
		<sonar.jacoco.reportPath>target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
		<sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
		<!-- Note: This list should match jacoco-maven-plugin's exclusion list 
			below -->
		<sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>

		<!-- for Distribution Management -->
		<sitePath>/content/sites/site/org/onap/dmaap/buscontroller/${artifact.version}</sitePath>
		<nexusproxy>https://nexus.onap.org</nexusproxy>
	</properties>
	<description>Data Movement as a Platform (DMaaP) Bus Controller provides a REST API for other DCAE infrastructure components to provision DMaaP resources.  A DMaaP resource is a Data Router Feed or a Message Router Topic, and their associated publishers and subscribers.</description>
</project>
