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

       https://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="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://taverna.incubator.apache.org/updates/workbench/3.0/dev/</profile.updateSite>
				<profile.pluginSite>https://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>https://taverna.incubator.apache.org/updates/workbench/3.0/beta/</profile.updateSite>
				<profile.pluginSite>https://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>https://taverna.incubator.apache.org/updates/workbench/3.0/stable/</profile.updateSite>
				<profile.pluginSite>https://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>https://taverna.incubator.apache.org/updates/workbench/3.0/dev/</profile.updateSite>
				<profile.pluginSite>https://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>
