<?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>4-incubating-SNAPSHOT</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>

          </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.3.0</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://gitbox.apache.org/repos/asf/incubator-taverna-language.git</connection>
      <developerConnection>scm:git:git@github.com:apache/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.apache.servicemix.bundles</groupId>
        <artifactId>org.apache.servicemix.bundles.jdom</artifactId>
        <version>${jdom2.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-ro-vocabs</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>
      <module>taverna-scufl2-cwl</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-ro-vocabs</module>
      <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>
