<?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>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>emeritus 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>emeritus 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>emeritus 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>emeritus 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>emeritus 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
    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>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>

