<?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.1.2</version>
	</parent>
	<artifactId>juddi-core</artifactId>
	<packaging>bundle</packaging>
	<properties>
		<persistence>hibernate</persistence>
	</properties>
	
	<name>jUDDI Core</name>
	<build>
		<plugins>	
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<excludes>
						<exclude>**/persistence</exclude>
						<exclude>**/persistence.xml</exclude>
						<exclude>**/hibernate-persistence.xml</exclude>
						<exclude>**/openjpa-persistence.xml</exclude>
						<exclude>**/juddi-orm.xml</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<version>1.4.0</version>
				<configuration>
				<instructions>
				<Export-Package>org.apache.juddi, org.apache.juddi.api, org.apache.juddi.api.impl, org.apache.juddi.api.util, org.apache.juddi.config, org.apache.juddi.config, org.apache.juddi.cryptor, org.apache.juddi.keygen, org.apache.juddi.mapping, org.apache.juddi.model, org.apache.juddi.query, org.apache.juddi.query.util, org.apache.juddi.rmi, org.apache.juddi.subscription, org.apache.juddi.subscription.notify, org.apache.juddi.validation, org.apache.juddi.v3.auth, org.apache.juddi.v3.error</Export-Package>
				<Include-Resource>juddi_install_data=src/main/resources/juddi_install_data, src/main/resources/messages.properties</Include-Resource>
			
				</instructions>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.3</version>
				<executions>
					<execution>
						<id>initialize-meta-inf</id>
						<phase>initialize</phase>
						<configuration>
							<tasks>
								<echo>PERSISTENCE=${persistence}</echo>
								<delete dir="src/main/java/META-INF" />
								<delete dir="src/main/resources/META-INF" />
								<mkdir dir="src/main/java/META-INF" />
								<copy file="src/main/resources/persistence/${persistence}-persistence.xml" tofile="src/main/java/META-INF/persistence.xml" overwrite="true" />
								<mkdir dir="src/main/resources/META-INF" />
								<copy file="src/main/resources/persistence/${persistence}-persistence.xml" tofile="src/main/resources/META-INF/persistence.xml" overwrite="true" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<id>remove-meta-inf</id>
						<phase>deploy</phase>
						<configuration>
							<tasks>
								<delete dir="src/main/java/META-INF" />
								<delete dir="src/main/resources/META-INF" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<phase>generate-resources</phase>
						<configuration>
							<tasks>
								<echo>PERSISTENCE = ${persistence}</echo>
								<copy file="src/main/resources/version/Release.java.template" tofile="src/main/java/org/apache/juddi/config/Release.java" overwrite="true">
									<filterset>
										<filter token="juddi.version" value="${project.version}" />
									</filterset>
								</copy>
								<delete dir="juddi-derby-test-db" />
								<mkdir dir="src/main/java/META-INF" />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<dependencies>
 		
		<dependency>
			<groupId>org.apache.juddi</groupId>
			<artifactId>uddi-ws</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>uddi-tck-base</artifactId>
			<version>${project.parent.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>persistence-api</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.6</version>
		</dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jta_1.1_spec</artifactId>
            <version>1.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.javamail</groupId>
            <artifactId>geronimo-javamail_1.4_mail</artifactId>
            <version>1.8.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derby</artifactId>
			<version>10.5.3.0_1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>8.2-504.jdbc3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>org.mockejb</groupId>
		    <artifactId>mockejb</artifactId>
		    <version>0.6-beta2</version>
		    <scope>test</scope>
		</dependency>
		<dependency>
		    <groupId>cglib</groupId>
		    <artifactId>cglib-nodep</artifactId>
		    <version>2.2</version>
		    <scope>test</scope>
		</dependency>
	</dependencies>
	<profiles>
		<profile>
			<id>hibernate</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<property>
					<name>persistence</name>
					<value>hibernate</value>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate</artifactId>
					<version>3.2.5.ga</version>
					<exclusions>
						<exclusion>
							<groupId>cglib</groupId>
							<artifactId>cglib</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-entitymanager</artifactId>
					<version>3.3.1.ga</version>
					<exclusions>
						<exclusion>
							<groupId>cglib</groupId>
							<artifactId>cglib</artifactId>
						</exclusion>
					</exclusions>
				</dependency>
				<dependency>
					<groupId>cglib</groupId>
					<artifactId>cglib-nodep</artifactId>
					<version>2.1_3</version>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>hibernate3-maven-plugin</artifactId>
						<version>2.2</version>
						<!--
							<executions> <execution> <phase>process-classes</phase> <goals>
							<goal>hbm2ddl</goal> </goals> </execution> </executions>
						-->
						<configuration>
							<components>
								<component>
									<name>hbm2ddl</name>
									<implementation>jpaconfiguration</implementation>
								</component>
							</components>
							<componentProperties>
								<persistenceunit>juddiDatabase</persistenceunit>
								<outputfilename>schema.ddl</outputfilename>
								<drop>false</drop>
								<create>true</create>
								<export>false</export>
								<format>true</format>
							</componentProperties>
						</configuration>
					</plugin>
					<plugin>
                                		<groupId>org.apache.maven.plugins</groupId>
                                		<artifactId>maven-antrun-plugin</artifactId>
                                		<version>1.3</version>
                                		<executions>
	                                        <execution>
                                                <id>init-orm</id>
                                                <phase>generate-resources</phase>
                                                <configuration>
                                                        <tasks>
                                                                <mkdir dir="src/main/resources/META-INF" />
                                                                <copy file="src/main/resources/juddi-orm.xml" tofile="src/main/resources/META-INF/orm.xml" overwrite="true" />
                                                        </tasks>
                                                </configuration>
                                                <goals>
                                                        <goal>run</goal>
                                                </goals>
                                        	</execution>
						</executions>
				</plugin>
				</plugins>	
				<pluginManagement>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-source-plugin</artifactId>
							<executions>
								<execution>
									<goals>
										<goal>jar</goal>
									</goals>
								</execution>
							</executions>
						</plugin>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-surefire-plugin</artifactId>
							<version>2.4</version>
							<configuration>
								<skip>false</skip>
								<includes>
									<include>**/*Test.java</include>
								</includes>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
			</build>
		</profile>
		<profile>
			<id>openjpa</id>
			<activation>
			    <activeByDefault>false</activeByDefault>
				<property>
					<name>persistence</name>
					<value>openjpa</value>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.apache.openjpa</groupId>
					<artifactId>openjpa</artifactId>
					<version>1.2.1</version>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>2.4</version>
						<configuration>
							<skip>false</skip>
							<includes>
								<include>**/*Test.java</include>
							</includes>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
