<?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.
-->
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>ruta-parent</artifactId>
    <version>3.3.0-SNAPSHOT</version>
    <relativePath>ruta-parent/pom.xml</relativePath>
  </parent>

  <artifactId>ruta</artifactId>
  <packaging>pom</packaging>
  <name>Apache UIMA Ruta: ${project.artifactId}</name>
  <description>The top project for Apache UIMA Ruta</description>
  <url>${uimaWebsiteUrl}</url>
  <properties>
    <jiraVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}ruta</jiraVersion>
  </properties>

  <!-- 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>

  <!-- 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:git:https://github.com/apache/uima-ruta/</connection>
    <developerConnection>scm:git:https://github.com/apache/uima-ruta/</developerConnection>
    <url>https://github.com/apache/uima-ruta/</url>
    <tag>HEAD</tag>
  </scm>

  <!-- dependencies used during assembly -->
  <dependencies>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-basic-type</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-typesystem</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-core-ext</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-addons</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-caseditor</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-engine</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-ide</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-textruler</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-ep-core-ext</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-maven-plugin</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

  <modules>
    <module>ruta-parent</module>
    <module>ruta-basic-type</module>
    <module>ruta-typesystem</module>
    <module>ruta-core</module>
    <module>ruta-core-ext</module>

    <module>ruta-ep-parent</module>
    <module>ruta-ep-engine</module>
    <module>ruta-ep-ide</module>
    <module>ruta-ep-ide-ui</module>
    <module>ruta-ep-caseditor</module>
    <module>ruta-ep-addons</module>
    <module>ruta-ep-textruler</module>
    <module>ruta-ep-core-ext</module>
    <module>ruta-eclipse-feature</module>
    <module>ruta-eclipse-update-site</module>

    <module>ruta-maven-plugin</module>
    <module>ruta-maven-archetype</module>

    <module>ruta-docbook</module>

    <module>example-projects/ruta-ep-example-extensions</module>
    <module>example-projects/ruta-maven-example</module>
  </modules>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <executions>
            <execution>
              <id>default-cli</id>
                <!-- default configuration -->
              <configuration>
                <excludes combine.children="append">
                  <!-- These configuration files cannot bear a license header -->
                  <exclude>.github/**/*</exclude>
                  <!--  workaround https://issues.apache.org/jira/browse/RAT-97 -->
                  <exclude>example-projects/**</exclude>
                  <exclude>ruta-basic-type/**</exclude>
                  <exclude>ruta-core/**</exclude>
                  <exclude>ruta-core-ext/**</exclude>
                  <exclude>ruta-docbook/**</exclude>
                  <exclude>ruta-eclipse-feature/**</exclude>
                  <exclude>ruta-eclipse-update-site/**</exclude>
                  <exclude>ruta-ep-addons/**</exclude>
                  <exclude>ruta-ep-caseditor/**</exclude>
                  <exclude>ruta-ep-core-ext/**</exclude>
                  <exclude>ruta-ep-engine/**</exclude>
                  <exclude>ruta-ep-ide/**</exclude>
                  <exclude>ruta-ep-ide-ui/**</exclude>
                  <exclude>ruta-ep-parent/**</exclude>
                  <exclude>ruta-ep-textruler/**</exclude>
                  <exclude>ruta-maven-archetype/**</exclude>
                  <exclude>ruta-maven-plugin/**</exclude>
                  <exclude>ruta-parent/**</exclude>
                  <exclude>ruta-typesystem/**</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <phase>install</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <mkdir dir="${staging-local-root}/${staging-folder}" />
                    <copy todir="${staging-local-root}/${staging-folder}">
                      <fileset dir="${project.build.directory}">
                        <include name="ruta-${project.version}-*.zip" />
                        <include name="ruta-${project.version}-*.zip.asc" />
                        <include name="ruta-${project.version}-*.zip.sha512" />
                        <include name="ruta-${project.version}-*.tar.gz" />
                        <include name="ruta-${project.version}-*.tar.gz.asc" />
                        <include name="ruta-${project.version}-*.tar.gz.sha512" />
                      </fileset>
                    </copy>
                    <copy todir="${staging-local-root}/${staging-folder}/eclipse-update-site">
                      <fileset dir="ruta-eclipse-update-site/target/repository">
                        <include name="**/*" />
                      </fileset>
                    </copy>
                  </target>
                </configuration>
              </execution>
              <execution>
                <id>ExtendSourceRelease</id>
                <phase>package</phase>
                <configuration>
                  <target>
                    <zip destfile="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" update="true">
                      <zipfileset dir="${basedir}/example-projects/ExampleProject/" includes=".project" prefix="${project.artifactId}-${project.version}/example-projects/ExampleProject/" />
                    </zip>
                    <!-- <zip -->
                    <!-- destfile="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" -->
                    <!-- update="true"> -->
                    <!-- <zipfileset -->
                    <!-- dir="${basedir}/example-projects/ExtensionsExample/" -->
                    <!-- includes=".project" -->
                    <!-- prefix="${project.artifactId}-${project.version}/example-projects/ExtensionsExample/" 
                            /> -->
                    <!-- </zip> -->
                    <zip destfile="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" update="true">
                      <zipfileset dir="${basedir}/example-projects/TextRulerExample/" includes=".project" prefix="${project.artifactId}-${project.version}/example-projects/TextRulerExample/" />
                    </zip>
                    <!-- <zip -->
                    <!-- destfile="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" -->
                    <!-- update="true"> -->
                    <!-- <zipfileset dir="${basedir}/example-projects/GermanNovels/" -->
                    <!-- includes=".project" -->
                    <!-- prefix="${project.artifactId}-${project.version}/example-projects/GermanNovels/" 
                            /> -->
                    <!-- </zip> -->
                    <zip destfile="${project.build.directory}/${project.artifactId}-${project.version}-source-release.zip" update="true">
                      <zipfileset dir="${basedir}/example-projects/Misc/" includes=".project" prefix="${project.artifactId}-${project.version}/example-projects/Misc/" />
                    </zip>
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>