<?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>18</version>
  </parent>
  <prerequisites>    
    <maven>3.2.0</maven>
  </prerequisites>

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

  <name>Apache Taverna Maven parent</name>
  <description>
    General POM-file parent for Apache Taverna projects
  </description>
  <url>https://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>https://lists.apache.org/list.html?dev@taverna.apache.org</archive>      
      <otherArchives>
        <otherArchive>https://mail-archives.apache.org/mod_mbox/incubator-taverna-dev/</otherArchive>
        <otherArchive>https://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>https://lists.apache.org/list.html?users@taverna.apache.org</archive>      
      <otherArchives>
        <otherArchive>https://mail-archives.apache.org/mod_mbox/incubator-taverna-users/</otherArchive>
        <otherArchive>https://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>
      <!-- only git/jira will post here
        <post>commits@taverna.incubator.apache.org</post> -->
      <archive>https://lists.apache.org/list.html?commits@taverna.apache.org</archive>
      <otherArchives>
        <otherArchive>https://mail-archives.apache.org/mod_mbox/incubator-taverna-commits/</otherArchive>
      </otherArchives>      
    </mailingList>
  </mailingLists>
  <ciManagement>
    <system>jenkins</system>
    <url>https://builds.apache.org/user/stain/my-views/view/taverna/</url>
  </ciManagement>

  <developers>
          <!--  For an updated list, see
          https://taverna.incubator.apache.org/about/
        https://home.apache.org/phonebook.html?podling=taverna

          This lists contain the official committers/PPMC members
          and contributors since Taverna became an Apache project.

           -->
          <developer>
                  <id>alaninmcr</id>
                  <email>alaninmcr@apache.org</email>
                  <name>Alan Robert Williams</name>
                  <url>http://orcid.org/0000-0003-3156-2105</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>andy</id>
                  <email>andy@apache.org</email>
                  <name>Andy Seaborne</name>
                  <!--  TODO: <url>http://orcid.org/...</url> -->
                  <roles>
                          <role>mentor</role>
                          <role>champion</role>
                  </roles>
          </developer>
        <developer>
                  <id>anenadic</id>
                  <email>anenadic@apache.org</email>
                  <name>Aleksandra Nenadic</name>
                  <url>http://orcid.org/0000-0002-2269-3894</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>brenninc</id>
                  <email>brenninc@apache.org</email>
                  <name>Christian Y. Brenninkmeijer</name>
                  <url>http://orcid.org/0000-0002-2937-7819</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
        <developer>
                  <id>djd</id>
                  <email>djd@apache.org</email>
                  <name>Daniel John Debrunner</name>
                <!-- TODO: <url>http://orcid.org/...<url> -->
                  <roles>
                          <role>mentor</role>
                  </roles>
          </developer>
          <developer>
                  <id>dkf</id>
                  <email>dkf@apache.org</email>
                  <name>Donal K. Fellows</name>
                  <url>http://orcid.org/0000-0002-9091-5938</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>gnaylor</id>
                  <email>gnaylor@apache.org</email>
                  <!--  TODO: <url>http://orcid.org/...</url> -->
                  <name>Gale Naylor</name>
                  
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>hainesr</id>
                  <email>hainesr@apache.org</email>
                  <name>Robert Haines</name>
                  <url>http://orcid.org/0000-0002-9538-7919</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>ianwdunlop</id>
                  <email>ianwdunlop@apache.org</email>
                  <name>Ian William Dunlop</name>
                  <url>http://orcid.org/0000-0001-7066-3350</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
          <developer>
                  <id>jgarrido</id>
                  <email>jgarrido@apache.org</email>
                  <name>Julián Garrido</name>
                  <url>http://orcid.org/0000-0002-6696-4772</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
        <developer>
                <id>maanadev</id>
                <name>Thilina Manamgoda</name>
                <email>maanadev@apache.org</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/ThilinaManamgoda</url>
                <roles>
                          <role>committer</role>
                </roles>
        </developer>
        <developer>
                  <id>mattmann</id>
                  <email>mattmann@apache.org</email>
                  <name>Chris Mattmann</name>
                  <!-- FIXME: <url>http://orcid.org/0000-0001-7086-3889</url> unverified -->
                  <roles>
                          <role>emeritus mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>mpierce</id>
                  <email>mpierce@apache.org</email>
                  <name>Marlon Pierce</name>
                  <url>http://orcid.org/0000-0002-9582-5712</url>
                  <roles>
                          <role>mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>redmitry</id>
                  <email>redmitry@apache.org</email>
                  <name>Dmitri Repchevsky</name>
                  <url>http://orcid.org/0000-0001-6415-0532</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
        <developer>
                <id>sagar</id>
                <name>Sagar</name>
                <email>sagar@apache.org</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/sagar15795</url>
                <roles>
                        <role>committer</role>
                </roles>
        </developer>
        <developer>
                  <id>shoaibsufi</id>
                  <email>shoaibsufi@apache.org</email>
                  <name>Shoaib Sufi</name>
                  <url>http://orcid.org/0000-0001-6390-2616</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
        <developer>
                  <id>smarru</id>
                  <email>smarru@apache.org</email>
                  <name>Suresh Marru</name>
                  <url>http://orcid.org/0000-0002-6374-095X</url>
                  <roles>
                          <role>mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>stain</id>
                  <email>stain@apache.org</email>
                  <name>Stian Soiland-Reyes</name>
                  <url>http://orcid.org/0000-0001-9842-9718</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                          <role>mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>stuzart</id>
                  <email>stuzart@apache.org</email>
                  <name>Stuart Owen</name>
                  <url>http://orcid.org/0000-0003-2130-0865</url>
                  <roles>
                          <role>committer</role>
                        <role>PPMC member</role>
                  </roles>
          </developer>
        <developer>
                  <id>suresh</id>
                  <email>suresh@apache.org</email>
                  <name>Suresh Srinivas</name>
                  <!--  TODO: <url>http://orcid.org/...</url> -->
                  <roles>
                          <role>mentor</role>
                  </roles>
          </developer>

        <!-- contributors -->

        <developer>
                <id>menaka121</id>
                <name>Menaka Madushanka</name>
                <email>menaka12350@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/menaka121</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>larrytech7</id>
                <name>Larry Akah</name>
                <email>larryakah@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/larrytech7</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>Samhane</id>
                <name>Denis Karyakin</name>
                <email>samhane.me@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/Samhane</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>binfalse</id>
                <name>Martin Scharm</name>
                <email>github@binfalse.de</email>
                <url>http://orcid.org/0000-0003-4519-7030</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>gmlewis</id>
                <name>Glenn Lewis</name>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/gmlewis</url>
                <roles>
                        <role>security fixes</role>
                </roles>
        </developer>
        <developer>
                <id>NadeeshDilanga</id>
                <name>Nadeesh Dilanga</name>
                <email>nadeesh092@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/NadeeshDilanga</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>therajanmaurya</id>
                <name>Rajan Maurya</name>
                <email>rajanmaurya154@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/therajanmaurya</url>
                <roles>
                        <role>committer</role>
                </roles>
        </developer>
      </developers>
      <contributors>

        <contributor>
                <!--<id>edikaradumi</id>-->
                <name>Edi Karadumi</name>
                <email>edikaradumi@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/edikaradumi</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>PCStefan</id>-->
                <name>Claudiu Stefan Padurariu</name>
                <email>padurariu.claudiu.stefan@gmail.com</email>
                <!--  TODO: <url>http://orcid.org/...</url> -->
                <url>https://github.com/PCStefan</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>matthiaskoenig</id>-->
                <name>Matthias König</name>
                <email>konigmatt@googlemail.com</email>
                <url>https://orcid.org/0000-0003-1725-179X</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>MarkRobbo</id>-->
                <name>Mark Robinson</name>
                <email>mark@goldtek.co.uk</email>
                <url>http://orcid.org/0000-0002-8184-7507</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>m-murad</id>-->
                <name>Murad</name>
                <email>murad.kuka@gmail.com</email>
                <url>https://github.com/m-murad</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>yinonavraham</id>-->
                <name>Yinon Avraham</name>
                <email>yinonavraham@gmail.com</email>
                <url>https://github.com/yinonavraham</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>
        <contributor>
                <!--<id>Chalana</id>-->
                <name>Chalana Madusanka</name>
                <!--<email></email>-->
                <url>https://github.com/Chalana</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </contributor>        
  </contributors>


  <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>3-incubating-RC3</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.5</apache.commons.csv.version>
<apache.httpclient.version>4.5.3</apache.httpclient.version><!-- must be compatibe with jsonld-java/jena -->
<apache.httpcore.version>4.4.6</apache.httpcore.version> <!-- must match what httpclient depends on -->
<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.version>1.54</bcprov.version><!-- bcprov-jdk15on --><!-- bcprov-jdk15on --><!-- bcprov-jdk15on --><!-- bcprov-jdk15on -->
<cglib.version>2.1.3</cglib.version>
<commons.beanutils.version>1.9.2</commons.beanutils.version>
<commons.cli.version>1.4</commons.cli.version>
<commons.codec.version>1.10</commons.codec.version>
<commons.collections.version>3.2.2</commons.collections.version>
<commons.configuration.version>1.10</commons.configuration.version>
<commons.dbcp.version>1.4</commons.dbcp.version>
<commons.httpclient.version>3.1.0</commons.httpclient.version>
<commons.io.version>2.6</commons.io.version>
<commons.lang.version>2.6</commons.lang.version>
<commons.logging.version>1.1.3</commons.logging.version>
<commons.net.version>2.0.0</commons.net.version>
<dexx.collection.version>0.6</dexx.collection.version>
<dom4j.version>1.6.1</dom4j.version>
<geronimo.spec.jta.version>1.0-M1</geronimo.spec.jta.version>
<gson.version>1.4</gson.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.9.0</jackson.version> <!-- See also jsonldjava -->
<jai.imageio.core.version>1.3.1</jai.imageio.core.version> <!-- http://github.com/jai-imageio/ -->
<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.6</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>3.6.0</jena.version><!-- See also jsonld-java and httpcomponents -->
<jersey.client.version>1.19.1</jersey.client.version>
<jetty.version>6.1.24</jetty.version>
<jmimemagic.version>0.1.2</jmimemagic.version>
<jmoby.version>1.1.5-taverna</jmoby.version>
<joda-time.version>2.9.9</joda-time.version>
<json.lib.version>2.3</json.lib.version>
<jsonldjava.version>0.11.1</jsonldjava.version> <!-- upgrade from jena, sync with jackson and httpcomponents -->
<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>
<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.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.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.20</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>
<servicemix.xerces.version>2.11.0_1</servicemix.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>

<!-- Minimal dependency management -   -->
<dependencyManagement>
        <dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient-osgi</artifactId>
            <version>${apache.httpclient.version}</version>
            <exclusions>
              <!-- These are all embedded within httpclient-osgi
              and so should not be depended on again
              -->
              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
              </exclusion>
              <exclusion>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient-cache</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>fluent-hc</artifactId>
              </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore-osgi</artifactId>
            <version>${apache.httpcore.version}</version>
            <exclusions>
              <!-- These are all embedded within httpcore-osgi
                and so should not be depended on again
              -->

              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore-nio</artifactId>
              </exclusion>
            </exclusions>
        </dependency>
        </dependencies>
</dependencyManagement>


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <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-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-javadoc-plugin</artifactId>
            <configuration>
                <additionalparam>-Xdoclint:none</additionalparam>
            </configuration>
        </plugin>


    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-release-plugin</artifactId>
      <configuration>
        <releaseProfiles>apache-release</releaseProfiles>
        <tagNameFormat>@{project.version}-RC1</tagNameFormat>
        <autoVersionSubmodules>true</autoVersionSubmodules>
      </configuration>
    </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <!-- activated by -Papache-release -->
          </execution>
        </executions>
        <configuration>
          <!-- In child projects, use combine.children to include this list -->
          <excludes combine.children="append">
            <!--
            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>

           <!-- Created by Maven Shade plugin -->
           <exclude>dependency-reduced-pom.xml</exclude>

          </excludes>
        </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <!-- NOTE: configuration is under reporting -->
      <dependencies>
        <dependency>
          <!-- contains checkstyle.xml -->
          <groupId>org.apache.taverna</groupId>
          <artifactId>taverna-shared-resources</artifactId>
          <version>3-incubating</version>
        </dependency>
      </dependencies>
    </plugin>    
  </plugins>

  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>3.0.0</version>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>3.4.0</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5.3</version>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>0.12</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.13.3</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <version>1.10</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</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>
        <configuration>
          <configLocation>taverna-shared-resources/checkstyle.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>https://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.snapshots inherited from Apache parent:
      <url>https://repository.apache.org/snapshots</url>
-->

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

<!-- Now at https://repo.spring.io/release and JCenter
      <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.release</id>
	    <name>Spring Releases</name>
	    <url>https://repo.spring.io/release</url>
	    <releases />
	    <snapshots>
	      <enabled>false</enabled>
	    </snapshots>
	</repository>
	<repository>
	    <id>repository.spring.milestone</id>
	    <name>Spring Milestone Repository</name>
	    <url>https://repo.spring.io/milestone</url>
	    <releases />
	    <snapshots>
	      <enabled>false</enabled>
	    </snapshots>
	</repository>
	<repository>
	  <id>jcenter</id>
	  <name>JCenter at Bintray</name>
	  <url>https://jcenter.bintray.com/</url>
	    <releases />
	    <snapshots>
	      <enabled>false</enabled>
	    </snapshots>
	</repository>


  </repositories>


  <!-- inherited from Apache parent
  <distributionManagement>
  </distributionManagement>
       -->
  <modules>  
    <module>taverna-shared-resources</module>
  </modules>

</project>

