<?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>${log4j.version}</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>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>
