<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">
	<parent>
		<groupId>org.onap.so</groupId>
		<artifactId>bpmn</artifactId>
		<version>1.2.0-SNAPSHOT</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>MSOInfrastructureBPMN</artifactId>
	<packaging>war</packaging>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<failOnMissingWebXml>false</failOnMissingWebXml>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.6</version>
				<executions>
					<execution>
						<id>default-jar</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
                        	<excludes>
								<exclude>org/openecomp/mso/bpmn/infrastructure/MSOInfrastructureApplication.class</exclude>
<!-- 								<exclude>META-INF/</exclude> -->
							</excludes>
						</configuration>
					</execution>
               </executions>
            </plugin>
             <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                    <goals>
                        <goal>attach-artifact</goal>
                    </goals>
                    <phase>package</phase>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>${project.build.directory}/${project.artifactId}-${project.version}.jar</file>
                                    <type>jar</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
			<plugin>
				<groupId>org.apache.cxf</groupId>
				<artifactId>cxf-codegen-plugin</artifactId>
				<version>2.5.2</version>
			</plugin>
			<plugin>
            	<groupId>org.apache.maven.plugins</groupId>
            	<artifactId>maven-eclipse-plugin</artifactId>
            	<version>2.8</version>
            	<configuration>
                	<additionalProjectnatures>
                    	<projectnature>org.eclipse.jdt.groovy.core.groovyNature</projectnature>
                	</additionalProjectnatures>
                	<sourceIncludes>
                    	<sourceInclude>**/*.groovy</sourceInclude>
                	</sourceIncludes>
            	</configuration>
        	</plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>compile</id>
						<phase>compile</phase>
						<configuration>
							<tasks>
								<mkdir dir="${basedir}/src/main/groovy" />
								<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
									<classpath refid="maven.compile.classpath" />
								</taskdef>
								<mkdir dir="${project.build.outputDirectory}" />
								<groovyc destdir="${project.build.outputDirectory}"
									srcdir="${basedir}/src/main/groovy/" listfiles="true">
									<classpath refid="maven.compile.classpath" />
								</groovyc>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<id>test-compile</id>
						<phase>test-compile</phase>
						<configuration>
							<tasks>
								<mkdir dir="${basedir}/src/test/groovy" />
								<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc">
									<classpath refid="maven.test.classpath" />
								</taskdef>
								<mkdir dir="${project.build.testOutputDirectory}" />
								<groovyc destdir="${project.build.testOutputDirectory}"
									srcdir="${basedir}/src/test/groovy/" listfiles="true">
									<classpath refid="maven.test.classpath" />
								</groovyc>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		
			<plugin>
        		<groupId>org.apache.maven.plugins</groupId>
        		<artifactId>maven-dependency-plugin</artifactId>
       		</plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </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-antrun-plugin
										</artifactId>
										<versionRange>
											[1.3,)
										</versionRange>
										<goals>
											<goal>run</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<dependencies>
		<dependency>
			<!-- process engine, in compile scope to include it in the war file -->
			<groupId>org.camunda.bpm</groupId>
			<artifactId>camunda-engine</artifactId>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- Using the `DefaultEjbProcessApplication` result in: `java.sql.SQLException:
			You cannot commit during a managed transaction!` -->
		<dependency>
			<!-- CDI integration, needs to be included in WAR, otherwise CDI can not
				work correctly -->
			<groupId>org.camunda.bpm</groupId>
			<artifactId>camunda-engine-cdi</artifactId>
		</dependency>
		<dependency>
		    <groupId>com.google.guava</groupId>
		    <artifactId>guava</artifactId>
		    <version>22.0</version> <!-- or 22.0-android for the Android flavor -->
		</dependency>
		<dependency>
			<!-- AssertJ Testing Library -->
			<groupId>org.camunda.bpm.extension</groupId>
			<artifactId>camunda-bpm-assert</artifactId>
			<version>1.2</version>
			<scope>test</scope>
		</dependency>
		
		<!-- Spin dataformat support, in compile scope to include it in the war
			file -->
		<dependency>
			<groupId>org.camunda.spin</groupId>
			<artifactId>camunda-spin-dataformat-all</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<artifactId>camunda-spin-dataformat-all</artifactId>
			<groupId>org.camunda.spin</groupId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.camunda.bpm</groupId>
			<artifactId>camunda-engine-plugin-spin</artifactId>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>org.camunda.bpm</groupId>
			<artifactId>camunda-engine-plugin-connect</artifactId>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<!-- Bootstrap for styling via Webjars project -->
			<groupId>org.webjars</groupId>
			<artifactId>bootstrap</artifactId>
			<version>2.3.2</version>
		</dependency>
		<dependency>
			<!-- Needed for InMemoryH2Test -->
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.uuid</groupId>
			<artifactId>java-uuid-generator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-all</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.4</version>
		</dependency>
		<dependency>
			<groupId>org.onap.so</groupId>
			<artifactId>MSOCoreBPMN</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.onap.so</groupId>
			<artifactId>MSOCommonBPMN</artifactId>
			<version>${project.version}</version>
	    </dependency>
		<dependency>
			<groupId>org.onap.so</groupId>
			<artifactId>MSOCommonBPMN</artifactId>
			<version>${project.version}</version>
			<classifier>tests</classifier>
			<scope>test</scope>
		</dependency>
		<dependency>
			<!-- unit test utilities -->
			<groupId>org.onap.so</groupId>
			<artifactId>MSOCoreBPMN</artifactId>
			<version>${project.version}</version>
			<classifier>tests</classifier>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.0</version>
		</dependency>
		<!-- 		for encoding the url the same way A&AI does -->
	<dependency>
	   <groupId>org.springframework</groupId>
    	<artifactId>spring-web</artifactId>
    	<version>4.3.2.RELEASE</version>
	</dependency>
	<dependency>
	  <groupId>org.onap.so</groupId>
  	  <artifactId>MSORESTClient</artifactId>
  	  <version>${project.version}</version>
	</dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
    </dependency>


		<dependency>
      		<groupId>org.camunda.bpm</groupId>
      		<artifactId>camunda-engine-spring</artifactId>
   		</dependency>
   		<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.3.2.RELEASE</version>
</dependency>
<dependency>
			<!-- Optional Plugin for Camunda BPM Workbench -->
			<groupId>org.camunda.bpm.workbench</groupId>
			<artifactId>camunda-workbench-dist-embeddable</artifactId>
			<version>1.0.0-alpha8</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.onap.msb.java-sdk</groupId>
			<artifactId>msb-java-sdk</artifactId>
			<version>1.0.0</version>
			<exclusions>
				<exclusion>
					<groupId>com.eclipsesource.jaxrs</groupId>
					<artifactId>jersey-all</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- bwj add; Jetty-util -->
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-util</artifactId>
			<version>9.4.8.v20171121</version>
		</dependency>
		<!-- bwj add; hibernate-validator -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>5.4.2.Final</version>
		</dependency>
		<!-- bwj add; spring-test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>4.3.14.RELEASE</version>
		</dependency>
		<!-- bwj add; libphonenumber  -->
		<dependency>
			<groupId>com.googlecode.libphonenumber</groupId>
			<artifactId>libphonenumber</artifactId>
			<version>8.9.1</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

		<!--for yang tools-->
<!--		<dependency>
			<groupId>org.onap.so</groupId>
			<artifactId>common</artifactId>
			<version>1.1.0-SNAPSHOT</version>
		</dependency>

		<dependency>
			<groupId>org.onap.sdnc.northbound</groupId>
			<artifactId>generic-resource-api.model</artifactId>
			<version>1.2.0</version>
		</dependency>-->
	</dependencies>
</project>
