<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Copyright 2001-2009 The Apache Software Foundation.
 *
 * 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.
 *
 */ -->
<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>
	<parent>
		<groupId>org.apache.juddi</groupId>
		<artifactId>juddi-parent</artifactId>
		<version>3.3.8-SNAPSHOT</version>
	</parent>
	<artifactId>uddi-tck</artifactId>
	<packaging>jar</packaging>
	<name>UDDI TCK Tests</name>
	<properties>
	     <cargo.version>1.6.9</cargo.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.apache.juddi</groupId>
			<artifactId>uddi-ws</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.juddi</groupId>
			<artifactId>uddi-tck-base</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.juddi</groupId>
			<artifactId>juddi-client</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.juddi</groupId>
			<artifactId>juddi-tomcat</artifactId>
			<version>${project.parent.version}</version>
			<type>zip</type>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>org.apache.juddi</groupId>
					<artifactId>juddi-core-openjpa</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!--  for JAXWS
		   running into JUDDI-451 for CXF
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxws</artifactId>
			<version>2.3.1</version>
		</dependency>
		-->
		<!-- so using the SUN reference implementation for now -->
		<dependency>
			<groupId>com.sun.xml.ws</groupId>
			<artifactId>jaxws-rt</artifactId>
			<version>2.1.4</version>
		</dependency>
		
		<!--   for RMI 
		<dependency> <groupId>jboss</groupId>
			<artifactId>jbossall-client</artifactId>
			<version>4.2.2.GA</version>
			<scope>test</scope>
		</dependency>
		-->
		<dependency>
		    <groupId>org.easymock</groupId>
		    <artifactId>easymock</artifactId>
		    <scope>test</scope>
		</dependency>
		<dependency>
			<groupId>dumbster</groupId>
			<artifactId>dumbster</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-net</groupId>
			<artifactId>commons-net</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
		</dependency>
   		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-email</artifactId>
		</dependency>
					
	</dependencies>
	<build>
		<plugins>
			<plugin>
			    <artifactId>maven-clean-plugin</artifactId>
			    <configuration>
			      <filesets>
			        <fileset>
			          <directory>.</directory>
			          <includes>
			            <include>pref-rpt-*.txt</include>
			          </includes>
			          <followSymlinks>false</followSymlinks>
			        </fileset>
			      </filesets>
			    </configuration>
			  </plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>package</phase>
						<goals>
							<goal>copy</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.apache.juddi</groupId>
									<artifactId>juddi-tomcat</artifactId>
									<version>${project.parent.version}</version>
									<type>zip</type>
									<outputDirectory>${basedir}/target</outputDirectory>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>test</id>
						<phase>pre-integration-test</phase>
						<configuration>
							<tasks>
								<unzip dest="target" src="target/juddi-tomcat-${project.parent.version}.zip" />
								<copy file="${basedir}/server.xml" todir="target/juddi-tomcat-${project.parent.version}/conf" overwrite="true" />
								<copy file="${basedir}/log4j.properties" todir="target/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes" overwrite="true" />

								<unzip dest="target/node2" src="target/juddi-tomcat-${project.parent.version}.zip" />
								<copy file="${basedir}/serverNode2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/conf/server.xml" overwrite="true" />
								<copy file="${basedir}/log4j.properties" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes" overwrite="true" />

								<copy file="${basedir}/juddi_install_data_node2/root_BusinessEntity.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true" />
								<copy file="${basedir}/juddi_install_data_node2/root_Publisher.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true" />
								<copy file="${basedir}/juddi_install_data_node2/root_tModelKeyGen.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true" />
								<copy file="${basedir}/juddi_install_data_node2/UDDI_Publisher.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true" />
								<copy file="${basedir}/juddi_install_data_node2/UDDI_tModels.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true" />

								<copy file="${basedir}/context.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/META-INF" overwrite="true" />
								<copy file="${basedir}/context.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/META-INF" overwrite="true" />

								<copy file="${basedir}/uddiNode2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddi-gui/WEB-INF/classes/META-INF/uddi.xml" overwrite="true" />

								<copy file="${basedir}/juddiv3Node2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true" />

								<copy file="${basedir}/juddiv3Node2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true" />



								<copy file="${basedir}/juddiv3Node1.xml" tofile="target/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true" />
								<copy file="${basedir}/juddiv3Node1.xml" tofile="target/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true" />





							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.cargo</groupId>
				<artifactId>cargo-maven2-plugin</artifactId>
				<version>${cargo.version}</version>
				
				<executions>
					<execution>
						<id>start-container1</id>
						<phase>pre-integration-test</phase>
						<configuration>
							<wait>false</wait>
							<container>
								<containerId>tomcat9x</containerId>
								<home>${basedir}/target/juddi-tomcat-${project.parent.version}</home>
							</container>
							<configuration>
								<type>existing</type>
								<home>${project.build.directory}/juddi-tomcat-${project.parent.version}</home>
								<properties>
									<cargo.logging>high</cargo.logging>
									<cargo.hostname>localhost</cargo.hostname>
									<cargo.servlet.port>8880</cargo.servlet.port>
									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/juddi-tomcat-${project.parent.version}/endorsed -Djavax.net.ssl.keyStore=${basedir}/../juddi-tomcat/keystore.jks -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=${basedir}/../juddi-tomcat/truststore.jks -Djavax.net.ssl.trustStorePassword=password -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000 -Xnoagent</cargo.jvmargs>
								</properties>
							</configuration>
						</configuration>
						<goals>
							<goal>start</goal>
						</goals>
					</execution>


					<execution>
						<id>start-container2</id>
						<phase>pre-integration-test</phase>
						<configuration>
							<wait>false</wait>
							<container>
								<containerId>tomcat9x</containerId>
								<home>${basedir}/target/node2/juddi-tomcat-${project.parent.version}</home>
							</container>
							<configuration>
								<type>existing</type>
								<home>${project.build.directory}/node2/juddi-tomcat-${project.parent.version}</home>
								<properties>
									<cargo.logging>high</cargo.logging>
									<cargo.hostname>localhost</cargo.hostname>
									<cargo.servlet.port>8980</cargo.servlet.port>
									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/node2/juddi-tomcat-${project.parent.version}/endorsed -Djavax.net.ssl.keyStore=${basedir}/../juddi-tomcat/keystore.jks -Djavax.net.ssl.keyStorePassword=password  -Djavax.net.ssl.trustStore=${basedir}/../juddi-tomcat/truststore.jks -Djavax.net.ssl.trustStorePassword=password -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -Xnoagent</cargo.jvmargs>
								</properties>
							</configuration>
						</configuration>
						<goals>
							<goal>start</goal>
						</goals>
					</execution>

					<execution>
						<id>stop-container1</id>
						<phase>post-integration-test</phase>
						<configuration>
							<container>
								<containerId>tomcat9x</containerId>
							</container>
							<configuration>
								<properties>
									<cargo.servlet.port>8880</cargo.servlet.port>
								</properties>
								<home>${project.build.directory}/juddi-tomcat-${project.parent.version}</home>
							</configuration>
						</configuration>
						<goals>
							<goal>stop</goal>
						</goals>
					</execution>

					<execution>
						<id>stop-container2</id>
						<phase>post-integration-test</phase>
						<configuration>
							<container>
								<containerId>tomcat9x</containerId>
							</container>
							<configuration>
								<properties>
									<cargo.servlet.port>8980</cargo.servlet.port>
								</properties>
								<home>${project.build.directory}/node2/juddi-tomcat-${project.parent.version}</home>
							</configuration>
						</configuration>
						<goals>
							<goal>stop</goal>
						</goals>
					</execution>

				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skip>true</skip>
					<includes>
						<include>**/*IntegrationTest.java</include>
					</includes>
					<systemProperties>
						<property>
							<name>derby.stream.error.file</name>
							<value>target/derby.log</value>
						</property>
						<property>
							<name>java.io.tmpdir</name>
							<value>${basedir}/temp</value>
						</property>
					</systemProperties>
				</configuration>
				<executions>
					<execution>
						<id>surefire-it</id>
						<phase>integration-test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<skip>false</skip>
                                                        <runOrder>random</runOrder>
                                                        <skipAfterFailureCount>1</skipAfterFailureCount>
							<systemProperties>
								<property>
									<name>cactus.contextURL</name>
									<value>http://localhost:8880/juddi</value>
								</property>
								<property>
									<name>java.io.tmpdir</name>
									<value>${basedir}/temp</value>
								</property>
							</systemProperties>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
			<!-- deploying test-jar -->
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jar-plugin</artifactId>
			<executions>
				<execution>
					<goals>
						<goal>test-jar</goal>
					</goals>
				</execution>
			</executions>
		    </plugin>
		    <plugin>
		    <!-- deploying test-jar src -->
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-source-plugin</artifactId>
	        <executions>
	          <execution>
	            <id>attach-sources</id>
	            <phase>verify</phase>
	            <goals>
	              <goal>jar</goal>
	              <goal>test-jar</goal>
	            </goals>
	          </execution>
	        </executions>
	      </plugin>
	      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>test-jar</goal>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>load</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
							<includes>
								<include>**/*LoadTest.java</include>
							</includes>
							<systemProperties>
								<property>
									<name>derby.stream.error.file</name>
									<value>target/derby.log</value>
								</property>
							</systemProperties>
						</configuration>
						<executions>
							<execution>
								<id>surefire-it</id>
								<phase>integration-test</phase>
								<goals>
									<goal>test</goal>
								</goals>
								<configuration>
                                                                        <runOrder>random</runOrder>
									<skip>false</skip>
									<systemProperties>
										<property>
											<name>cactus.contextURL</name>
											<value>http://localhost:8880/juddi</value>
										</property>
									</systemProperties>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
