<?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.9-SNAPSHOT</version>
	</parent>
	<artifactId>uddi-tck</artifactId>
	<packaging>jar</packaging>
	<name>UDDI TCK Tests</name>
	<properties>
	     <cargo.version>1.7.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>
                                                                <home>${project.build.directory}/juddi-tomcat-${project.parent.version}</home>
							</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>
                                                                <home>${basedir}/target/node2/juddi-tomcat-${project.parent.version}</home>
							</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>
