You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/23 11:38:24 UTC

[16/17] incubator-taverna-plugin-bioinformatics git commit: Revert "temporarily empty repository"

Revert "temporarily empty repository"

This reverts commit e13e3b7419f7c67ddf3c3e4184a59686639484cd.


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/commit/a87b4151
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/tree/a87b4151
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/diff/a87b4151

Branch: refs/heads/master
Commit: a87b4151c95077f7d75496abc5a9588a3a6bf129
Parents: e13e3b7
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Feb 20 16:38:11 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Feb 20 16:38:11 2015 +0000

----------------------------------------------------------------------
 pom.xml                                         |   41 +
 taverna-biomart-activity-ui/pom.xml             |   94 +
 .../BiomartActivityConfigurationAction.java     |   74 +
 .../actions/BiomartConfigurationPanel.java      |  134 +
 .../menu/BiomartConfigurationMenuAction.java    |   68 +
 .../BiomartActivityIcon.java                    |   59 +
 .../BiomartServiceDescription.java              |  146 +
 .../BiomartServiceProvider.java                 |  147 +
 .../BiomartServiceProviderConfig.java           |   36 +
 .../views/BiomartActivityContextualView.java    |  117 +
 .../views/BiomartActivityViewFactory.java       |   86 +
 ...rvicedescriptions.ServiceDescriptionProvider |    1 +
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |    1 +
 ...a.t2.workbench.activityicons.ActivityIconSPI |    1 +
 ...ntextualviews.activity.ContextualViewFactory |    1 +
 .../spring/biomart-activity-ui-context-osgi.xml |   30 +
 .../spring/biomart-activity-ui-context.xml      |   29 +
 .../src/main/resources/biomart.png              |  Bin 0 -> 3175 bytes
 .../TestBiomartActivityContextualView.java      |   94 +
 .../src/test/resources/biomart-query.xml        |   24 +
 taverna-biomart-activity/pom.xml                |   77 +
 .../t2/activities/biomart/BiomartActivity.java  |  351 ++
 .../BiomartActivityConfigurationBean.java       |   47 +
 .../biomart/BiomartActivityFactory.java         |  144 +
 .../biomart/BiomartActivityHealthChecker.java   |   76 +
 ...averna.t2.workflowmodel.health.HealthChecker |    1 +
 .../spring/biomart-activity-context-osgi.xml    |   15 +
 .../spring/biomart-activity-context.xml         |   13 +
 .../src/main/resources/schema.json              |   19 +
 .../biomart/BiomartActivityFactoryTest.java     |   65 +
 .../src/test/resources/biomart-query.xml        |   17 +
 taverna-biomart-martservice/pom.xml             |  105 +
 .../org/biomart/martservice/DatasetLink.java    |  220 ++
 .../org/biomart/martservice/MartDataset.java    |  342 ++
 .../java/org/biomart/martservice/MartQuery.java |  436 +++
 .../org/biomart/martservice/MartRegistry.java   |   96 +
 .../org/biomart/martservice/MartService.java    |  709 ++++
 .../martservice/MartServiceException.java       |   86 +
 .../biomart/martservice/MartServiceUtils.java   |  725 ++++
 .../martservice/MartServiceXMLHandler.java      |  390 ++
 .../biomart/martservice/MartURLLocation.java    |  422 +++
 .../org/biomart/martservice/ResultReceiver.java |   61 +
 .../martservice/ResultReceiverException.java    |   85 +
 .../config/QueryConfigController.java           |  388 ++
 .../martservice/config/QueryConfigUtils.java    |  598 +++
 .../config/event/QueryComponentAdapter.java     |  109 +
 .../config/event/QueryComponentEvent.java       |  120 +
 .../config/event/QueryComponentListener.java    |  104 +
 .../config/ui/ConfigDisplayObject.java          |  125 +
 .../martservice/config/ui/ExpandableBox.java    |  204 +
 .../martservice/config/ui/MartServiceIcons.java |  104 +
 .../ui/MartServiceQueryConfigUIFactory.java     | 3543 ++++++++++++++++++
 .../martservice/config/ui/MinimalLayout.java    |  158 +
 .../martservice/config/ui/QueryComponent.java   |  342 ++
 .../config/ui/QueryConfigUIFactory.java         |  345 ++
 .../biomart/martservice/query/Attribute.java    |  198 +
 .../org/biomart/martservice/query/Dataset.java  |  309 ++
 .../org/biomart/martservice/query/Filter.java   |  243 ++
 .../org/biomart/martservice/query/Link.java     |  181 +
 .../org/biomart/martservice/query/Query.java    |  555 +++
 .../martservice/query/QueryListener.java        |  108 +
 .../martservice/query/QueryXMLHandler.java      |  332 ++
 .../biomart/martservice/config/ui/contract.gif  |  Bin 0 -> 90 bytes
 .../biomart/martservice/config/ui/expand.gif    |  Bin 0 -> 93 bytes
 .../martservice/config/ui/gene_schematic.gif    |  Bin 0 -> 734 bytes
 .../config/ui/gene_schematic_3utr.gif           |  Bin 0 -> 717 bytes
 .../config/ui/gene_schematic_5utr.gif           |  Bin 0 -> 722 bytes
 .../config/ui/gene_schematic_cdna.gif           |  Bin 0 -> 743 bytes
 .../config/ui/gene_schematic_coding.gif         |  Bin 0 -> 760 bytes
 .../ui/gene_schematic_coding_gene_flank.gif     |  Bin 0 -> 715 bytes
 .../gene_schematic_coding_transcript_flank.gif  |  Bin 0 -> 765 bytes
 .../config/ui/gene_schematic_gene_exon.gif      |  Bin 0 -> 504 bytes
 .../ui/gene_schematic_gene_exon_intron.gif      |  Bin 0 -> 710 bytes
 .../config/ui/gene_schematic_gene_flank.gif     |  Bin 0 -> 710 bytes
 .../config/ui/gene_schematic_peptide.gif        |  Bin 0 -> 760 bytes
 .../ui/gene_schematic_transcript_exon.gif       |  Bin 0 -> 920 bytes
 .../gene_schematic_transcript_exon_intron.gif   |  Bin 0 -> 716 bytes
 .../ui/gene_schematic_transcript_flank.gif      |  Bin 0 -> 751 bytes
 .../biomart/martservice/MartDatasetTest.java    |  335 ++
 .../biomart/martservice/MartRegistryTest.java   |  113 +
 .../martservice/MartServiceUtilsTest.java       |   65 +
 .../martservice/MartServiceXMLHandlerTest.java  |  218 ++
 .../martservice/MartURLLocationTest.java        |  255 ++
 .../config/event/QueryComponentEventTest.java   |  131 +
 .../config/ui/MartServiceIconsTest.java         |   77 +
 .../martservice/query/AttributeTest.java        |  164 +
 .../biomart/martservice/query/DatasetTest.java  |  308 ++
 .../biomart/martservice/query/FilterTest.java   |  242 ++
 .../biomart/martservice/query/QueryTest.java    |  303 ++
 taverna-biomoby-activity-ui/pom.xml             |   86 +
 .../biomoby/actions/AddParserActionHelper.java  |  280 ++
 .../BioMobyObjectTreeCustomRenderer.java        |   97 +
 .../BioMobyServiceTreeCustomRenderer.java       |   86 +
 .../biomoby/actions/BiomobyActionHelper.java    |  852 +++++
 .../BiomobyActivityConfigurationAction.java     |   60 +
 .../actions/BiomobyObjectActionHelper.java      |  787 ++++
 .../biomoby/actions/BiomobyScavengerDialog.java |  136 +
 .../actions/MobyObjectDetailsAction.java        |   83 +
 .../biomoby/actions/MobyObjectTreeNode.java     |   50 +
 .../activities/biomoby/actions/MobyPanel.java   |  136 +
 .../biomoby/actions/MobyParserAction.java       |   70 +
 .../actions/MobyServiceDetailsAction.java       |   65 +
 .../biomoby/actions/MobyServiceTreeNode.java    |   42 +
 .../activities/biomoby/actions/PopupThread.java |   34 +
 .../biomoby/actions/SimpleActionFrame.java      |   46 +
 .../BiomobyDatatypeDescription.java             |  143 +
 .../edits/AddBiomobyCollectionDataTypeEdit.java |   60 +
 .../edits/AddBiomobyConsumingServiceEdit.java   |  236 ++
 .../biomoby/edits/AddBiomobyDataTypeEdit.java   |  207 +
 .../biomoby/edits/AddMobyParseDatatypeEdit.java |  220 ++
 .../biomoby/edits/AddUpstreamObjectEdit.java    |  216 ++
 .../menu/BiomobyActivityDetailsMenuAction.java  |   40 +
 .../menu/BiomobyActivityParserMenuAction.java   |   41 +
 .../menu/ConfigureBiomobyMenuAction.java        |   52 +
 .../biomoby/query/BiomobyActivityIcon.java      |   36 +
 .../biomoby/query/BiomobyActivityItem.java      |   94 +
 .../query/BiomobyObjectActivityIcon.java        |   32 +
 .../query/BiomobyObjectActivityItem.java        |   76 +
 .../biomoby/query/BiomobyQueryHelper.java       |  270 ++
 .../t2/activities/biomoby/query/CacheImpl.java  |  568 +++
 .../BiomobyServiceDescription.java              |  137 +
 .../BiomobyServiceProvider.java                 |  121 +
 .../BiomobyServiceProviderConfig.java           |   37 +
 .../biomoby/ui/AddBiomobyDialogue.java          |   94 +
 .../biomoby/ui/BiomobyObjectTree.java           |  635 ++++
 .../activities/biomoby/ui/DatatypeMenuItem.java |  196 +
 .../view/BiomobyActivityContextualView.java     |  106 +
 .../BiomobyActivityContextualViewFactory.java   |   50 +
 .../biomoby/view/BiomobyConfigView.java         |  108 +
 .../BiomobyObjectActivityContextualView.java    |   95 +
 ...mobyObjectActivityContextualViewFactory.java |   67 +
 .../view/MobyParseDatatypeContextualView.java   |   62 +
 .../MobyParseDatatypeContextualViewFactory.java |   69 +
 .../src/main/resources/Add24.gif                |  Bin 0 -> 470 bytes
 .../src/main/resources/Cut24.gif                |  Bin 0 -> 1193 bytes
 .../src/main/resources/Information24.gif        |  Bin 0 -> 1328 bytes
 ...averna.t2.partition.PartitionAlgorithmSetSPI |    1 +
 ...sf.taverna.t2.partition.PropertyExtractorSPI |    1 +
 .../net.sf.taverna.t2.partition.QueryFactory    |    1 +
 ...rvicedescriptions.ServiceDescriptionProvider |    1 +
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |    5 +
 ...a.t2.workbench.activityicons.ActivityIconSPI |    2 +
 ...ntextualviews.activity.ContextualViewFactory |    3 +
 .../spring/biomoby-activity-ui-context-osgi.xml |   28 +
 .../spring/biomoby-activity-ui-context.xml      |   42 +
 .../src/main/resources/Search24.gif             |  Bin 0 -> 820 bytes
 .../src/main/resources/authority.png            |  Bin 0 -> 481 bytes
 .../src/main/resources/biomoby_object.png       |  Bin 0 -> 981 bytes
 .../src/main/resources/collection.png           |  Bin 0 -> 628 bytes
 .../src/main/resources/input.png                |  Bin 0 -> 489 bytes
 .../src/main/resources/moby.png                 |  Bin 0 -> 981 bytes
 .../src/main/resources/moby_small.gif           |  Bin 0 -> 787 bytes
 .../src/main/resources/output.png               |  Bin 0 -> 511 bytes
 .../src/main/resources/parse.png                |  Bin 0 -> 227 bytes
 .../src/main/resources/registry.gif             |  Bin 0 -> 935 bytes
 .../src/main/resources/service.png              |  Bin 0 -> 441 bytes
 .../view/BiomobyContextualViewFactoryTest.java  |   49 +
 taverna-biomoby-activity/pom.xml                |  142 +
 .../t2/activities/biomoby/BiomobyActivity.java  | 1319 +++++++
 .../BiomobyActivityConfigurationBean.java       |  142 +
 .../biomoby/BiomobyActivityFactory.java         |   49 +
 .../biomoby/BiomobyActivityHealthChecker.java   |   45 +
 .../t2/activities/biomoby/BiomobyCache.java     |   78 +
 .../biomoby/BiomobyObjectActivity.java          |  545 +++
 .../BiomobyObjectActivityConfigurationBean.java |   81 +
 .../biomoby/BiomobyObjectActivityFactory.java   |   49 +
 .../BiomobyObjectActivityHealthChecker.java     |   57 +
 .../biomoby/ExecuteAsyncCgiService.java         |  517 +++
 .../biomoby/ExecuteAsyncMobyService.java        |  695 ++++
 .../activities/biomoby/ExecuteCgiService.java   |   70 +
 .../activities/biomoby/ExecuteMobyService.java  |   38 +
 .../activities/biomoby/GetOntologyThread.java   |   59 +
 .../biomoby/MobyParseDatatypeActivity.java      |  417 +++
 ...yParseDatatypeActivityConfigurationBean.java |   81 +
 .../MobyParseDatatypeActivityFactory.java       |   49 +
 .../MobyParseDatatypeActivityHealthChecker.java |   58 +
 .../t2/activities/biomoby/ParseMobyXML.java     |  192 +
 .../activities/biomoby/RetrieveWsdlThread.java  |   57 +
 .../t2/activities/biomoby/XMLUtilities.java     | 1927 ++++++++++
 ...averna.t2.workflowmodel.health.HealthChecker |    3 +
 .../spring/biomoby-activity-context-osgi.xml    |   17 +
 .../spring/biomoby-activity-context.xml         |   14 +
 .../BiomobyActivityHealthCheckerTest.java       |   45 +
 .../BiomobyObjectActivityHealthCheckerTest.java |   45 +
 ...yParseDatatypeActivityHealthCheckerTest.java |   45 +
 taverna-ncbi-activity-ui/pom.xml                |   49 +
 .../spring/ncbi-activity-ui-context-osgi.xml    |    9 +
 .../spring/ncbi-activity-ui-context.xml         |    6 +
 .../src/main/resources/ncbi_services            |    0
 .../src/main/resources/wsdl.png                 |  Bin 0 -> 748 bytes
 taverna-soaplab-activity-ui/pom.xml             |  103 +
 .../SoaplabActivityConfigurationAction.java     |   68 +
 .../actions/SoaplabConfigurationPanel.java      |  183 +
 .../ConfigureSoaplabActivityMenuAction.java     |   54 +
 .../MissingSoaplabException.java                |   63 +
 .../SoaplabActivityIcon.java                    |   60 +
 .../servicedescriptions/SoaplabCategory.java    |   80 +
 .../SoaplabScavengerAgent.java                  |  144 +
 .../SoaplabServiceDescription.java              |  131 +
 .../SoaplabServiceProvider.java                 |  183 +
 .../SoaplabServiceProviderConfig.java           |   38 +
 .../views/SoaplabActivityContextualView.java    |  156 +
 .../views/SoaplabActivityViewFactory.java       |   73 +
 ...rvicedescriptions.ServiceDescriptionProvider |    1 +
 .../net.sf.taverna.t2.ui.menu.MenuComponent     |    1 +
 ...a.t2.workbench.activityicons.ActivityIconSPI |    1 +
 ...ntextualviews.activity.ContextualViewFactory |    1 +
 .../spring/soaplab-activity-ui-context-osgi.xml |   28 +
 .../spring/soaplab-activity-ui-context.xml      |   27 +
 .../main/resources/analysis_metadata_2_html.xsl |   96 +
 .../src/main/resources/soaplab.png              |  Bin 0 -> 701 bytes
 .../TestSoaplabActivityContextualView.java      |   61 +
 taverna-soaplab-activity/pom.xml                |   80 +
 .../sf/taverna/t2/activities/soaplab/Soap.java  |   82 +
 .../t2/activities/soaplab/SoaplabActivity.java  |  413 ++
 .../SoaplabActivityConfigurationBean.java       |  119 +
 .../soaplab/SoaplabActivityFactory.java         |  216 ++
 .../soaplab/SoaplabActivityHealthChecker.java   |   66 +
 ...averna.t2.workflowmodel.health.HealthChecker |    1 +
 .../spring/soaplab-activity-context-osgi.xml    |   15 +
 .../spring/soaplab-activity-context.xml         |   12 +
 .../src/main/resources/schema.json              |   40 +
 .../SoaplabActivityConfigurationBeanTest.java   |   92 +
 .../activities/soaplab/SoaplabActivityTest.java |  127 +
 224 files changed, 32788 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..5102f18
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,41 @@
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.apache.taverna</groupId>
+		<artifactId>taverna-parent</artifactId>
+		<version>1-incubating-SNAPSHOT</version>
+	</parent>
+	<groupId>org.apache.taverna.bioinformatics</groupId>
+	<artifactId>taverna-plugin-bioinformatics</artifactId>
+	<version>3.1.0-incubating-SNAPSHOT</version>
+	<packaging>pom</packaging>
+	<name>Apache Taverna Plugin for Bioinformatics</name>
+  <properties>
+    <taverna.language.version>0.15.0-incubating-SNAPSHOT</taverna.language.version>
+    <taverna.osgi.version>0.2.0-incubating-SNAPSHOT</taverna.osgi.version>
+    <taverna.engine.version>3.1.0-incubating-SNAPSHOT</taverna.engine.version>
+    <taverna.commonactivities.version>2.1.0-incubating-SNAPSHOT</taverna.commonactivities.version>
+  </properties>
+	<modules>
+    <module>taverna-biomart-activity</module>
+    <module>taverna-biomart-activity-ui</module>
+    <module>taverna-biomart-martservice</module>
+    <module>taverna-biomoby-activity</module>
+    <module>taverna-biomoby-activity-ui</module>
+    <module>taverna-ncbi-activity-ui</module>
+    <module>taverna-soaplab-activity</module>
+    <module>taverna-soaplab-activity-ui</module>
+  </modules>
+  <repositories>
+    <repository>
+      <id>taverna-incubating</id>
+      <name>Apache Taverna incubating Repository</name>
+        <url>http://repository.mygrid.org.uk/artifactory/incubator-snapshot-local/</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots />
+    </repository>
+  </repositories>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/pom.xml b/taverna-biomart-activity-ui/pom.xml
new file mode 100644
index 0000000..8465101
--- /dev/null
+++ b/taverna-biomart-activity-ui/pom.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>net.sf.taverna</groupId>
+                <artifactId>taverna-parent</artifactId>
+                <version>3.0.1-SNAPSHOT</version>
+	</parent>
+	<groupId>net.sf.taverna.t2.ui-activities</groupId>
+	<artifactId>biomart-activity-ui</artifactId>
+        <version>2.0-SNAPSHOT</version>
+        <packaging>bundle</packaging>
+	<name>Taverna 2 Biomart Activity UI</name>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.felix</groupId>
+				<artifactId>maven-bundle-plugin</artifactId>
+				<configuration>
+					<instructions>
+						<Import-Package>net.sf.taverna.t2.ui.menu,*</Import-Package>
+					</instructions>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>net.sf.taverna.t2.activities</groupId>
+			<artifactId>biomart-activity</artifactId>
+			<version>${t2.activities.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>activity-icons-api</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>activity-palette-api</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>contextual-views-api</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-api</groupId>
+			<artifactId>activity-tools</artifactId>
+			<version>${t2.ui.api.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>uk.org.taverna.configuration</groupId>
+			<artifactId>taverna-app-configuration-api</artifactId>
+			<version>${taverna.configuration.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+                        <version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.ui-impl</groupId>
+			<artifactId>configuration-impl</artifactId>
+			<version>${t2.ui.impl.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+	<repositories>
+		<repository>
+			<releases />
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+			<id>mygrid-repository</id>
+			<name>myGrid Repository</name>
+			<url>http://www.mygrid.org.uk/maven/repository
+			</url>
+		</repository>
+		<repository>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots />
+			<id>mygrid-snapshot-repository</id>
+			<name>myGrid Snapshot Repository</name>
+			<url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
+		</repository>
+	</repositories>
+</project>
+

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartActivityConfigurationAction.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartActivityConfigurationAction.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartActivityConfigurationAction.java
new file mode 100644
index 0000000..a0b51e7
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartActivityConfigurationAction.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.actions;
+
+import java.awt.Frame;
+import java.awt.event.ActionEvent;
+
+import javax.swing.Action;
+
+import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.ActivityConfigurationAction;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationDialog;
+import uk.org.taverna.commons.services.ServiceRegistry;
+import uk.org.taverna.configuration.app.ApplicationConfiguration;
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+@SuppressWarnings("serial")
+public class BiomartActivityConfigurationAction extends ActivityConfigurationAction {
+
+	public static final String CONFIGURE_BIOMART = "Configure Biomart query";
+	private final EditManager editManager;
+	private final FileManager fileManager;
+	private final ApplicationConfiguration applicationConfiguration;
+	private final ServiceRegistry serviceRegistry;
+
+	public BiomartActivityConfigurationAction(Activity activity, Frame owner,
+			EditManager editManager, FileManager fileManager, ActivityIconManager activityIconManager,
+			ApplicationConfiguration applicationConfiguration, ServiceDescriptionRegistry serviceDescriptionRegistry,
+			ServiceRegistry serviceRegistry) {
+		super(activity, activityIconManager, serviceDescriptionRegistry);
+		this.editManager = editManager;
+		this.fileManager = fileManager;
+		this.applicationConfiguration = applicationConfiguration;
+		this.serviceRegistry = serviceRegistry;
+		putValue(Action.NAME, CONFIGURE_BIOMART);
+	}
+
+	public void actionPerformed(ActionEvent action) {
+		ActivityConfigurationDialog currentDialog = ActivityConfigurationAction.getDialog(getActivity());
+		if (currentDialog != null) {
+			currentDialog.toFront();
+			return;
+		}
+
+		final BiomartConfigurationPanel configurationPanel = new BiomartConfigurationPanel(
+				getActivity(), applicationConfiguration, serviceRegistry);
+		final ActivityConfigurationDialog dialog = new ActivityConfigurationDialog(
+				getActivity(), configurationPanel, editManager);
+
+		ActivityConfigurationAction.setDialog(getActivity(), dialog, fileManager);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartConfigurationPanel.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartConfigurationPanel.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartConfigurationPanel.java
new file mode 100644
index 0000000..2b6f662
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/actions/BiomartConfigurationPanel.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.actions;
+
+import java.awt.Dimension;
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.URI;
+
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JLabel;
+
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
+
+import org.apache.log4j.Logger;
+import org.biomart.martservice.MartQuery;
+import org.biomart.martservice.MartService;
+import org.biomart.martservice.MartServiceException;
+import org.biomart.martservice.MartServiceXMLHandler;
+import org.biomart.martservice.config.QueryConfigController;
+import org.biomart.martservice.config.ui.MartServiceQueryConfigUIFactory;
+import org.biomart.martservice.config.ui.QueryConfigUIFactory;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+import org.jdom.output.XMLOutputter;
+
+import uk.org.taverna.commons.services.ServiceRegistry;
+import uk.org.taverna.configuration.app.ApplicationConfiguration;
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+public class BiomartConfigurationPanel extends ActivityConfigurationPanel {
+	private static Logger logger = Logger.getLogger(BiomartConfigurationPanel.class);
+
+	private static final long serialVersionUID = 1884045346293327621L;
+
+	public static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/biomart");
+
+	private String configurationString;
+
+	private MartQuery biomartQuery;
+
+	private static XMLOutputter outputter = new XMLOutputter();
+
+	private final ApplicationConfiguration applicationConfiguration;
+
+	private final ServiceRegistry serviceRegistry;
+
+	public BiomartConfigurationPanel(Activity activity, ApplicationConfiguration applicationConfiguration,
+			ServiceRegistry serviceRegistry) {
+		super(activity);
+		this.applicationConfiguration = applicationConfiguration;
+		this.serviceRegistry = serviceRegistry;
+		initialise();
+	}
+
+	protected void initialise() {
+		super.initialise();
+		removeAll();
+
+		configurationString = getProperty("martQuery");
+		Element martQuery = null;
+		try {
+			martQuery = new SAXBuilder().build(new StringReader(configurationString)).getRootElement();
+		} catch (JDOMException | IOException e) {
+			logger.warn(e);
+		}
+		setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
+
+		biomartQuery = MartServiceXMLHandler.elementToMartQuery(martQuery, null);
+		MartService service = biomartQuery.getMartService();
+
+		File homeRoot=applicationConfiguration.getApplicationHomeDir();
+		if (homeRoot==null) {
+			logger.error("unable to determine application home for biomart cache");
+			homeRoot=new File(System.getProperty("java.io.tmpdir"));
+		}
+		File cache=new File(homeRoot,"t2-biomart-activity");
+		service.setCacheDirectory(new File(cache,"cache"));
+		logger.info("Biomart is using cache directory:"+cache.getAbsolutePath());
+
+		QueryConfigController controller = new QueryConfigController(biomartQuery);
+		try {
+			QueryConfigUIFactory queryConfigUIFactory = new MartServiceQueryConfigUIFactory(
+					service, controller, biomartQuery.getMartDataset());
+			add(queryConfigUIFactory.getDatasetConfigUI());
+			add(Box.createGlue());
+		} catch (MartServiceException e) {
+			add(new JLabel("Error reading configuration properties"));
+			add(new JLabel(e.getMessage()));
+			add(Box.createGlue());
+		}
+		this.setPreferredSize(new Dimension(900,500));
+		this.validate();
+	}
+
+	public Element getQuery() {
+		return MartServiceXMLHandler.martQueryToElement(biomartQuery, null);
+	}
+
+	@Override
+	public void noteConfiguration() {
+		setProperty("martQuery", outputter.outputString(new Document(getQuery())));
+		configureInputPorts(serviceRegistry);
+		configureOutputPorts(serviceRegistry);
+	}
+
+	@Override
+	public boolean checkValues() {
+		// TODO Not yet done
+		return true;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/menu/BiomartConfigurationMenuAction.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/menu/BiomartConfigurationMenuAction.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/menu/BiomartConfigurationMenuAction.java
new file mode 100644
index 0000000..775ce95
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/menu/BiomartConfigurationMenuAction.java
@@ -0,0 +1,68 @@
+package net.sf.taverna.t2.activities.biomart.menu;
+
+import java.net.URI;
+
+import javax.swing.Action;
+
+import net.sf.taverna.t2.activities.biomart.actions.BiomartActivityConfigurationAction;
+import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
+import net.sf.taverna.t2.ui.menu.ContextualMenuComponent;
+import net.sf.taverna.t2.ui.menu.MenuComponent;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.activitytools.AbstractConfigureActivityMenuAction;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import uk.org.taverna.commons.services.ServiceRegistry;
+import uk.org.taverna.configuration.app.ApplicationConfiguration;
+
+public class BiomartConfigurationMenuAction extends AbstractConfigureActivityMenuAction implements
+		MenuComponent, ContextualMenuComponent {
+
+	private static final URI BIOMART_ACTIVITY = URI
+			.create("http://ns.taverna.org.uk/2010/activity/biomart");
+	private EditManager editManager;
+	private FileManager fileManager;
+	private ActivityIconManager activityIconManager;
+	private ApplicationConfiguration applicationConfiguration;
+	private ServiceDescriptionRegistry serviceDescriptionRegistry;
+	private ServiceRegistry serviceRegistry;
+
+	public BiomartConfigurationMenuAction() {
+		super(BIOMART_ACTIVITY);
+	}
+
+	@Override
+	protected Action createAction() {
+		BiomartActivityConfigurationAction configAction = new BiomartActivityConfigurationAction(
+				findActivity(), getParentFrame(), editManager, fileManager, activityIconManager,
+				applicationConfiguration, serviceDescriptionRegistry, serviceRegistry);
+		configAction.putValue(Action.NAME, BiomartActivityConfigurationAction.CONFIGURE_BIOMART);
+		addMenuDots(configAction);
+		return configAction;
+	}
+
+	public void setEditManager(EditManager editManager) {
+		this.editManager = editManager;
+	}
+
+	public void setFileManager(FileManager fileManager) {
+		this.fileManager = fileManager;
+	}
+
+	public void setActivityIconManager(ActivityIconManager activityIconManager) {
+		this.activityIconManager = activityIconManager;
+	}
+
+	public void setApplicationConfiguration(ApplicationConfiguration applicationConfiguration) {
+		this.applicationConfiguration = applicationConfiguration;
+	}
+
+	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+		this.serviceRegistry = serviceRegistry;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartActivityIcon.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartActivityIcon.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartActivityIcon.java
new file mode 100644
index 0000000..845665e
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartActivityIcon.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.servicedescriptions;
+
+import java.net.URI;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI;
+
+/**
+ *
+ * @author Alex Nenadic
+ * @author Alan R Williams
+ *
+ */
+public class BiomartActivityIcon implements ActivityIconSPI {
+
+	private static final URI BIOMART_ACTIVITY = URI.create("http://ns.taverna.org.uk/2010/activity/biomart");
+
+	static Icon icon = null;
+
+	public int canProvideIconScore(URI activityType) {
+		if (BIOMART_ACTIVITY.equals(activityType))
+			return DEFAULT_ICON + 1;
+		else
+			return NO_ICON;
+	}
+
+	public Icon getIcon(URI activityType) {
+		return getBiomartIcon();
+	}
+
+	public static Icon getBiomartIcon() {
+		if (icon == null) {
+			icon = new ImageIcon(BiomartActivityIcon.class.getResource("/biomart.png"));
+		}
+		return icon;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceDescription.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceDescription.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceDescription.java
new file mode 100644
index 0000000..ca50019
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceDescription.java
@@ -0,0 +1,146 @@
+/* Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.servicedescriptions;
+
+import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+
+import net.sf.taverna.t2.servicedescriptions.ServiceDescription;
+
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.output.XMLOutputter;
+
+import uk.org.taverna.scufl2.api.configurations.Configuration;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * @author alanrw
+ * @author David Withers
+ */
+public class BiomartServiceDescription extends ServiceDescription {
+
+	public static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/biomart");
+
+	private String url;
+	private String dataset;
+	private String location;
+
+	private static final String BIOMART = "Biomart @ ";
+	private Element martQuery;
+
+	public Element getMartQuery() {
+		return martQuery;
+	}
+
+	/**
+	 * @return the url
+	 */
+	public String getUrl() {
+		return url;
+	}
+
+	/**
+	 * @param url
+	 *            the url to set
+	 */
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
+	/**
+	 * @return the dataset
+	 */
+	public String getDataset() {
+		return dataset;
+	}
+
+	/**
+	 * @param dataset
+	 *            the dataset to set
+	 */
+	public void setDataset(String dataset) {
+		this.dataset = dataset;
+	}
+
+	/**
+	 * @return the location
+	 */
+	public String getLocation() {
+		return location;
+	}
+
+	/**
+	 * @param location
+	 *            the location to set
+	 */
+	public void setLocation(String location) {
+		this.location = location;
+	}
+
+	public void setMartQuery(Element martQuery) {
+		this.martQuery = martQuery;
+	}
+
+	@Override
+	public URI getActivityType() {
+		return ACTIVITY_TYPE;
+	}
+
+	@Override
+	public Configuration getActivityConfiguration() {
+		Configuration configuration = new Configuration();
+		configuration.setType(ACTIVITY_TYPE.resolve("#Config"));
+		String queryText = new XMLOutputter().outputString(new Document(martQuery));
+		((ObjectNode) configuration.getJson()).put("martQuery", queryText);
+		return configuration;
+	}
+
+	@Override
+	public Icon getIcon() {
+		return BiomartActivityIcon.getBiomartIcon();
+	}
+
+	@Override
+	public String getName() {
+		return dataset;
+	}
+
+	@Override
+	public List<? extends Comparable<?>> getPath() {
+		List<String> result;
+		result = Arrays.asList(BIOMART + url, location);
+		return result;
+	}
+
+	@Override
+	protected List<Object> getIdentifyingData() {
+		return Arrays.<Object> asList(getUrl(), getLocation(), getDataset());
+	}
+
+	@Override
+	public boolean isTemplateService() {
+		return true;
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProvider.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProvider.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProvider.java
new file mode 100644
index 0000000..712e8d8
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProvider.java
@@ -0,0 +1,147 @@
+/**
+ *
+ */
+package net.sf.taverna.t2.activities.biomart.servicedescriptions;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+
+import net.sf.taverna.t2.servicedescriptions.AbstractConfigurableServiceProvider;
+import net.sf.taverna.t2.servicedescriptions.ServiceDescription;
+import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
+
+import org.biomart.martservice.MartDataset;
+import org.biomart.martservice.MartQuery;
+import org.biomart.martservice.MartRegistry;
+import org.biomart.martservice.MartService;
+import org.biomart.martservice.MartServiceException;
+import org.biomart.martservice.MartServiceXMLHandler;
+import org.biomart.martservice.MartURLLocation;
+
+/**
+ * @author alanrw
+ * @author David Withers
+ */
+public class BiomartServiceProvider extends AbstractConfigurableServiceProvider<BiomartServiceProviderConfig> {
+
+	private static final String TAVERNA = "taverna";
+	private static final String BIOMART_SERVICE = "Biomart service";
+
+	private static final URI providerId = URI
+	.create("http://taverna.sf.net/2010/service-provider/biomart");
+
+	private ServiceDescriptionRegistry serviceDescriptionRegistry;
+
+	public BiomartServiceProvider() {
+		super(new BiomartServiceProviderConfig("http://somehost/biomart"));
+	}
+
+	public void findServiceDescriptionsAsync(
+			FindServiceDescriptionsCallBack callBack) {
+		List<ServiceDescription> descriptions = new ArrayList<ServiceDescription>();
+		String url = serviceProviderConfig.getUrl();
+		callBack.status("About to parse biomart:" + url);
+		try {
+		MartService martService = MartService
+				.getMartService(getBiomartServiceLocation(url));
+		martService.setRequestId(TAVERNA);
+		MartRegistry registry = martService.getRegistry();
+		MartURLLocation[] martURLLocations = registry.getMartURLLocations();
+		for (MartURLLocation martURLLocation : martURLLocations) {
+			if (martURLLocation.isVisible()) {
+
+				MartDataset[] datasets = martService
+						.getDatasets(martURLLocation);
+				Arrays.sort(datasets, MartDataset.getDisplayComparator());
+				for (MartDataset dataset : datasets) {
+					if (dataset.isVisible()) {
+						BiomartServiceDescription item = new BiomartServiceDescription();
+						item.setUrl(martService.getLocation());
+						item.setLocation(martURLLocation.getDisplayName());
+						item.setDataset(dataset.getName());
+						item.setDescription(dataset.getDisplayName());
+						MartQuery biomartQuery = new MartQuery(martService,
+								dataset, TAVERNA);
+						item.setMartQuery(MartServiceXMLHandler.martQueryToElement(biomartQuery, null));
+						descriptions.add(item);
+					}
+				}
+				if (descriptions.size() > 0) {
+					callBack.partialResults(descriptions);
+					descriptions.clear();
+				}
+			}
+		}
+		callBack.finished();
+		}
+		catch (MartServiceException e) {
+			callBack.fail("Failed to load Biomart from " + url, e);
+		}
+	}
+
+	public Icon getIcon() {
+		return BiomartActivityIcon.getBiomartIcon();
+	}
+
+	public String getName() {
+		return BIOMART_SERVICE;
+	}
+
+	/**
+	 * Attempts to construct a valid MartService URL from the location given.
+	 *
+	 * @param biomartLocation
+	 * @return a (hopefully) valid MartService URL
+	 */
+	private String getBiomartServiceLocation(String biomartLocation) {
+		StringBuffer sb = new StringBuffer();
+		if (biomartLocation.endsWith("martservice")) {
+			sb.append(biomartLocation);
+		} else if (biomartLocation.endsWith("martview")) {
+			sb.append(biomartLocation.substring(0, biomartLocation
+					.lastIndexOf("martview")));
+			sb.append("martservice");
+		} else if (biomartLocation.endsWith("/")) {
+			sb.append(biomartLocation);
+			sb.append("martservice");
+		} else {
+			sb.append(biomartLocation);
+			sb.append("/martservice");
+		}
+		return sb.toString();
+	}
+
+	public List<BiomartServiceProviderConfig> getDefaultConfigurations() {
+
+		List<BiomartServiceProviderConfig> defaults = new ArrayList<BiomartServiceProviderConfig>();
+
+		// If defaults have failed to load from a configuration file then load them here.
+		if (!serviceDescriptionRegistry.isDefaultSystemConfigurableProvidersLoaded()){
+			defaults.add(new BiomartServiceProviderConfig(
+					"http://www.biomart.org/biomart/martservice"));
+		} // else return an empty list
+
+		return defaults;
+
+	}
+
+	@Override
+	protected List<? extends Object> getIdentifyingData() {
+		List<String> result;
+		result = Arrays.asList(getConfiguration().getUrl());
+		return result;
+	}
+
+	public String getId() {
+		return providerId.toString();
+	}
+
+	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProviderConfig.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProviderConfig.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProviderConfig.java
new file mode 100644
index 0000000..9891fae
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/servicedescriptions/BiomartServiceProviderConfig.java
@@ -0,0 +1,36 @@
+/**
+ * 
+ */
+package net.sf.taverna.t2.activities.biomart.servicedescriptions;
+
+import net.sf.taverna.t2.lang.beans.PropertyAnnotated;
+import net.sf.taverna.t2.lang.beans.PropertyAnnotation;
+
+/**
+ * @author alanrw
+ *
+ */
+public class BiomartServiceProviderConfig  extends PropertyAnnotated {
+
+	private String url;
+	
+	public BiomartServiceProviderConfig() {
+	}
+
+	public BiomartServiceProviderConfig(String url) {
+		this.url = url.trim();
+	}
+
+	@PropertyAnnotation(displayName = "Biomart location", preferred = true)
+	public String getUrl() {
+		return url;
+	}
+
+	public void setUrl(String url) {
+		this.url = url.trim();
+	}
+
+	public String toString() {
+		return getUrl();
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityContextualView.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityContextualView.java
new file mode 100644
index 0000000..87a2294
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityContextualView.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.views;
+
+import java.awt.Frame;
+import java.io.IOException;
+import java.io.StringReader;
+
+import javax.swing.Action;
+
+import net.sf.taverna.t2.activities.biomart.actions.BiomartActivityConfigurationAction;
+import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+
+import org.biomart.martservice.MartQuery;
+import org.biomart.martservice.MartServiceXMLHandler;
+import org.biomart.martservice.query.Attribute;
+import org.biomart.martservice.query.Filter;
+import org.jdom.Element;
+import org.jdom.JDOMException;
+import org.jdom.input.SAXBuilder;
+
+import uk.org.taverna.commons.services.ServiceRegistry;
+import uk.org.taverna.configuration.app.ApplicationConfiguration;
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+@SuppressWarnings("serial")
+public class BiomartActivityContextualView extends HTMLBasedActivityContextualView {
+
+	private final EditManager editManager;
+	private final FileManager fileManager;
+	private final ActivityIconManager activityIconManager;
+	private final ApplicationConfiguration applicationConfiguration;
+	private final ServiceDescriptionRegistry serviceDescriptionRegistry;
+	private final ServiceRegistry serviceRegistry;
+
+	public BiomartActivityContextualView(Activity activity, EditManager editManager,
+			FileManager fileManager, ActivityIconManager activityIconManager,
+			ColourManager colourManager, ApplicationConfiguration applicationConfiguration,
+			ServiceDescriptionRegistry serviceDescriptionRegistry, ServiceRegistry serviceRegistry) {
+		super(activity, colourManager);
+		this.editManager = editManager;
+		this.fileManager = fileManager;
+		this.activityIconManager = activityIconManager;
+		this.applicationConfiguration = applicationConfiguration;
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+		this.serviceRegistry = serviceRegistry;
+	}
+
+	@Override
+	protected String getRawTableRowsHtml() {
+		String queryText = getConfigBean().getJson().get("martQuery").textValue();
+		Element martQuery = null;
+		try {
+			martQuery = new SAXBuilder().build(new StringReader(queryText)).getRootElement();
+		} catch (JDOMException | IOException e) {
+		}
+		MartQuery q = MartServiceXMLHandler.elementToMartQuery(martQuery, null);
+		String html = "<tr><td>URL</td><td>" + q.getMartService().getLocation() + "</td></tr>";
+		html += "<tr><td>Location</td><td>"
+				+ q.getMartDataset().getMartURLLocation().getDisplayName() + "</td></tr>";
+		boolean firstFilter = true;
+		for (Filter filter : q.getQuery().getFilters()) {
+			html += firstFilter ? "<tr><td>Filter</td><td>" : "<tr><td></td></td>";
+			firstFilter = false;
+			html += filter.getName() + "</td></tr>";
+		}
+		boolean firstAttribute = true;
+		for (Attribute attribute : q.getQuery().getAttributes()) {
+			html += firstAttribute ? "<tr><td>Attribute</td><td>" : "<tr><td></td><td>";
+			firstAttribute = false;
+			html += attribute.getName() + "</td></tr>";
+		}
+		html += "<tr><td>Dataset</td><td>" + q.getMartDataset().getDisplayName() + "</td></tr>";
+		return html;
+	}
+
+	@Override
+	public String getViewTitle() {
+		return "Biomart service";
+	}
+
+	@Override
+	public Action getConfigureAction(Frame owner) {
+		return new BiomartActivityConfigurationAction(getActivity(), owner, editManager,
+				fileManager, activityIconManager, applicationConfiguration,
+				serviceDescriptionRegistry, serviceRegistry);
+	}
+
+	@Override
+	public int getPreferredPosition() {
+		return 100;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityViewFactory.java b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityViewFactory.java
new file mode 100644
index 0000000..ad8321a
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/java/net/sf/taverna/t2/activities/biomart/views/BiomartActivityViewFactory.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.activities.biomart.views;
+
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.taverna.t2.activities.biomart.servicedescriptions.BiomartServiceDescription;
+import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry;
+import net.sf.taverna.t2.workbench.activityicons.ActivityIconManager;
+import net.sf.taverna.t2.workbench.configuration.colour.ColourManager;
+import net.sf.taverna.t2.workbench.edits.EditManager;
+import net.sf.taverna.t2.workbench.file.FileManager;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
+import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import uk.org.taverna.commons.services.ServiceRegistry;
+import uk.org.taverna.configuration.app.ApplicationConfiguration;
+import uk.org.taverna.scufl2.api.activity.Activity;
+
+public class BiomartActivityViewFactory implements ContextualViewFactory<Activity> {
+
+	private EditManager editManager;
+	private FileManager fileManager;
+	private ActivityIconManager activityIconManager;
+	private ColourManager colourManager;
+	private ApplicationConfiguration applicationConfiguration;
+	private ServiceDescriptionRegistry serviceDescriptionRegistry;
+	private ServiceRegistry serviceRegistry;
+
+	public boolean canHandle(Object object) {
+		return object instanceof Activity && ((Activity) object).getType().equals(BiomartServiceDescription.ACTIVITY_TYPE);
+	}
+
+	public List<ContextualView> getViews(Activity activity) {
+		return Arrays.asList(new ContextualView[] { new BiomartActivityContextualView(activity,
+				editManager, fileManager, activityIconManager, colourManager,
+				applicationConfiguration, serviceDescriptionRegistry, serviceRegistry) });
+	}
+
+	public void setEditManager(EditManager editManager) {
+		this.editManager = editManager;
+	}
+
+	public void setFileManager(FileManager fileManager) {
+		this.fileManager = fileManager;
+	}
+
+	public void setActivityIconManager(ActivityIconManager activityIconManager) {
+		this.activityIconManager = activityIconManager;
+	}
+
+	public void setColourManager(ColourManager colourManager) {
+		this.colourManager = colourManager;
+	}
+
+	public void setApplicationConfiguration(ApplicationConfiguration applicationConfiguration) {
+		this.applicationConfiguration = applicationConfiguration;
+	}
+
+	public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+		this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+	}
+
+	public void setServiceRegistry(ServiceRegistry serviceRegistry) {
+		this.serviceRegistry = serviceRegistry;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
new file mode 100644
index 0000000..637d76a
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomart.servicedescriptions.BiomartServiceProvider

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
new file mode 100644
index 0000000..dbff4b7
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomart.menu.BiomartConfigurationMenuAction

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
new file mode 100644
index 0000000..e8506ef
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomart.servicedescriptions.BiomartActivityIcon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
new file mode 100644
index 0000000..355b9ef
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
@@ -0,0 +1 @@
+net.sf.taverna.t2.activities.biomart.views.BiomartActivityViewFactory
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context-osgi.xml b/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context-osgi.xml
new file mode 100644
index 0000000..e5ea96b
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context-osgi.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/osgi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:beans="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+                      http://www.springframework.org/schema/beans/spring-beans.xsd
+                      http://www.springframework.org/schema/osgi
+                      http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+
+	<service ref="BiomartActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
+
+	<service ref="BiomartServiceProvider">
+		<interfaces>
+			<beans:value>net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider</beans:value>
+			<beans:value>net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider</beans:value>
+		</interfaces>
+	</service>
+
+	<service ref="BiomartConfigurationMenuAction" auto-export="interfaces" />
+
+	<service ref="BiomartActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+
+	<reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
+	<reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
+	<reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
+	<reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
+	<reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry"/>
+	<reference id="applicationConfiguration" interface="uk.org.taverna.configuration.app.ApplicationConfiguration" />
+	<reference id="serviceRegistry" interface="uk.org.taverna.commons.services.ServiceRegistry" />
+
+</beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context.xml
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context.xml b/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context.xml
new file mode 100644
index 0000000..21b43b2
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/main/resources/META-INF/spring/biomart-activity-ui-context.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+                      http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<bean id="BiomartActivityIcon" class="net.sf.taverna.t2.activities.biomart.servicedescriptions.BiomartActivityIcon" />
+
+	<bean id="BiomartServiceProvider" class="net.sf.taverna.t2.activities.biomart.servicedescriptions.BiomartServiceProvider">
+			<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
+	</bean>
+
+	<bean id="BiomartConfigurationMenuAction" class="net.sf.taverna.t2.activities.biomart.menu.BiomartConfigurationMenuAction">
+			<property name="editManager" ref="editManager" />
+			<property name="fileManager" ref="fileManager" />
+			<property name="activityIconManager" ref="activityIconManager" />
+			<property name="applicationConfiguration" ref="applicationConfiguration" />
+			<property name="serviceRegistry" ref="serviceRegistry" />
+	</bean>
+
+	<bean id="BiomartActivityViewFactory" class="net.sf.taverna.t2.activities.biomart.views.BiomartActivityViewFactory">
+			<property name="editManager" ref="editManager" />
+			<property name="fileManager" ref="fileManager" />
+			<property name="activityIconManager" ref="activityIconManager" />
+			<property name="colourManager" ref="colourManager" />
+			<property name="applicationConfiguration" ref="applicationConfiguration" />
+			<property name="serviceRegistry" ref="serviceRegistry" />
+	</bean>
+
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/main/resources/biomart.png
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/main/resources/biomart.png b/taverna-biomart-activity-ui/src/main/resources/biomart.png
new file mode 100644
index 0000000..a969908
Binary files /dev/null and b/taverna-biomart-activity-ui/src/main/resources/biomart.png differ

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/test/java/net/sf/taverna/t2/biomart/views/TestBiomartActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/test/java/net/sf/taverna/t2/biomart/views/TestBiomartActivityContextualView.java b/taverna-biomart-activity-ui/src/test/java/net/sf/taverna/t2/biomart/views/TestBiomartActivityContextualView.java
new file mode 100644
index 0000000..04ad076
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/test/java/net/sf/taverna/t2/biomart/views/TestBiomartActivityContextualView.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (C) 2007 The University of Manchester
+ *
+ *  Modifications to the initial code base are copyright of their
+ *  respective authors, or their employers as appropriate.
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Lesser General Public License
+ *  as published by the Free Software Foundation; either version 2.1 of
+ *  the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful, but
+ *  WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public
+ *  License along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ ******************************************************************************/
+package net.sf.taverna.t2.biomart.views;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+
+import net.sf.taverna.t2.activities.biomart.actions.BiomartActivityConfigurationAction;
+import net.sf.taverna.t2.activities.biomart.views.BiomartActivityContextualView;
+
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.jdom.output.XMLOutputter;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import uk.org.taverna.scufl2.api.activity.Activity;
+import uk.org.taverna.scufl2.api.configurations.Configuration;
+import uk.org.taverna.scufl2.api.profiles.Profile;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+public class TestBiomartActivityContextualView {
+	Activity activity;
+
+	@Before
+	public void setup() throws Exception {
+		activity = new Activity();
+		activity.setParent(new Profile());
+
+		Element el = getQueryElement("biomart-query.xml");
+
+		Configuration configuration = new Configuration();
+		configuration.setType(URI.create("http://ns.taverna.org.uk/2010/activity/biomart").resolve("#Config"));
+		String queryText = new XMLOutputter().outputString(new Document(el));
+		((ObjectNode) configuration.getJson()).put("martQuery", queryText);
+
+		configuration.setConfigures(activity);
+	}
+
+	@Test @Ignore
+	public void testConfigurationAction() throws Exception {
+		BiomartActivityContextualView view = new BiomartActivityContextualView(activity, null, null, null, null, null, null, null);
+		assertNotNull("The view should provide a configuration action",view.getConfigureAction(null));
+		assertTrue("The configuration action should be an instance of BiomartActivityConfigurationAction",view.getConfigureAction(null) instanceof BiomartActivityConfigurationAction);
+	}
+
+	private Element getQueryElement(String resourceName) throws Exception {
+		InputStream inStream = TestBiomartActivityContextualView.class
+				.getResourceAsStream("/"+resourceName);
+
+		if (inStream == null)
+			throw new IOException(
+					"Unable to find resource for:"
+							+ resourceName);
+		SAXBuilder builder = new SAXBuilder();
+		return builder.build(inStream).detachRootElement();
+	}
+
+	private void run() throws Exception {
+		setup();
+		BiomartActivityContextualView view = new BiomartActivityContextualView(activity, null, null, null, null, null, null, null);
+		view.setVisible(true);
+	}
+
+	public static void main(String[] args) throws Exception {
+		new TestBiomartActivityContextualView().run();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity-ui/src/test/resources/biomart-query.xml
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity-ui/src/test/resources/biomart-query.xml b/taverna-biomart-activity-ui/src/test/resources/biomart-query.xml
new file mode 100644
index 0000000..0e52a23
--- /dev/null
+++ b/taverna-biomart-activity-ui/src/test/resources/biomart-query.xml
@@ -0,0 +1,24 @@
+<biomart:MartQuery
+	xmlns:biomart="http://org.embl.ebi.escience/xscufl-biomart/0.1alpha">
+	<biomart:MartService
+		location="http://www.biomart.org/biomart/martservice" />
+	<biomart:MartDataset displayName="Homo sapiens genes (NCBI36)"
+		name="hsapiens_gene_ensembl" type="TableSet" initialBatchSize="10"
+		maximumBatchSize="50000" visible="false" interface="default"
+		modified="2006-11-27 12:49:27">
+		<biomart:MartURLLocation database="ensembl_mart_41" default="1"
+			displayName="ENSEMBL 41  (SANGER)" host="www.biomart.org"
+			includeDatasets="" martUser="" name="ensembl"
+			path="/biomart/martservice" port="80" serverVirtualSchema="default"
+			virtualSchema="default" visible="1" />
+	</biomart:MartDataset>
+	<biomart:Query virtualSchemaName="default" count="0" uniqueRows="0"
+		softwareVersion="0.5" requestId="taverna">
+		<biomart:Dataset name="hsapiens_gene_ensembl">
+			<biomart:Attribute name="coding_gene_flank" />
+			<biomart:Attribute name="gene_stable_id" />
+			<biomart:Filter name="ensembl_gene_id" value="" list="true" />
+			<biomart:Filter name="upstream_flank" value="100" />
+		</biomart:Dataset>
+	</biomart:Query>
+</biomart:MartQuery>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/a87b4151/taverna-biomart-activity/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-biomart-activity/pom.xml b/taverna-biomart-activity/pom.xml
new file mode 100644
index 0000000..2662e59
--- /dev/null
+++ b/taverna-biomart-activity/pom.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>net.sf.taverna</groupId>
+		<artifactId>taverna-parent</artifactId>
+		<version>3.0.1-SNAPSHOT</version>
+	</parent>
+	<groupId>net.sf.taverna.t2.activities</groupId>
+	<version>2.0.1-SNAPSHOT</version>
+	<artifactId>biomart-activity</artifactId>
+	<packaging>bundle</packaging>
+	<name>Taverna 2 Biomart Activity.</name>
+	<dependencies>
+		<dependency>
+			<groupId>org.biomart</groupId>
+			<artifactId>martservice</artifactId>
+			<version>2.0.1-SNAPSHOT</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>workflowmodel-api</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.core</groupId>
+			<artifactId>reference-api</artifactId>
+			<version>${t2.core.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>${jackson-databind.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>net.sf.taverna.t2.activities</groupId>
+			<artifactId>activity-test-utils</artifactId>
+			<version>${t2.activities.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<repositories>
+		<repository>
+			<releases />
+			<snapshots>
+				<enabled>false</enabled>
+			</snapshots>
+			<id>mygrid-repository</id>
+			<name>myGrid Repository</name>
+			<url>http://www.mygrid.org.uk/maven/repository</url>
+		</repository>
+		<repository>
+			<releases>
+				<enabled>false</enabled>
+			</releases>
+			<snapshots />
+			<id>mygrid-snapshot-repository</id>
+			<name>myGrid Snapshot Repository</name>
+			<url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
+		</repository>
+	</repositories>
+	<scm>
+		<connection>scm:git:https://github.com/taverna/taverna-biomart-activity.git</connection>
+		<developerConnection>scm:git:ssh://git@github.com/taverna/taverna-biomart-activity.git</developerConnection>
+		<url>https://github.com/taverna/taverna-biomart-activity/</url>
+		<tag>HEAD</tag>
+	</scm>
+</project>
+