<!--
  ============LICENSE_START=======================================================
  drools-pdp-apps
  ================================================================================
  Copyright (C) 2017 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>

	<groupId>org.openecomp.policy.drools-applications</groupId>
	<artifactId>drools-pdp-apps</artifactId>
	<version>1.1.0-SNAPSHOT</version>

	<name>Drools PDP Application Models</name>
	<packaging>pom</packaging>

	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.source.version>1.8</project.source.version>
		<project.target.version>1.8</project.target.version>
		<nexusproxy>https://nexus.onap.org</nexusproxy>
               <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
	</properties>

	<repositories>
		<repository>
			<id>central</id>
			<name>Maven 2 repository</name>
			<url>http://repo2.maven.org/maven2/</url>
		</repository>
		<repository>
			<id>ecomp-releases</id>
			<name>OpenECOMP Release Repository</name>
			<url>${nexusproxy}/content/repositories/releases/</url>
		</repository>
		<repository>
			<id>ecomp-staging</id>
			<name>OpenECOMP Staging Repository</name>
			<url>${nexusproxy}/content/repositories/staging/</url>
		</repository>
		<repository>
			<id>ecomp-snapshots</id>
			<name>OpenECOMP Snapshot Repository</name>
			<url>${nexusproxy}/content/repositories/snapshots/</url>
		</repository>
	</repositories>

	<build>
		<plugins>
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.7</version>
				<extensions>true</extensions>
				<configuration>
					<nexusUrl>${nexusproxy}</nexusUrl>
					<stagingProfileId>176c31dfe190a</stagingProfileId>
					<serverId>ecomp-staging</serverId>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8</version> <!-- This version supports the "deployAtEnd" parameter -->
				<configuration>
					<skip />
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<encoding>${project.encoding}</encoding>
					<source>${project.source.version}</source>
					<target>${project.target.version}</target>
				</configuration>
			</plugin>
            <!--

                license plugin

                 Run

                     mvn clean

                 before running from the command line

                     mvn license:update-file-header

            -->

            <plugin>

                <groupId>org.codehaus.mojo</groupId>

                <artifactId>license-maven-plugin</artifactId>

                <version>1.9</version>

                <configuration>

                    <extraExtensions>

                        <!-- Used to add or change the header style <fileTypeYouAreMapping>

                            fileTypeMappedInto </fileTypeYouAreMapping> -->
                        
                        <!-- Since it appears that comments in .json files are, at best, 
                        	iffy, you should remove the license headers from those files or
                        	you can list each individual file to be ignored in the ignore
                        	section below -->

                        <drl>java</drl>

                        <ccf>properties</ccf>

 

                        <!-- Because the typical sql comment type confuses the update algorithm -->

                        <sql>java</sql>
                        
                        <!-- yaml files are generated, but some are included -->
                        
                        <yaml>properties</yaml>

                    </extraExtensions>

                    <licenseName>apache_v2</licenseName>

 

                    <inceptionYear>2017</inceptionYear>

                    <organizationName>AT&amp;T Intellectual Property. All rights reserved.</organizationName>

 

                    <!-- Once you have established the tags and delimiter, they cannot be

                        changed -->

                    <processStartTag>============LICENSE_START=======================================================</processStartTag>

                    <processEndTag>============LICENSE_END=========================================================</processEndTag>

                    <sectionDelimiter>================================================================================</sectionDelimiter>

                    <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>

                    <canUpdateCopyright>true</canUpdateCopyright>

                    <canUpdateDescription>true</canUpdateDescription>

                    <canUpdateLicense>true</canUpdateLicense>

                    <emptyLineAfterHeader>true</emptyLineAfterHeader>

                    <roots>

                        <!-- Default is src, target/generated-sources, target/processed-sources -->

 

                        <!-- Everything except the files in the excludes section -->

                        <root>/</root>

                    </roots>

                    <excludes>

                        <!-- Files which are to be excluded. The pom.xml is excluded because

                            the start/end tags and the delimiters are in the body of the file. This confuses

                            the algorithm. So, this file must be manually updated with a license header. -->

                        <exclude>pom.xml</exclude>

                    </excludes>

                </configuration>

            </plugin>			

		<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>
	</build>

	<modules>
		<module>rest</module>
		<module>aai</module>
		<module>appc</module>
		<module>controlloop</module>
		<module>mso</module>
		<module>sdnc</module>
		<module>trafficgenerator</module>
		<module>template.demo</module>
		<module>vfwsim</module>
		<module>archetype-closedloop-demo-rules</module>
		<module>packages</module>
	</modules>


	<distributionManagement>
		<repository>
			<id>ecomp-releases</id>
			<name>OpenECOMP Release Repository</name>
			<url>${nexusproxy}/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>ecomp-snapshots</id>
			<name>OpenECOMP Snapshot Repository</name>
			<url>${nexusproxy}/content/repositories/snapshots/</url>
		</snapshotRepository>
		<site>
			<id>ecomp-site</id>
			<url>dav:${nexusproxy}${sitePath}</url>
		</site>

	</distributionManagement>

	<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>
</project>
