<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>17</version>
  </parent>
  <prerequisites>
    <maven>3.2.0</maven>
  </prerequisites>

  <groupId>org.apache.taverna</groupId>
  <artifactId>taverna-parent</artifactId>
  <version>2-incubating-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Taverna (incubating) Maven parent</name>
  <description>
    General POM-file parent for Apache Taverna projects
  </description>
  <url>http://taverna.incubator.apache.org/</url>
  <inceptionYear>2015</inceptionYear>
  <mailingLists>
    <mailingList>
      <name>Apache Taverna Developer List</name>
      <subscribe>dev-subscribe@taverna.incubator.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@taverna.incubator.apache.org</unsubscribe>
      <post>dev@taverna.incubator.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/</archive>
      <otherArchives>
        <otherArchive>http://www.mail-archive.com/dev@taverna.incubator.apache.org/</otherArchive>
        <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.taverna.dev</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Apache Taverna Users List</name>
      <subscribe>users-subscribe@taverna.incubator.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@taverna.incubator.apache.org</unsubscribe>
      <post>users@taverna.incubator.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-users/</archive>
      <otherArchives>
        <otherArchive>http://www.mail-archive.com/users@taverna.incubator.apache.org/</otherArchive>
        <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.taverna.users</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Apache Taverna Commits</name>
      <subscribe>commits-subscribe@taverna.incubator.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@taverna.incubator.apache.org</unsubscribe>
      <post>commits@taverna.incubator.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/incubator-taverna-commits/</archive>
    </mailingList>
  </mailingLists>
  <issueManagement>
    <system>Jira</system>
    <!-- Note: Do not include Component for Maven Parent here, as
      this issueManagement is inherited by every Taverna module.
    -->
    <url>https://issues.apache.org/jira/browse/TAVERNA</url>
  </issueManagement>

  <scm>
    <!-- While this section will also be inherited, it should be
    overridden within each Taverna module with specific repositories.
    -->
      <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-maven-parent.git</connection>
      <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-maven-parent.git</developerConnection>
      <url>https://github.com/apache/incubator-taverna-maven-parent/</url>
      <tag>HEAD</tag>
</scm>



  <properties>
    <!-- override java version from Apache parent -->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <!--
    Versions of dependencies that are used across
    incubator-taverna-* repositories (e.g. commons-io).

    Versions of dependencies that are only used in one repository,
    e.g. beanshell, should rather be listed in the top-level pom.xml
    of their repository (e.g. incubator-taverna-common-activities).

   Note that in some cases these versions refer to a
   springsource repackaging for OSGi, e.g.
   com.springsource.org.jdom.
   Before changing a version it can be a good idea to
   grep for whatever.version in all the source-code
   repositories to see how it is used.

Do NOT put taverna.* versions in here, as we do not want
to update taverna-parent whenever a taverna-* has been
upgraded - this leads to recursive spaghetti.
         -->
<activation.version>1.1.1</activation.version>
<antlr.version>2.7.7</antlr.version>
<apache.commons.csv.version>1.0.0.BUILD-20080106</apache.commons.csv.version>
<apache.httpclient.version>4.2.6</apache.httpclient.version>
<apache.httpcore.version>4.2.5</apache.httpcore.version>
<aspectj.version>1.6.9</aspectj.version>
<axis.jaxrpc.version>1.4</axis.jaxrpc.version>
<axis.sggj.version>1.4</axis.sggj.version>
<axis.version>1.4.0</axis.version>
<!--<axis.wsdl4j.version>1.5.1</axis.wsdl4j.version>-->
<batik.version>1.7.0</batik.version>
<bcprov.jdk16.version>1.46</bcprov.jdk16.version>
<cglib.version>2.1.3</cglib.version>
<commons.beanutils.version>1.9.2</commons.beanutils.version>
<commons.cli.version>1.2.0</commons.cli.version>
<commons.codec.version>1.7</commons.codec.version>
<commons.collections.version>3.2.1</commons.collections.version>
<commons.configuration.version>1.9</commons.configuration.version>
<commons.dbcp.version>1.4</commons.dbcp.version>
<commons.httpclient.version>3.1.0</commons.httpclient.version>
<commons.io.version>2.4</commons.io.version>
<commons.lang.version>2.5.0</commons.lang.version>
<commons.logging.version>1.1.1</commons.logging.version>
<commons.net.version>2.0.0</commons.net.version>
<dom4j.version>1.6.1</dom4j.version>
<elmo.version>1.5</elmo.version>
<geronimo.spec.jta.version>1.0-M1</geronimo.spec.jta.version>
<gson.version>1.4</gson.version>
<hibernate.version>3.2.6.ga</hibernate.version>
<htmlparser.version>1.4</htmlparser.version>
<icu4j.version>3.4.4</icu4j.version>
<io.airlift.airline.version>0.7</io.airlift.airline.version>
<jackson.version>2.3.3</jackson.version>
<!-- http://github.com/jai-imageio/ -->
<jai.imageio.core.version>1.3.1</jai.imageio.core.version>
<javahelp.version>2.0.02</javahelp.version>
<javax.el.version>1.0.0</javax.el.version>
<javax.servlet.jsp.version>2.1.0</javax.servlet.jsp.version>
<javax.servlet.version>2.5.0</javax.servlet.version>
<javax.transaction.version>1.1.0</javax.transaction.version>
<jaxb.version>2.2.11</jaxb.version>
<jaxen.version>1.1.1</jaxen.version>
<jaxp.ri.version>1.4</jaxp.ri.version>
<jaxws.api.version>2.1</jaxws.api.version>
<jdom.version>1.1.0</jdom.version> <!-- com.springsource.org.jdom -->
<jedit.syntax.version>2.2.5</jedit.syntax.version>
<jena.version>2.13.0</jena.version>
<jetty.version>6.1.24</jetty.version>
<jmimemagic.version>0.1.2</jmimemagic.version>
<jmoby.version>1.1.5-taverna</jmoby.version>
<json.lib.version>2.3</json.lib.version>
<jsonld.version>0.5.1</jsonld.version>
<junit.version>4.11</junit.version>
<log4j.version>1.2.17</log4j.version>
<mail.version>1.4.1</mail.version>
<macify.version>1.6</macify.version>
<martj.version>0.6</martj.version>
<mimeutil.version>2.1.2-6</mimeutil.version>
<mockito.version>1.9.5</mockito.version>
<opencsv.version>2.1</opencsv.version>
<opm.version>1.1.8</opm.version>
<org.fife.ui.hexeditor.version>1.0.2011-07-04</org.fife.ui.hexeditor.version>
<org.icepdf.version>4.1.1-taverna</org.icepdf.version>
<org.rosuda.version>200910</org.rosuda.version>
<org.xhtmlrenderer.core-renderer.version>R8</org.xhtmlrenderer.core-renderer.version>
<osgi.core.version>4.3.1</osgi.core.version>
<osgi.enterprise.version>4.2.0</osgi.enterprise.version>
<osgi.equinox.version>3.8.0.v20120529-1548</osgi.equinox.version>
<!-- <osgi.launcher.version>0.1.1-SNAPSHOT</osgi.launcher.version> -->
<!-- <osgi.services.version>0.1.2-SNAPSHOT</osgi.services.version> -->
<osgi.compendium.version>4.3.1</osgi.compendium.version>
<poi.ooxml.version>3.6</poi.ooxml.version>
<poi.version>3.6</poi.version>
<saxpath.version>1.0-FCS</saxpath.version>
<servletapi.version>2.5</servletapi.version>
<sesame.version>2.7.0</sesame.version>
<simple-jndi.version>0.11.1</simple-jndi.version>
<slf4j.version>1.7.6</slf4j.version>
<spring.dm.version>2.0.0.M1</spring.dm.version>
<spring.version>3.0.5.RELEASE</spring.version>
<stax.version>1.0</stax.version>
<tupelo.version>2.6</tupelo.version>
<xalan.version>2.7.1</xalan.version>
<xerces.version>2.9.1</xerces.version>
<xmlbeans.version>2.4.0</xmlbeans.version>
<xml.rpc.version>1.1.0</xml.rpc.version>
<xstream.version>1.4.1</xstream.version>
  </properties>



  <!-- Common (test) dependencies - keep this list short
      and up to date! -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.5.4</version>
        <extensions>true</extensions>
      </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>${maven.compiler.source}</source>
        <target>${maven.compiler.target}</target>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>jar</goal>
            <goal>test-jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <executions>
        <execution>
          <goals>
            <goal>test-jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <skip>false</skip>
        <systemProperties>
          <property>
            <name>java.awt.headless</name>
            <value>true</value>
          </property>
        </systemProperties>
      </configuration>
    </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>
                <!-- Will generate META-INF/DEPENDENCIES META-INF/LICENSE META-INF/NOTICE -->
                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
              </resourceBundles>
            </configuration>
          </execution>
        </executions>
      </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.5.2</version>
      <configuration>
        <releaseProfiles>apache-release</releaseProfiles>
        <tagNameFormat>@{project.version}-RC1</tagNameFormat>
      </configuration>
    </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <!-- activated by -Papache-release -->
          </execution>
        </executions>
        <configuration>
          <excludes>
            <!--
            Text and Markdown files are typically used only for documentation purposes
            and license declarations are usually spurious in these files since often they
            will refer to the LICENSE/NOTICE for users to find the actual licenses
            -->
            <exclude>**/*.md</exclude>
            <!--
            META-INF services files can include comments but a license header would be
            unecessarily clutter so we exclude these
            -->
            <exclude>**/META-INF/services/*</exclude>
          </excludes>
        </configuration>
    </plugin>
  </plugins>

  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.11</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${maven.compiler.source}</source>
          <target>${maven.compiler.target}</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.12.3</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <version>1.1.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.4</version>
      </plugin>



    </plugins>
  </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <id>rat-checks</id>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.15</version>
        <configuration>
          <configLocation>
            ${basedir}/Rcheckstyle.xml
          </configLocation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <minmemory>128m</minmemory>
          <maxmemory>512</maxmemory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.5</version>
      </plugin>
    </plugins>
  </reporting>

  <pluginRepositories>
    <pluginRepository>
        <id>apache.snapshots</id>
        <name>Apache Snapshot Repository</name>
        <url>http://repository.apache.org/snapshots</url>
        <releases>
          <enabled>false</enabled>
        </releases>
    </pluginRepository>
    <!-- released plugins are in central and don't need a <pluginRepository> -->
  </pluginRepositories>


  <repositories>
    <!-- Apache snapshot repository inherited from Apache parent:

    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
    -->

      <repository>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
        <id>bintray-spring</id>
        <name>bintray-spring</name>
        <url>http://dl.bintray.com/spring/jars</url>
      </repository>

      <repository>
        <id>com.springsource.repository.bundles.release</id>
        <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
        <url>http://repository.springsource.com/maven/bundles/release</url>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>
      <repository>
        <id>com.springsource.repository.bundles.external</id>
        <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
        <url>http://repository.springsource.com/maven/bundles/external</url>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>

<!--
<repository>
    <id>repository.spring.snapshot</id>
    <name>Spring Snapshot Repository</name>
    <url>http://repo.spring.io/snapshot</url>
    <releases>
      <enabled>false</enabled>
    </releases>
    <snapshots />
</repository>

also in Maven Central:
<repository>
    <id>repository.spring.release</id>
    <name>Spring GA Repository</name>
    <url>http://repo.spring.io/release</url>
    <releases />
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
</repository>

-->
<repository>
    <id>repository.spring.milestone</id>
    <name>Spring Milestone Repository</name>
    <url>http://repo.spring.io/milestone</url>
    <releases />
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
</repository>


  </repositories>


  <!-- inherited from Apache parent
  <distributionManagement>
  </distributionManagement>
       -->

</project>
