<?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.workbench</groupId>
	<artifactId>apache-taverna-workbench-product</artifactId>
	<version>3.1.0-incubating-SNAPSHOT</version>
	<name>Taverna Workbench [Developer]</name>
	<!--
	<packaging>taverna-application</packaging> 
           disabled due to TAVERNA-924 -->
	<packaging>bundle</packaging>


    <properties>
        <taverna.language.version>0.16.0-incubating-SNAPSHOT</taverna.language.version>
        <taverna.osgi.version>0.2.1-incubating</taverna.osgi.version>
        <taverna.engine.version>3.1.0-incubating</taverna.engine.version>
        <taverna.commonactivities.version>2.1.0-incubating</taverna.commonactivities.version>
        <taverna.workbench.version>3.1.0-incubating-SNAPSHOT</taverna.workbench.version>            
    </properties>

	<profiles>
		<profile>
			<id>dev</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<assembly.descriptor>src/main/assembly/developer-assembly.xml</assembly.descriptor>
				<profile.updateSite>http://taverna.incubator.apache.org/updates/workbench/3.0/dev/</profile.updateSite>
				<profile.pluginSite>http://taverna.incubator.apache.org/updates/workbench/3.0/dev/plugins/</profile.pluginSite>
			</properties>
			<distributionManagement>
				<repository>
					<id>dev</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/dev</url>
				</repository>
				<snapshotRepository>
					<id>dev</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/dev</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>
		<profile>
			<id>beta</id>
			<properties>
				<assembly.descriptor>src/main/assembly/nightly-assembly.xml</assembly.descriptor>
				<profile.updateSite>http://taverna.incubator.apache.org/updates/workbench/3.0/beta/</profile.updateSite>
				<profile.pluginSite>http://taverna.incubator.apache.org/updates/workbench/3.0/beta/plugins/</profile.pluginSite>
			</properties>
			<distributionManagement>
				<repository>
					<id>beta</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/beta</url>
				</repository>
				<snapshotRepository>
					<id>beta</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/beta</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>
		<profile>
			<id>stable</id>
			<properties>
				<assembly.descriptor>src/main/assembly/release-assembly.xml</assembly.descriptor>
				<profile.updateSite>http://taverna.incubator.apache.org/updates/workbench/3.0/stable/</profile.updateSite>
				<profile.pluginSite>http://taverna.incubator.apache.org/updates/workbench/3.0/stable/plugins/</profile.pluginSite>
			</properties>
			<distributionManagement>
				<repository>
					<id>stable</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/stable</url>
				</repository>
				<snapshotRepository>
					<id>stable</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/stable</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>
		<profile>
			<id>nightly</id>
			<properties>
				<assembly.descriptor>src/main/assembly/nightly-assembly.xml</assembly.descriptor>
				<profile.updateSite>http://taverna.incubator.apache.org/updates/workbench/3.0/dev/</profile.updateSite>
				<profile.pluginSite>http://taverna.incubator.apache.org/updates/workbench/3.0/dev/plugins/</profile.pluginSite>
			</properties>
			<distributionManagement>
				<repository>
					<id>dev</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/dev</url>
				</repository>
				<snapshotRepository>
					<id>dev</id>
					<url>file:///local/www/taverna/updates/3/workbench/3.0/dev</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>
	</profiles>
	<build>
		<finalName>taverna-workbench-${project.version}</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<descriptors>
						<descriptor>${assembly.descriptor}</descriptor>
					</descriptors>
					<archiverConfig>
						<directoryMode>493</directoryMode> <!-- 493(dec) = 755(oct) = rwxr-xr-x -->
						<defaultDirectoryMode>493</defaultDirectoryMode>
					</archiverConfig>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>buildnumber-maven-plugin</artifactId>
				<version>1.0-beta-3</version>
				<executions>
					<execution>
						<id>buildnumber-validate</id>
						<phase>validate</phase>
						<goals>
							<goal>create</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<format>{0,date,yyyyMMdd}T{0,date,HHmm}</format>
					<items>
						<item>timestamp</item>
					</items>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.taverna.osgi</groupId>
				<artifactId>taverna-maven-plugin</artifactId>
				<version>${taverna.osgi.version}</version>
				<extensions>true</extensions>
				<configuration>
					<buildNumber>${buildNumber}</buildNumber>
					<updateSite>${profile.updateSite}</updateSite>
					<pluginSite>${profile.pluginSite}</pluginSite>
					<frameworkConfigurations>
						<frameworkConfiguration>
							<name>org.osgi.framework.bootdelegation</name>
							<value>sun.*,com.sun.*,java.*,javax.*,org.xml.*,org.w3c.*,apple.*,com.apple.*,org.omg.*,org.ietf.jgss.*,org.jcp.xml.dsig.internal.*</value>
						</frameworkConfiguration>
						<frameworkConfiguration>
							<name>org.osgi.framework.system.packages.extra</name>

							<value>com.sun.org.apache.xml.internal.utils,org.apache.log4j;version=1.2.16</value>
						</frameworkConfiguration>
						<frameworkConfiguration>
							<name>org.osgi.framework.storage.clean</name>
							<value>onFirstInit</value>
						</frameworkConfiguration>
					</frameworkConfigurations>
				</configuration>
        <executions>
          <execution>
            <!-- Explicit execution due to TAVERNA-924 workaround -->
            <id>prepare-bundles</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>profile-generate</goal>
            </goals>
          </execution>
        </executions>

			</plugin>
			<!--
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
-->
				<!-- Deliberately downgraded so we can use <skipIfEmpty> -->
					<!--
				<version>2.4</version>
				<configuration>
					<skipIfEmpty>true</skipIfEmpty>
				</configuration>
			</plugin>
-->
                        <plugin>
                                <groupId>org.apache.rat</groupId>
                                <artifactId>apache-rat-plugin</artifactId>
                                <configuration combine.children="append" >
                                        <useDefaultExcludes>true</useDefaultExcludes>
                                        <excludes>
						<!-- 
						These are small config files user might need to edit without
						having to comply with the ASF license
						-->
						<exclude>**/src/main/etc/conf/</exclude>
                                        </excludes>
                                </configuration>
                        </plugin>

		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.taverna.osgi</groupId>
										<artifactId>
											taverna-maven-plugin
										</artifactId>
										<versionRange>
											[0.2.1-incubating,)
										</versionRange>
										<goals>
											<goal>
												profile-generate
											</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<execute>
											<runOnIncremental>false</runOnIncremental>
										</execute>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<dependencies>

		<!-- Explicit org.osgi.* with <scope>provided as these are also provided
			by the felix osgi package. Avoids: Caused by: java.lang.SecurityException:
			class "org.osgi.framework.hooks.bundle.CollisionHook"'s signer information
			does not match signer information of other classes in the same package -->

		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.core</artifactId>
			<version>4.3.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.osgi</groupId>
			<artifactId>org.osgi.compendium</artifactId>
			<version>4.3.1</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
			<scope>provided</scope>
		</dependency>

		<!-- Spring DM -->
		<dependency>
			<groupId>net.sourceforge.cglib</groupId>
			<artifactId>com.springsource.net.sf.cglib</artifactId>
			<version>2.1.3</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.osgi</groupId>
			<artifactId>spring-osgi-annotation</artifactId>
			<version>2.0.0.M1</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.osgi</groupId>
			<artifactId>spring-osgi-extender</artifactId>
			<version>2.0.0.M1</version>
		</dependency>

		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>org.springframework.context</artifactId>
			<version>3.0.5.RELEASE</version>
		</dependency>

		<!-- Java Extension Implementations -->
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>com.springsource.javax.xml.bind</artifactId>
			<version>2.2.0</version>
		</dependency>
		<dependency>
			<groupId>javax.activation</groupId>
			<artifactId>com.springsource.javax.activation</artifactId>
			<version>1.1.1</version>
		</dependency>
		<dependency> <!-- required by bsh -->
			<groupId>javax.servlet</groupId>
			<artifactId>com.springsource.javax.servlet</artifactId>
			<version>2.5.0</version>
		</dependency>
		<dependency>
			<groupId>javax.jms</groupId>
			<artifactId>com.springsource.javax.jms</artifactId>
			<version>1.1.0</version>
		</dependency>
		<dependency>
			<groupId>javax.xml.soap</groupId>
			<artifactId>com.springsource.javax.xml.soap</artifactId>
			<version>1.3.0</version>
		</dependency>
		<dependency>
			<groupId>javax.xml.stream</groupId>
			<artifactId>com.springsource.javax.xml.stream</artifactId>
			<version>1.0.1</version>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>com.springsource.javax.mail</artifactId>
			<version>1.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>com.springsource.org.apache.commons.codec</artifactId>
			<version>1.4.0</version>
		</dependency>

		<!-- OSGi Compendium Services -->
		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>xml-parser-service</artifactId>
			<version>${taverna.osgi.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>xml-transformer-service</artifactId>
			<version>${taverna.osgi.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.eventadmin</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.configadmin</artifactId>
			<version>1.6.0</version>
		</dependency>

		<!-- Taverna Activities -->
		<dependency>
			<groupId>org.apache.taverna.language</groupId>
			<artifactId>taverna-scufl2-api</artifactId>
			<version>${taverna.language.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-selection-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-observer</artifactId>
			<version>${taverna.engine.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-edits-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>taverna-plugin-api</artifactId>
			<version>${taverna.osgi.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>taverna-configuration-api</artifactId>
			<version>${taverna.osgi.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<version>1.4.0.RELEASE</version>
			
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>4.3.1.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>taverna-app-configuration-api</artifactId>
			<version>${taverna.osgi.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-file-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-menu-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-configuration-ui-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-helper-api</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-ui</artifactId>
			<version>${taverna.workbench.version}</version>
		</dependency>



		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>${commons.io.version}</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			
		</dependency>
		<dependency>
			<groupId>org.simplericity.macify</groupId>
			<artifactId>macify</artifactId>
			<version>${macify.version}</version>
		</dependency>

		<!-- Implementation, used by WorkbenchTest directly rather than through 
			Spring -->

		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-credential-manager-ui</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-perspective-design</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-perspective-results</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-edits-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-file-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-menu-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-selection-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-credential-manager-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>taverna-app-configuration-impl</artifactId>
			<version>${taverna.osgi.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.osgi</groupId>
			<artifactId>taverna-configuration-impl</artifactId>
			<version>${taverna.osgi.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-capability-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>


		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-execution-local</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-reference-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-workflowmodel-extensions</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-dataflow-activity</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>				
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-stringconstant-activity</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>				
		<dependency>
			<groupId>org.apache.taverna.commonactivities</groupId>
			<artifactId>taverna-beanshell-activity</artifactId>
			<version>${taverna.commonactivities.version}</version>
			
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-services-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-run-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-execution-impl</artifactId>
			<version>${taverna.engine.version}</version>
			
		</dependency>				
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-contextual-views-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-activity-palette-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-configuration-ui-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.workbench</groupId>
			<artifactId>taverna-renderers-impl</artifactId>
			<version>${taverna.workbench.version}</version>
			
		</dependency>


	</dependencies>
  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/incubator-taverna-workbench-product.git</connection>
    <developerConnection>scm:git:git@github.com:apache/incubator-taverna-workbench-product.git</developerConnection>
    <url>https://github.com/apache/incubator-taverna-workbench-product</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>
</project>
