<?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>21</version>
  </parent>

  <groupId>org.apache.taverna</groupId>
  <artifactId>apache-taverna-parent</artifactId>
  <version>4-incubating-SNAPSHOT</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>https://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>https://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>https://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>https://orcid.org/...</url> -->
                  <roles>
                          <role>emeritus mentor</role>
                          <role>champion</role>
                  </roles>
          </developer>
        <developer>
                  <id>anenadic</id>
                  <email>anenadic@apache.org</email>
                  <name>Aleksandra Nenadic</name>
                  <url>https://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>https://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>https://orcid.org/...<url> -->
                  <roles>
                          <role>emeritus mentor</role>
                  </roles>
          </developer>
          <developer>
                  <id>dkf</id>
                  <email>dkf@apache.org</email>
                  <name>Donal K. Fellows</name>
                  <url>https://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>https://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>https://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>https://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>https://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>https://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>https://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>https://orcid.org/0000-0002-9582-5712</url>
                  <roles>
                          <role>emeritus mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>redmitry</id>
                  <email>redmitry@apache.org</email>
                  <name>Dmitri Repchevsky</name>
                  <url>https://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>https://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>https://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>https://orcid.org/0000-0002-6374-095X</url>
                  <roles>
                          <role>emeritus mentor</role>
                  </roles>
          </developer>
        <developer>
                  <id>stain</id>
                  <email>stain@apache.org</email>
                  <name>Stian Soiland-Reyes</name>
                  <url>https://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>https://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>https://orcid.org/...</url> -->
                  <roles>
                          <role>emeritus mentor</role>
                  </roles>
          </developer>

        <!-- contributors -->

        <developer>
                <id>menaka121</id>
                <name>Menaka Madushanka</name>
                <email>menaka12350@gmail.com</email>
                <!--  TODO: <url>https://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>https://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>https://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>https://orcid.org/0000-0003-4519-7030</url>
                <roles>
                        <role>contributor</role>
                </roles>
        </developer>
        <developer>
                <id>gmlewis</id>
                <name>Glenn Lewis</name>
                <!--  TODO: <url>https://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>https://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>https://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>https://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>https://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>https://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
    following the below template.

    ASF's GitBox is mirrored two-ways with GitHub.
    GitHub allows SSH keys that is good for <developerConnection>
    to work with mvn release:prepare without password prompts.
    See https://taverna.incubator.apache.org/download/code/

    To force use of https://github.com/ add to equivalent of ~/.gitconfig

        [url "https://github.com/apache/"]
        insteadOf = git@github.com:apache/
        insteadOf = https://gitbox.apache.org/repos/asf/
        pushInsteadOf = git@github.com:apache/
        pushInsteadOf = https://gitbox.apache.org/repos/asf/

    *or*, to force use of https://gitbox.apache.org/

        [url "https://gitbox.apache.org/repos/asf/"]
        insteadOf = git@github.com:apache/
        insteadOf = https://github.com/apache/
        pushInsteadOf = git@github.com:apache/
        pushInsteadOf = https://github.com/apache/
    
    See https://git-scm.com/docs/git-push/2.4.4#_git_urls_a_id_urls_a
    
    -->
      <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-taverna-maven-parent.git</connection>
      <developerConnection>scm:git:git@github.com:apache/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.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 -->
<jdom2.version>2.0.6_1</jdom2.version> <!-- org.apache.servicemix.bundles.jdom -->
<jedit.syntax.version>2.2.5</jedit.syntax.version>
<jena.version>3.7.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.2.18.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>
	   <!-- Created by VS Code -->
           <exclude>.vscode</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>4-incubating-SNAPSHOT</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.5.1</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.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>2.0.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>https://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>https://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>

