<?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>2.0.1</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-2.0.1
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.1
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/tags/uima-ducc-2.0.1
    </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-web</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-examples</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-user</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-container</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-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-examples</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-user</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uima-ducc-container</artifactId>
		</dependency>
	</dependencies>
	
        <build>


         <!--resources>
            <resource>
               <directory>${baseidr}/src/main/resources</directory>
               <includes>
                  <include>README</include>
                  <include>RELEASE_NOTES.html</include>
               </includes>
               <filtering>true</filtering>
               <targetPath>${basedir}/target</targetPath>
            </resource>
	 </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>
                              package
                            </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/main/DuccRmAdmin.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoadReply.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancyReply.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReconfigure.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedClass.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedMachine.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedNodepool.java
                                ${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmQueriedShare.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>
		    <!-- Ducc includes the full UIMA-AS binary distribution
                 We get an unzipped version of that and unpack it into
                 target/uima-as -->

            <!--  must come before the unpack -->      
			
            <plugin>
               <groupId>org.apache.uima</groupId>
               <artifactId>uima-build-helper-maven-plugin</artifactId>
               <executions>
               <execution>
                  <id>get-uima-as</id>
                  <phase>prepare-package</phase>
                  <goals><goal>copy-from-apache-dist</goal></goals>
                  <configuration>
                     <version>${org.apache.uima.as.version}</version>
                     <artifactId>uima-as</artifactId>
                     <type>tar.gz</type>
                  </configuration>
               </execution>
               </executions> 
            </plugin>
			
			<plugin>
			
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>

                    <execution>
                      <!-- use the dependency:unpack goal to unpack the 
                         base binary uima-as distribution -->
                      <id>unpack uima-as Bin</id>
                      <phase>prepare-package</phase>
                      <goals><goal>unpack</goal></goals>
                      <configuration>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <artifactItems>
                          <artifactItem>
                            <groupId>org.apache.uima</groupId>
                            <artifactId>uima-as</artifactId>
                            <version>${org.apache.uima.as.version}</version>
                            <type>tar.gz</type>
                            <classifier>bin</classifier>
                            <outputDirectory>${project.build.directory}/uima-as</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>
            <!-- May need to disable this because of a JIRA bug causing only 100 JIRas to be included.
             -->
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-changes-plugin</artifactId>
			    <executions>
			    	<execution>
			           <id>default-cli2</id>
				   <configuration>
				      <fixVersionIds>${jiraVersion}</fixVersionIds>
				   </configuration>
				</execution>
			    </executions>
			</plugin>
<!--plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <phase>prepare-package</phase>
        <configuration>
          <tasks>
            <echo>Updating README with Ducc Version: ${project.version}</echo>
            <copy file="${basedir}/README" tofile="${basedir}/target/README" />
            <replace token="@@ducc.version@@" value="${project.version}" file="${basedir}/target/README" />                                 
            <copy file="${basedir}/RELEASE_NOTES.html" tofile="${basedir}/target/RELEASE_NOTES.html" />
            <replace token="@@ducc.version@@" value="${project.version}" file="${basedir}/target/RELEASE_NOTES.html" />                                 
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin -->
		</plugins>
		<!-- /pluginManagement -->



	</build>

	<!-- Include all ducc modules -->
	<modules>
		<module>uima-ducc-parent</module>
		<module>uima-ducc-cli</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>
		<module>uima-ducc-user</module>
		<!-- Note: uima-ducc-container has a test dependency on uima-ducc-user so must be built after it -->
		<module>uima-ducc-container</module>
	</modules>
</project>

