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

  <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>
    <dependency>
      <groupId>org.apache.servicemix.bundles</groupId>
      <artifactId>org.apache.servicemix.bundles.xerces</artifactId>
      <version>${servicemix.xerces.version}</version>
    </dependency>
        <!-- JENA-1178 workaround: Upgrade jsonlld-java -->
    <dependency>
      <groupId>com.github.jsonld-java</groupId>
      <artifactId>jsonld-java</artifactId>
      <version>${jsonldjava.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>
