<?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.taverna</groupId>
    <artifactId>apache-taverna-parent</artifactId>
    <version>3-incubating</version>
  </parent>
  <groupId>org.apache.taverna.language</groupId>
  <artifactId>apache-taverna-language</artifactId>
  <version>0.16.0-incubating-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Taverna Language APIs (Scufl2, Databundle)</name>
  <description>Taverna Language API for workflow definitions (SCUFL2)
    and workflow inputs/outputs/run (DataBundle).
  </description>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <useDefaultExcludes>true</useDefaultExcludes>
          <excludes combine.children="append">
            <!-- Following excludes needed for taverna-scufl2-rdf,
            taverna-scufl2-integration-tests and taverna-scufl2-validation-integration
            subfolders that should be modules but are not. -->
            <exclude>**/.classpath</exclude>
            <exclude>**/.project</exclude>
            <exclude>**/.settings/</exclude>
            <exclude>**/target/</exclude>
            <!-- No headers in JSON which haven't got comments ... -->
            <exclude>**/*.json</exclude>
            <!-- Really a binary format, but must look like text -->
            <exclude>**/mimetype</exclude>
            <!-- Effectively a binary format -->
            <exclude>**/*.url</exclude>
            <!-- Cannot contain comments; content must match program output. -->
            <exclude>/src/test/resources/org/apache/taverna/scufl2/api/io/HelloWorld.txt</exclude>
            <exclude>/src/test/resources/as.txt</exclude>
            <!-- Expanded data bundle. Generated. -->
            <exclude>/src/test/resources/full-example/ebi-wfrun-2013-05-31/</exclude>

            <!-- Test COMBINE archives. Skeleton only (files empty) -->
            <exclude>/src/test/resources/combine/aslanidi_purkinje_model_skeleton.zip</exclude>
            <exclude>/src/test/resources/combine/Boris-skeleton.omex</exclude>
            <exclude>/src/test/resources/combine/DirectoryMadnessZipped-skeleton.omex</exclude>
            <exclude>/src/test/resources/combine/DirectoryMadness-skeleton.omex</exclude>

            <!-- Our own test documents - contains LICENSE -->
            <exclude>src/test/resources/document.odt</exclude>
            <exclude>src/test/resources/workflowrun.bundle.zip</exclude>

            <!-- 
                 Below exclusions are for 
                 externally sourced/derived files 
                 that must be acknowledged in 
                 NOTICE (and/or */src/*/resources/META-INF/NOTICE)
            -->

            <!-- W3C license -->
            <exclude>**/xml.xsd</exclude>
            <exclude>**/xenc-schema.xsd</exclude>
            <exclude>**/xmldsig-core-schema.xsd</exclude>
            <exclude>**/prov-o.rdf</exclude>
            <exclude>**/prov-o.ttl</exclude>
            <exclude>**/prov-aq.rdf</exclude>
            <!-- W3C Community license -->
            <!-- FOAF, Creative Commons Attribution 1.0 -->
            <exclude>**/oa.rdf</exclude>
            <exclude>**/foaf.rdf</exclude>
            <!-- Research Object Model, Creative Commons Attribution 3.0 -->
            <exclude>**/roterms.ttl</exclude>
            <exclude>**/wf4ever.ttl</exclude>
            <exclude>**/wfdesc.ttl</exclude>
            <exclude>**/wfprov.ttl</exclude>

            <!-- Dublin Core, Creative Commons Attribution 3.0 -->
            <exclude>**/dcam.owl</exclude>
            <exclude>**/dcterms_od.owl</exclude>

          </excludes>
        </configuration>
      </plugin>
    
      <!--
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>add-licenses</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>aggregate-add-third-party</goal>
            </goals>
            <configuration>
              <excludedGroups>.*(mygrid|taverna).*</excludedGroups>
              <useMissingFile>true</useMissingFile>
              <missingFile>src/license/THIRD-PARTY.properties</missingFile>
              <licenseMerges>
                <licenseMerge>The Apache Software License, Version 2.0|Apache 2|Apache License|Apache License, Version 2.0|Apache Public License 2.0|Apache License Version 2.0|Apache Software License 2.0|Apache Software License - Version 2.0</licenseMerge>
                <licenseMerge>The BSD License|BSD|BSD License|BSD-style license|BSD style|Aduna BSD license|Aduna BSD-style license</licenseMerge>
                <licenseMerge>MIT License|The MIT License|MIT license</licenseMerge>
                <licenseMerge>GNU Lesser General Public License|GNU LESSER GENERAL PUBLIC LICENSE|GNU Library or Lesser General Public License|LGPL</licenseMerge>
                <licenseMerge>Common Development and Distribution License (CDDL) v1.0|CDDL 1.1|COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0</licenseMerge>
                <licenseMerge>Eclipse Public License, Version 1.0|Eclipse Public License</licenseMerge>
              </licenseMerges>
            </configuration>
          </execution>
        </executions>
      </plugin>
      -->
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
        <!-- replaces maven-jaxb2-plugin -->
          <groupId>org.apache.cxf</groupId>
          <artifactId>cxf-xjc-plugin</artifactId>
          <version>3.2.1</version>
          <configuration>
            <sourceRoot>${basedir}/target/generated-sources/cxf-xjc</sourceRoot>
          </configuration>
           <dependencies>
              <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>${activation.version}</version>
              </dependency>
           </dependencies>
        </plugin>
        <plugin>
        <!-- JENA-1474: jena-maven-tools was not included in 3.7.0; we'll downgrade -->
          <groupId>org.apache.jena</groupId>
          <artifactId>jena-maven-tools</artifactId>
          <version>3.6.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-language.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-taverna-language.git</developerConnection>
    <url>https://github.com/apache/incubator-taverna-language</url>
    <tag>HEAD</tag>
  </scm>

  <repositories>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>https://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>
  
  <!-- TODO: Remove from below when these versions have
   been updated in taverna-parent 4 -->
  <properties>
    <!-- Fixes TAVERNA-1027 / JENA-1462 -->
    <jena.version>3.7.0</jena.version>
    <!-- Java 9 compatible jaxb -->
    <jaxb.version>2.3.0</jaxb.version>
  </properties>


  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jsonSchema</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons.io.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>com.springsource.org.jdom</artifactId>
        <version>${jdom.version}</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>${jaxb.version}</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-osgi</artifactId>
        <version>${jaxb.version}</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>${jaxen.version}</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons.beanutils.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
  <!-- Common dependencies on jena-osgi, which requires some
additional dependencies to be a happy OSGi bundle -->

    <dependency>
      <groupId>org.apache.jena</groupId>
      <artifactId>jena-osgi</artifactId>
      <version>${jena.version}</version>
    </dependency>
    <!-- TODO: Remove for Jena 3.8.x which has inbuilt xerces -->
    <dependency>
      <groupId>org.apache.servicemix.bundles</groupId>
      <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
      <version>${servicemix.xerces.version}</version>
    </dependency>
    <!-- Needed by Jena -->
    <dependency>
      <groupId>com.github.andrewoma.dexx</groupId>
      <artifactId>collection</artifactId>
      <version>${dexx.collection.version}</version>
    </dependency>

  <!-- Needed for Java 9+ -->
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>${jaxb.version}</version>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-osgi</artifactId>
      <version>${jaxb.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.activation</groupId>
      <artifactId>activation</artifactId>
      <version>${activation.version}</version>
    </dependency>
  </dependencies>
  <profiles>
    <profile>
      <id>all</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    <modules>
      <module>taverna-baclava-language</module>
      <module>taverna-databundle</module>
      <module>taverna-robundle</module>
      <module>taverna-scufl2-annotation</module>
      <module>taverna-scufl2-api</module>
      <module>taverna-scufl2-examples</module>
      <module>taverna-scufl2-integration-tests</module>
      <module>taverna-scufl2-schemas</module>
      <module>taverna-scufl2-scufl</module>
      <module>taverna-scufl2-t2flow</module>
      <module>taverna-scufl2-ucfpackage</module>
      <module>taverna-scufl2-wfbundle</module>
      <module>taverna-tavlang-tool</module>
      <module>taverna-scufl2-wfdesc</module>
    </modules>
  </profile>
  <profile>
    <id>android</id>
    <!--<activation>
      <property>
        <name>environment</name>
        <value>android</value>
      </property>
    </activation>
    -->
    <properties>
      <maven.compiler.source>1.7</maven.compiler.source>
      <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <modules>
      <module>taverna-baclava-language</module>
      <module>taverna-scufl2-annotation</module>
      <module>taverna-scufl2-api</module>
      <module>taverna-scufl2-examples</module>
      <module>taverna-scufl2-integration-tests</module>
      <module>taverna-scufl2-schemas</module>
      <module>taverna-scufl2-scufl</module>
      <module>taverna-scufl2-t2flow</module>
      <module>taverna-scufl2-ucfpackage</module>
      <module>taverna-scufl2-wfbundle</module>
      <module>taverna-tavlang-tool</module>
    </modules>
  </profile>
</profiles>

</project>
