<?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.2.1</version>
	</parent>
	<artifactId>juddiv3-war</artifactId>
	<packaging>war</packaging>
	<name>jUDDI Services WAR</name>
	<url>http://juddi.apache.org</url>

	<dependencies>
		<dependency>
			<artifactId>uddi-ws</artifactId>
			<groupId>org.apache.juddi</groupId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.3</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.10</version>
		</dependency>
		    <dependency>
	         <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.2.1</version>
			</dependency>
			<dependency>
		<groupId>org.json</groupId>
		<artifactId>json</artifactId>
		<version>20090211</version>
	</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>juddiv3</finalName>
	</build>
	<profiles>
		<!-- the hibernate-jbossws-native profile builds a war for jboss, where 
			hibernate and jbossws are provided by the appserver -->
		<profile>
			<id>hibernate-jbossws-native</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>JPA/Hibernate-JBoss</directory>
								</resource>
								<resource>
									<directory>JAX-WS/JBossWS-Native</directory>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<artifactId>juddi-core</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
				<dependency>
					<groupId>javax.persistence</groupId>
					<artifactId>persistence-api</artifactId>
					<version>1.0</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate</artifactId>
					<version>3.2.5.ga</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>3.3.1.ga</version>
					<scope>provided</scope>
				</dependency>

			</dependencies>
		</profile>
		<profile>
			<id>hibernate-jbossws-cxf</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>JPA/Hibernate-JBoss</directory>
								</resource>
								<resource>
									<directory>JAX-WS/JBossWS-CXF</directory>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<artifactId>juddi-core</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
                      		<dependency>
					<artifactId>juddi-rest-cxf</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
				<dependency>
					<groupId>javax.persistence</groupId>
					<artifactId>persistence-api</artifactId>
					<version>1.0</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate</artifactId>
					<version>3.2.5.ga</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>3.3.1.ga</version>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>cglib</groupId>
					<artifactId>cglib-nodep</artifactId>
					<version>2.1_3</version>
					<scope>provided</scope>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<!-- the hibernate profile builds a war for tomcat, with hibernate and 
				cxf in the war -->
			<id>hibernate</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>JPA/Hibernate</directory>
								</resource>
								<resource>
									<directory>JAX-WS/CXF</directory>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<artifactId>juddi-core</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
                                <dependency>
					<artifactId>juddi-rest-cxf</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
				
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxws</artifactId>
					<version>${cxf.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
					<version>${cxf.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-transports-http</artifactId>
					<version>${cxf.version}</version>
					<exclusions>
						<exclusion>
							<groupId>cglib</groupId>
							<artifactId>cglib</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.springframework</groupId>
					<artifactId>spring-context</artifactId>
					<version>${springframework.version}</version>
				</dependency>
				<dependency>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
					<version>${springframework.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.geronimo.javamail</groupId>
					<artifactId>geronimo-javamail_1.4_mail</artifactId>
					<version>1.8.3</version>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<!-- the openjpa profile builds a war for tomcat, with openjpa and cxf 
				in the war -->
			<id>openjpa</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>JPA/OpenJPA</directory>
								</resource>
								<resource>
									<directory>JAX-WS/CXF</directory>
								</resource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<artifactId>juddi-core-openjpa</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
					<exclusions>
						<exclusion>
							<groupId>junit</groupId>
							<artifactId>junit</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
                <dependency>
					<artifactId>juddi-rest-cxf</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxws</artifactId>
					<version>${cxf.version}</version>
				</dependency>
				<!--added AO 6/8/2013 support for JSON encoding on REST endpoints -->
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-rs-extension-providers</artifactId>
					<version>2.7.5</version>
				</dependency>
				
				<dependency>
					<groupId>org.codehaus.jettison</groupId>
					<artifactId>jettison</artifactId>
					<version>1.3.4</version>
				</dependency>
				<!--END added AO 6/8/2013 support for JSON encoding on REST endpoints -->
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
					<version>${cxf.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.cxf</groupId>
					<artifactId>cxf-rt-transports-http</artifactId>
					<version>${cxf.version}</version>
					<exclusions>
						<exclusion>
							<groupId>cglib</groupId>
							<artifactId>cglib</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.springframework</groupId>
					<artifactId>spring-context</artifactId>
					<version>${springframework.version}</version>
				</dependency>
				<dependency>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
					<version>${springframework.version}</version>
				</dependency>
				<dependency>
					<groupId>org.apache.geronimo.javamail</groupId>
					<artifactId>geronimo-javamail_1.4_mail</artifactId>
					<version>1.8.3</version>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<!-- the openjpa-axis2 profile builds a war for tomcat, with openjpa and 
				axis2 in the war -->
			<id>axis2</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<webResources>
								<resource>
									<directory>JPA/OpenJPA</directory>
								</resource>
								<resource>
									<directory>JAX-WS/Axis2</directory>
								</resource>
							</webResources>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.6</version>
						<executions>
							<execution>
								<id>default-cli</id>
								<configuration>
									<target name="axis2-servicejars">
										<dependencyfilesets prefix="mydeps." />
										<mkdir dir="${basedir}/target/juddiv3/WEB-INF/servicejars" />
										<copy todir="${basedir}/target/juddiv3/WEB-INF/servicejars">
											<fileset refid="mydeps.org.apache.juddi:juddi-core-openjpa:jar" />
										</copy>
									</target>
								</configuration>
								<phase>compile</phase>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<!-- providing this through ant in the servicejars directory -->
				<dependency>
					<artifactId>juddi-core-openjpa</artifactId>
					<groupId>org.apache.juddi</groupId>
					<version>${project.version}</version>
					<exclusions>
						<exclusion>
							<groupId>junit</groupId>
							<artifactId>junit</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<!-- and then add the axis2 jars -->
				<dependency>
					<groupId>org.apache.axis2</groupId>
					<artifactId>axis2</artifactId>
					<version>1.6.2</version>
				</dependency>
				<dependency>
					<groupId>org.apache.axis2</groupId>
					<artifactId>axis2-jaxws</artifactId>
					<version>1.6.2</version>
				</dependency>
				<dependency>
					<groupId>org.apache.axis2</groupId>
					<artifactId>axis2-transport-http</artifactId>
					<version>1.6.2</version>
				</dependency>
				<dependency>
					<groupId>org.apache.axis2</groupId>
					<artifactId>axis2-transport-local</artifactId>
					<version>1.6.2</version>
				</dependency>
				<dependency>
					<groupId>org.apache.xmlbeans</groupId>
					<artifactId>xmlbeans</artifactId>
					<version>2.4.0</version>
				</dependency>
				<dependency>
					<groupId>org.apache.geronimo.javamail</groupId>
					<artifactId>geronimo-javamail_1.4_mail</artifactId>
					<version>1.8.3</version>
				</dependency>
			</dependencies>
		</profile>
		<profile>
            <id>jboss7up</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.4</version>
                        <configuration>
                            <packagingExcludes>
                                WEB-INF/lib/hibernate*.jar,
                                WEB-INF/lib/cglib*.jar,
                                WEB-INF/lib/log4j*.jar,
                                WEB-INF/lib/stax*.jar,
                                WEB-INF/lib/commons-log*.jar,
                                WEB-INF/classes/commons*,
                                WEB-INF/classes/log*
                            </packagingExcludes>
                            <webResources>
                                <resource>
                                    <directory>JPA/Hibernate-JBossAS7Up</directory>
                                </resource>
                                <resource>
                                    <directory>JAX-WS/CXF-JBossAS7Up</directory>
                                </resource>
                            </webResources>
                            
                        </configuration>
                    </plugin>
                </plugins>
            </build>
            <dependencies>
                <dependency>
                    <artifactId>juddi-core</artifactId>
                    <groupId>org.apache.juddi</groupId>
                    <version>${project.version}</version>
                    <exclusions>
                        <exclusion>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-core</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-entitymanager</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-jpa</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
                <dependency>
                    <artifactId>juddi-rest-cxf</artifactId>
                    <groupId>org.apache.juddi</groupId>
                    <version>${project.version}</version>
                    <exclusions>
                        <exclusion>
                            <groupId>org.apache.cxf</groupId>
                            <artifactId>cxf-rt-rs-extension-providers</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>cglib</groupId>
                            <artifactId>cglib-nodep</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-core</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-entitymanager</artifactId>
                        </exclusion>
                        <exclusion>
                            <groupId>org.hibernate</groupId>
                            <artifactId>hibernate-jpa</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
                
            </dependencies>
        </profile>
	</profiles>
</project>
