<?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.1.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/uima-ducc/tags/uima-ducc-2.1.0
    </connection>
		<developerConnection>
      scm:svn:https://svn.apache.org/repos/asf/uima/uima-ducc/tags/uima-ducc-2.1.0
    </developerConnection>
		<url>
      http://svn.apache.org/viewvc/uima/uima-ducc/tags/uima-ducc-2.1.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-as</artifactId>
			<version>${org.apache.uima.as.version}</version>
                        <type>tar.gz</type>
		</dependency-->

		<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-database</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-as</artifactId>
                        <type>tar.gz</type>
		</dependency -->


		<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-database</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 />



		<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 
                         base binary uima-as distribution -->
                      <id>unpack cassandra Bin</id>
                      <phase>prepare-package</phase>
                      <goals><goal>unpack</goal></goals>
                      <configuration>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <artifactItems>
                          <artifactItem>
                            <groupId>org.apache.cassandra</groupId>
                            <artifactId>apache-cassandra</artifactId>
                            <version>${cassandra.server.version}</version>
                            <type>tar.gz</type>
                            <classifier>bin</classifier>
                            <outputDirectory>${project.build.directory}/cassandra</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 -->

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <phase>package</phase>
        <configuration>
          <tasks>

            <replace dir="${project.build.directory}/uima-as/apache-uima-as-${org.apache.uima.as.version}/bin">
              <include name="**/dd2spring.xsl" />
             <replacefilter token="scope=&quot;singleton&quot;" value="" />
            </replace>             
 
            <chmod file="${project.build.directory}/uima-as/apache-uima-as-${org.apache.uima.as.version}/bin/dd2spring.xsl" perm="ugo+rx" />
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </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-database</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>

