<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.openecomp.so</groupId>
    	<artifactId>bpmn</artifactId>
    	<version>1.1.0-SNAPSHOT</version>
  	</parent>
  	<artifactId>MSOCommonBPMN</artifactId>
  	<name>MSOCommonBPMN</name>
  	<packaging>war</packaging>

	<build>
		<plugins>
		    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>test-compile</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                            <configuration>
                                <skip>false</skip>
                            </configuration>
                        </execution>
                    </executions>
            </plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.6</version>
				<executions>
					<execution>
 						<!-- Build MSOCommonBPMN-${version}.jar -->
						<id>default-jar</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
                        	<excludes>
								<exclude>org/openecomp/mso/bpmn/common/MSOCommonApplication.class</exclude>
<!-- 								<exclude>META-INF/</exclude> -->
							</excludes>
						</configuration>
					</execution>
	               	<execution>
	                	<goals>
	                		<goal>test-jar</goal>
	                    </goals>
	                    <configuration>
	                       <forceCreation>true</forceCreation>
	                       <skip>false</skip>
	                    </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.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.3</version>
				<configuration>
				    <failOnMissingWebXml>false</failOnMissingWebXml>
				</configuration>
			</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>
		</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>
			<!-- AssertJ Testing Library -->
			<groupId>org.camunda.bpm.extension</groupId>
			<artifactId>camunda-bpm-assert</artifactId>
			<version>1.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.10.19</version>
			<scope>test</scope>
		</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>

		<!-- 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>
			<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>
		    <groupId>org.jboss.resteasy</groupId>
		    <artifactId>resteasy-client</artifactId>
		    <version>3.0.19.Final</version>
		    <scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpclient</artifactId>
				</exclusion>
			</exclusions>
		</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.openecomp.so</groupId>
			<artifactId>MSOCoreBPMN</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<!-- unit test utilities -->
			<groupId>org.openecomp.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.openecomp.so</groupId>
		<artifactId>MSOMockServer</artifactId>
		<version>${project.version}</version>
		<classifier>classes</classifier>
		<scope>test</scope>
	</dependency>
	<dependency>
	  <groupId>org.openecomp.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>com.github.tomakehurst</groupId>
			<artifactId>wiremock</artifactId>
			<version>1.56</version>
			<scope>test</scope>
			<classifier>standalone</classifier>
			<exclusions>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jetty</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-annotations</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-databind</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpclient</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.skyscreamer</groupId>
					<artifactId>jsonassert</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xmlunit</groupId>
					<artifactId>xmlunit</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.jayway.jsonpath</groupId>
					<artifactId>json-path</artifactId>
				</exclusion>
				<exclusion>
					<groupId>net.sf.jopt-simple</groupId>
					<artifactId>jopt-simple</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>
</project>
