<?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</groupId>
        <artifactId>apache</artifactId>
        <version>13</version>
    </parent>
	<packaging>pom</packaging>
	<groupId>org.apache.juddi</groupId>
	<artifactId>juddi-parent</artifactId>
	<version>3.1.6-SNAPSHOT</version>
	<name>jUDDI_v3 Parent</name>
	<description>jUDDI (pronounced "Judy") is an open source Java
		implementation of the Universal Description, Discovery, and
		Integration (UDDI) specification for Web Services.</description>
	<url>http://juddi.apache.org/</url>
	
	<prerequisites>
      <maven>3.0.3</maven>
    </prerequisites>
	
	<properties>
        <sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
	
	<issueManagement>
		<system>JIRA</system>
		<url>http://issues.apache.org/jira/browse/JUDDI</url>
	</issueManagement>
	<ciManagement>
		<system>Buildbot</system>
		<url>http://ci.apache.org/buildbot.html</url>
		<notifiers>
			<notifier>
				<sendOnError>true</sendOnError>
				<sendOnFailure>true</sendOnFailure>
				<sendOnSuccess>true</sendOnSuccess>
				<sendOnWarning>true</sendOnWarning>
				<configuration>
					<address>dev@juddi.apache.org</address>
				</configuration>
			</notifier>
		</notifiers>
	</ciManagement>
	<inceptionYear>2004</inceptionYear>
	<mailingLists>
		<mailingList>
			<name>jUDDI User List</name>
			<subscribe>user-subscribe@juddi.apache.org</subscribe>
			<unsubscribe>user-unsubscribe@juddi.apache.org</unsubscribe>
			<post>user@juddi.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/juddi-user/</archive>
		</mailingList>
		<mailingList>
			<name>jUDDI Developer List</name>
			<subscribe>dev-subscribe@juddi.apache.org</subscribe>
			<unsubscribe>dev-unsubscribe@juddi.apache.org</unsubscribe>
			<post>dev@juddi.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/juddi-dev/</archive>
		</mailingList>
		<mailingList>
			<name>jUDDI SVN List</name>
			<subscribe>cvs-subscribe@juddi.apache.org</subscribe>
			<unsubscribe>cvs-unsubscribe@juddi.apache.org</unsubscribe>
			<post>cvs@juddi.apache.org</post>
			<archive>http://mail-archives.apache.org/mod_mbox/juddi-cvs/</archive>
		</mailingList>
	</mailingLists>
	<developers>
		<developer>
			<id>kstam</id>
			<name>Kurt Stam</name>
			<email>kstam AT apache.org</email>
			<organization>ASF</organization>
		</developer>
		<developer>
			<id>jfaath</id>
			<name>Jeffrey Faath</name>
			<email>jfaath AT apache.org</email>
			<url>http://www.esigma.com</url>
			<organization>ESigma</organization>
		</developer>
		<developer>
			<id>tcunning</id>
			<name>Tom Cunningham</name>
			<email>tcunning AT apache.org</email>
			<url>http://www.jboss.org/jbossesb</url>
			<organization>JBoss/Red Hat</organization>
		</developer>
		<developer>
			<id>sviens</id>
			<name>Steve Viens</name>
			<email>steve AT viens.net</email>
			<url>http://www.viens.net</url>
			<organization>ASF</organization>
		</developer>
		<developer>
			<id>anil</id>
			<name>Anil Saldhana</name>
			<email>anil AT apache.org</email>
			<url>http://www.jboss.org</url>
			<organization>JBoss/Red Hat</organization>
		</developer>
		<developer>
			<id>djencks</id>
			<name>David Jencks</name>
			<email>djencks AT apache.org</email>
			<url>http://www.apache.org</url>
			<organization>ASF</organization>
		</developer>
	</developers>
	<contributors>
		<contributor>
			<name>Ken Wilson</name>
			<organization>Dynamic Site Design</organization>
			<url>http://www.dynamicsitedesign.com</url>
		</contributor>
		<contributor>
			<name>Jeremi Thebeau</name>
			<organization>Xceptance Software Technologies</organization>
			<url>http://www.xceptance.com</url>
		</contributor>
	</contributors>
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/juddi/trunk/</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/juddi/trunk/</developerConnection>
		<url>http://svn.apache.org/viewcvs.cgi/juddi/trunk/</url>
	</scm>
	    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <preparationGoals>clean install</preparationGoals>
                        <goals>deploy</goals>
                        <releaseProfiles>apache-release</releaseProfiles>
                        <tagNameFormat>juddi-@{project.version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>2.0.0</version>
                    <extensions>true</extensions>
                    <configuration>
                      <classifier>${envClassifier}</classifier>
                      <obrRepository>target/OBRRepository.xml</obrRepository>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>ianal-maven-plugin</artifactId>
                    <version>1.0-alpha-1</version>
                </plugin>
                <plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>2.0.1</version>
					
				</plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>ianal-maven-plugin</artifactId>
            </plugin>
            <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>2.0.1</version>
			</plugin>
        </plugins>
    </build>
	<reporting>
		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.6.1</version>
				
			</plugin>
			<plugin>
	            <groupId>org.apache.maven.plugins</groupId>
	            <artifactId>maven-project-info-reports-plugin</artifactId>
	            <version>2.1.2</version>
	        </plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>jdepend-maven-plugin</artifactId>
				<version>2.0-beta-2</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>2.2</version>
			</plugin>
		</plugins>
	</reporting>
	<modules>
		<module>uddi-ws</module>
		<module>uddi-tck-base</module>
		<module>juddi-client</module>
		<module>juddi-core</module>
		<module>juddi-core-openjpa</module>
		<module>juddiv3-war</module>
		<module>juddi-examples</module>
		<module>juddi-tomcat</module>
		<module>uddi-tck</module>
	</modules>
	<distributionManagement>
	    <site>
			<id>website</id>
			<url>scpexe://people.apache.org/www/juddi.apache.org/</url>
		</site>
	</distributionManagement>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging-api</artifactId>
			<version>1.1</version>
		</dependency>
	</dependencies>
	<repositories>
		<repository>
			<id>maven2-repository.dev.java.net</id>
			<name>Java.net Maven 2 Repository</name>
			<url>http://download.java.net/maven/2</url>
			<layout>default</layout>
		</repository>
		<repository>
			<id>apache.nexus</id>
			<name>Apache NEXUS Maven 2 Repository</name>
			<url>https://repository.apache.org/content/repositories/releases/</url>
			<layout>default</layout>
			<snapshots> 
				<enabled>false</enabled> 
			</snapshots>
		</repository>
		<repository>
			<id>jboss</id>
			<name>JBoss Repository</name>
			<url>http://repository.jboss.org/nexus/content/groups/public</url>	
			<layout>default</layout>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>maven2-repository.dev.java.net</id>
			<url>http://download.java.net/maven/2</url>
		</pluginRepository>
		<pluginRepository>
			<id>nexus.codehaus</id>
			<url>https://nexus.codehaus.org/content/repositories/releases/</url>
		</pluginRepository>
		
	</pluginRepositories>
	 <profiles>
        <!-- START SNIPPET: release-profile -->
        <!-- this is borrowed from an nov 2009 apache-7 pom release attempt-->
        <profile>
            <id>apache-release</id>
            <modules>
                <!-- this requires some artifacts generated by apache-release profile (source, javadoc) -->
                <module>docs</module>
                <module>juddi-dist</module>
                <module>juddi-console</module>
            </modules>
            <build>
                <plugins>
                    <!-- Create a source-release artifact that contains the fully buildable
             project directory source structure. This is the artifact which is
             the official subject of any release vote. -->
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.apache.resources</groupId>
                                <artifactId>apache-source-release-assembly-descriptor</artifactId>
                                <version>1.0.1</version>
                            </dependency>
                            <dependency>
                                <!-- NOTE: The fix for PLXUTILS-120 is crucial for the new assembly descriptor -->
                                <groupId>org.codehaus.plexus</groupId>
                                <artifactId>plexus-utils</artifactId>
                                <version>2.0.1</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                                    <descriptorRefs>
                                        <descriptorRef>${sourceReleaseAssemblyDescriptor}</descriptorRef>
                                    </descriptorRefs>
                                    <tarLongFileFormat>gnu</tarLongFileFormat>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- END SNIPPET: release-profile -->
    </profiles>
</project>
