<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you 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.    
-->
<!-- This pom serves as the release top level project for the multi-module 
	project UIMA-DUCC -->

<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.uima</groupId>
		<artifactId>uima-ducc-parent</artifactId>
		<version>1.0.0</version>
		<relativePath>uima-ducc-parent/pom.xml</relativePath>
	</parent>

	<artifactId>uima-ducc</artifactId>
	<packaging>pom</packaging>
	<name>Apache UIMA-DUCC: ${project.artifactId}</name>
	<description>The top project for UIMA-DUCC</description>
	<url>${uimaWebsiteUrl}</url>


	<!-- Special inheritance note even though the <scm> element that follows 
		is exactly the same as those in super poms, it cannot be inherited because 
		there is some special code that computes the connection elements from the 
		chain of parent poms, if this is omitted. Keeping this a bit factored allows 
		cutting/pasting the <scm> element, and just changing the following two properties -->
	<scm>
		<connection>
      scm:svn:http://svn.apache.org/repos/asf/uima/sandbox/uima-ducc/tags/uima-ducc-1.0.0
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/sandbox/uima-ducc/tags/uima-ducc-1.0.0
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/tags/uima-ducc-1.0.0
    </url>
	</scm>

	<!-- override pom setting in the build project. JIRA 5.1 needs different 
		URL -->
	<issueManagement>
		<system>Jira</system>
		<url>https://issues.apache.org/jira/browse/UIMA</url>
	</issueManagement>

	<!-- name the artifacts (zip,tar) -->
	<properties>
		<assemblyFinalName>uima-ducc-${project.version}</assemblyFinalName>
	</properties>

	<!-- declare dependency on each DUCC project -->
	<dependencyManagement>
	   <dependencies>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-transport</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-agent</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-pm</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-rm</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-sm</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-orchestrator</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-cli</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-jd</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-web</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-examples</artifactId>
			<version>${project.version}</version>
		</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-common</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-transport</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-agent</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-pm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-rm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-sm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-orchestrator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-cli</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-jd</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-examples</artifactId>
		</dependency>
	</dependencies>
	<build>
		<resources />



		<plugins>

			<!-- This java doc config is for building the ones distributed with the 
				bin packaging, and also posted on our website. -->
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>javadocs-distr</id>
						<phase>prepare-package</phase> <!-- must be before assembly -->
						<!--phase>deploy</phase -->   <!-- comment above and uncomment to disable javadocs, for testing/experimentation, 
							with assembly:assembly -->
						<goals>
							<goal>javadoc</goal>
						</goals>
						<configuration>
							<quiet>true</quiet>
							<groups>
								<group>
									<title>Packages</title>
									<packages>*</packages>
								</group>
							</groups>

							<!--verbose>true</verbose -->
							<sourcepath>
								uima-ducc-common/src/main/java:uima-ducc-cli/src/main/java
							</sourcepath>

                            <show>
                              public
                            </show>

							<subpackages>org.apache.uima</subpackages>

							<excludePackageNames>
                              org.apache.uima.ducc.cli.*:org.apache.uima.ducc.api.*:org.apache.uima.ducc.common.*:org.apache.uima.ducc.transport.*:org.apache.uima.ducc.agent.*:org.apache.uima.ducc.examples.*:org.apache.uima.ducc.orchestrator.*:org.apache.uima.ducc.pm.*:org.apache.uima.ducc.rm.*:org.apache.uima.ducc.sm.*:
                            </excludePackageNames>

							<!-- add a few classes in impl packages that are directly used by 
								user code -->
							<additionalparam>
								${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IServiceStatistics.java
								${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/id/ADuccId.java
								${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/id/IDuccId.java

								${basedir}/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceReply.java
								${basedir}/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java

								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationCancel.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationCancel.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceCancel.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IDuccCallback.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IDuccMonitor.java
								${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java

							</additionalparam>

							<!-- Link these to the uimaj javadocs on apache.org -->
							<!-- links>
								<link>http://uima.apache.org/d/uimaj-${uimajDependencyVersion}/apidocs</link>
							</links -->
							<doctitle>Apache UIMA DUCC Java SDK ${project.version} User-Level
								API Documentation</doctitle>
							<windowtitle>Apache UIMA DUCC Java SDK ${project.version}
								User-Level API Documentation</windowtitle>
						</configuration>
					</execution>
				</executions>

			</plugin>

			<plugin>
			    <!-- This plugin is needed to fetch Apache ActiveMQ and Jetty from maven repo -->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<!-- use the dependency:unpack goal to unpack the AMQ binary release -->
						<id>unpack-activemq-distro</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<overWriteIfNewer>true</overWriteIfNewer>
							<artifactItems>
								<artifactItem>
									<groupId>org.apache.activemq</groupId>
									<artifactId>apache-activemq</artifactId>
									<version>${org.apache.activemq.version}</version>
									<type>tar.gz</type>
									<classifier>bin</classifier>
									<outputDirectory>${project.build.directory}/apache-activemq</outputDirectory>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>


					<execution>
						<!-- use the dependency:unpack goal to unpack the Jetty release -->
						<id>unpack-jetty-distro</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<overWriteIfNewer>true</overWriteIfNewer>
							<artifactItems>
								<artifactItem>
									<groupId>org.eclipse.jetty</groupId>
									<artifactId>jetty-distribution</artifactId>
									<version>${jetty.version}</version>
									<type>zip</type>
									<outputDirectory>${project.build.directory}/jetty</outputDirectory>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>


				</executions>
			</plugin>

			<!-- plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.5</version>
				<executions>
					<execution>
						<id>copy-resources</id>
						<phase>process-resources</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<overwrite>true</overwrite>
							<outputDirectory>target/maven-shared-archive-resources/META-INF</outputDirectory>
							<resources>
								<resource>
									<directory>.</directory>
									<includes>
										<include>LICENSE</include>
										<include>NOTICE</include>
									</includes>


								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin -->


			<!-- Override default assemble plug-in to use newer version of assembly 
				plugin Version 2.4 fixes a bug http://jira.codehaus.org/browse/PLXCOMP-176 -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<executions>
					<execution>
						<id>default-cli</id>
						<configuration>
							<descriptors>
								<descriptor>do-not-use--mvn-assembly-assembly--instead-use-mvn-install</descriptor>
							</descriptors>
						</configuration>
					</execution>
					<execution>
					    <!-- keep the id of this plugin the same as in the uima-parent's pom.
					         Otherwise, maven will run this plugin and the parents plugin 
					         and will build ducc's tgz twice  -->
						<id>uima-distr</id>
						<phase>integration-test</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<descriptors>
								<descriptor>src/main/assembly/bin.xml</descriptor>
							</descriptors>
							<finalName>uima-ducc-${project.version}</finalName>
							<tarLongFileMode>gnu</tarLongFileMode>
						</configuration>
					</execution>
				</executions>
			</plugin>



		</plugins>
		<!-- /pluginManagement -->
	</build>

	<profiles>
		<profile>
			<id>apache-release</id>
			<build>
				<plugins>

					<!-- Build JIRA Report -->
					<!-- depends on having -Djira.version set -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-changes-plugin</artifactId>
						
						<executions>
							<execution>
								<id>default-cli</id>
								<goals>
									<goal>jira-report</goal>
								</goals>
								<!-- Disable this plugin for the first release -->
								<phase />
								<!-- Uncomment this for future releases -->
								<!-- phase>generate-resources</phase -->
								<!-- configuration>
									<useJql>true</useJql>
									<fixVersionIds>${jiraVersion}</fixVersionIds>
									<component>DUCC</component>
									<columnNames>Type,Key,Status,Summary</columnNames>
									<resolution>Fixed</resolution>
									<status>Closed,Resolved</status>
									<sortColumnNames>Type, Status, Key</sortColumnNames>
									<outputDirectory>${basedir}/target/issuesFixed/</outputDirectory>
									<maxEntries>1000</maxEntries>
								</configuration -->
							</execution>
						</executions>
					</plugin>


				</plugins>
			</build>
		</profile>

	</profiles>

	<!-- Include all ducc modules -->
	<modules>
		<module>uima-ducc-parent</module>
		<module>uima-ducc-cli</module>
		<module>uima-ducc-jd</module>
		<module>uima-ducc-pm</module>
		<module>uima-ducc-rm</module>
		<module>uima-ducc-sm</module>
		<module>uima-ducc-orchestrator</module>
		<module>uima-ducc-common</module>
		<module>uima-ducc-transport</module>
		<module>uima-ducc-agent</module>
		<module>uima-ducc-duccdocs</module>
		<module>uima-ducc-web</module>
		<module>uima-ducc-examples</module>
		<module>uima-ducc-spawn</module>
	</modules>
</project>

