http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartService.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartService.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartService.java
deleted file mode 100644
index c02bbb5..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartService.java
+++ /dev/null
@@ -1,709 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: MartService.java,v $errors/failure.html
- * Revision           $Revision: 1.7 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/08/11 12:48:29 $
- *               by   $Author: davidwithers $
- * Created on 17-Mar-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.lang.ref.SoftReference;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.GZIPOutputStream;
-
-import org.apache.log4j.Logger;
-import org.biomart.martservice.query.Query;
-import org.ensembl.mart.lib.config.ConfigurationException;
-import org.ensembl.mart.lib.config.DatasetConfig;
-import org.ensembl.mart.lib.config.DatasetConfigXMLUtils;
-import org.ensembl.mart.lib.config.Exportable;
-import org.ensembl.mart.lib.config.Importable;
-import org.jdom.Document;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
-import org.xml.sax.InputSource;
-
-/**
- * A class for interacting with a BioMart web service.
- * 
- * @author David Withers
- */
-public class MartService {
-       private static Logger logger = Logger.getLogger(MartServiceUtils.class);
-
-       private String location;
-
-       private String requestId;
-
-       private File cacheDirectory;
-
-       private MartRegistry registry;
-
-       private Map<MartURLLocation, String> versionMap = new 
HashMap<MartURLLocation, String>();
-
-       private Map<String, MartDataset[]> datasetsMap = new HashMap<String, 
MartDataset[]>();
-
-       private Map<String, SoftReference<DatasetConfig>> datasetConfigMap = 
new HashMap<String, SoftReference<DatasetConfig>>();
-
-       private Map<String, Importable[]> importablesMap = new HashMap<String, 
Importable[]>();
-
-       private Map<String, Exportable[]> exportablesMap = new HashMap<String, 
Exportable[]>();
-
-       private Map<MartDataset, List<DatasetLink>> linkableDatasetsMap = new 
HashMap<MartDataset, List<DatasetLink>>();
-
-       private Map<MartDataset, Set<DatasetLink>> datasetToLinkSetMap = new 
HashMap<MartDataset, Set<DatasetLink>>();
-
-       private Map<MartDataset, Map<MartDataset, MartDataset>> 
datasetsToPathMap = new HashMap<MartDataset, Map<MartDataset, MartDataset>>();
-
-       private static final Map<String, MartService> martServiceMap = new 
HashMap<String, MartService>();
-
-       private static final String fs = System.getProperty("file.separator");
-
-       private boolean linksCalculated = false;
-
-       /**
-        * Constructs an instance of a <code>MartService</code> with the 
specified
-        * location.
-        * 
-        * The location must be the URL of a valid BioMart MartService, e.g.
-        * http://www.biomart.org/biomart/martservice
-        * 
-        * @param location
-        *            the URL of the MartService
-        */
-       private MartService(String location) {
-               this.location = location;
-       }
-
-       /**
-        * Returns a <code>MartService</code> for the specified location. If a
-        * <code>MartService</code> does not exist for the location a new one is
-        * constructed.
-        * 
-        * The location must be the URL of a valid BioMart MartService, e.g.
-        * http://www.biomart.org/biomart/martservice
-        * 
-        * @param location
-        *            the URL of the MartService
-        */
-       public static MartService getMartService(String location) {
-               if (!martServiceMap.containsKey(location)) {
-                       martServiceMap.put(location, new MartService(location));
-               }
-               return martServiceMap.get(location);
-       }
-
-       /**
-        * Returns the requestId.
-        * 
-        * @return the requestId
-        */
-       public String getRequestId() {
-               return requestId;
-       }
-
-       /**
-        * Sets the requestId.
-        * 
-        * @param requestId
-        *            the new requestId
-        */
-       public void setRequestId(String requestId) {
-               this.requestId = requestId;
-       }
-
-       /**
-        * Returns the cacheDirectory.
-        * 
-        * @return the cacheDirectory
-        */
-       public File getCacheDirectory() {
-               return cacheDirectory;
-       }
-
-       /**
-        * Sets the cacheDirectory.
-        * 
-        * @param cacheDirectory
-        *            the new cacheDirectory
-        */
-       public void setCacheDirectory(File cacheDirectory) {
-               this.cacheDirectory = cacheDirectory;
-       }
-
-       /**
-        * Returns the URL of the MartService.
-        * 
-        * @return the URL of the MartService
-        */
-       public String getLocation() {
-               return location;
-       }
-
-       /**
-        * Removes any cached items.
-        */
-       public void clearCache() {
-               registry = null;
-               datasetsMap.clear();
-               datasetConfigMap.clear();
-               importablesMap.clear();
-               exportablesMap.clear();
-       }
-
-       /**
-        * Returns the MartRegistry for this MartService.
-        * 
-        * @return the MartRegistry for this MartService
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public MartRegistry getRegistry() throws MartServiceException {
-               if (registry == null) {
-                       registry = MartServiceUtils.getRegistry(location, 
requestId);
-               }
-               return registry;
-       }
-
-       public String getVersion(MartURLLocation martURLLocation)
-                       throws MartServiceException {
-               if (!versionMap.containsKey(martURLLocation)) {
-                       versionMap.put(martURLLocation, 
MartServiceUtils.getVersion(
-                                       location, requestId, martURLLocation));
-               }
-               return versionMap.get(martURLLocation);
-       }
-
-       /**
-        * Returns all the datasets available from this MartService.
-        * 
-        * @return all the datasets available from this MartService.
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public MartDataset[] getDatasets() throws MartServiceException {
-               List<MartDataset> datasets = new ArrayList<MartDataset>();
-               MartURLLocation[] locations = 
getRegistry().getMartURLLocations();
-               for (int i = 0; i < locations.length; i++) {
-                       
datasets.addAll(Arrays.asList(getDatasets(locations[i])));
-               }
-               return datasets.toArray(new MartDataset[datasets.size()]);
-       }
-
-       /**
-        * Returns the datasets belonging to the virtualSchema.
-        * 
-        * @param virtualSchema
-        *            the virtual schema to include datasets from.
-        * @return the datasets belonging to the virtualSchema.
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public MartDataset[] getDatasets(String virtualSchema)
-                       throws MartServiceException {
-               List<MartDataset> datasets = new ArrayList<MartDataset>();
-               MartURLLocation[] locations = 
getRegistry().getMartURLLocations();
-               for (int i = 0; i < locations.length; i++) {
-                       if (virtualSchema == null
-                                       || 
virtualSchema.equals(locations[i].getVirtualSchema())) {
-                               
datasets.addAll(Arrays.asList(getDatasets(locations[i])));
-                       }
-               }
-               return datasets.toArray(new MartDataset[datasets.size()]);
-       }
-
-       /**
-        * Returns the datasets specified by martURLLocation.
-        * 
-        * @param martURLLocation
-        *            where to find the datasets.
-        * @return the datasets specified by martURLLocation.
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public MartDataset[] getDatasets(MartURLLocation martURLLocation)
-                       throws MartServiceException {
-               String name = martURLLocation.getName();
-               if (!datasetsMap.containsKey(name)) {
-                       datasetsMap.put(name, 
MartServiceUtils.getDatasets(location,
-                                       requestId, martURLLocation));
-               }
-               return datasetsMap.get(name);
-       }
-
-       /**
-        * Returns the dataset specified by a virtualSchema and a dataset name.
-        * 
-        * @param virtualSchema
-        *            the virtualSchema containing the dataset
-        * @param datasetName
-        *            the name of the dataset to return
-        * @return a dataset
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public MartDataset getDataset(String virtualSchema, String datasetName)
-                       throws MartServiceException {
-               MartDataset result = null;
-               MartDataset[] datasets = getDatasets(virtualSchema);
-               for (int i = 0; i < datasets.length; i++) {
-                       if (datasetName.equals(datasets[i].getName())) {
-                               result = datasets[i];
-                               break;
-                       }
-               }
-               return result;
-       }
-
-       /**
-        * Returns the configuration for a dataset.
-        * 
-        * @param dataset
-        *            the dataset to get the configuration for
-        * @return the configuration for a dataset
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public DatasetConfig getDatasetConfig(MartDataset dataset)
-                       throws MartServiceException {
-               String qualifiedName = dataset.getQualifiedName();
-               DatasetConfig datasetConfig;
-               if (!datasetConfigMap.containsKey(qualifiedName)) {
-                       if (dataset.getModified() != null && cacheDirectory != 
null) {
-                               datasetConfig = 
getDatasetConfigFromCache(dataset);
-                       } else {
-                               datasetConfig = 
MartServiceUtils.getDatasetConfig(location,
-                                               requestId, dataset);
-                       }
-                       datasetConfigMap.put(qualifiedName,
-                                       new 
SoftReference<DatasetConfig>(datasetConfig));
-               } else {
-                       datasetConfig = 
datasetConfigMap.get(qualifiedName).get();
-                       if (datasetConfig == null) {
-                               if (dataset.getModified() != null && 
cacheDirectory != null) {
-                                       datasetConfig = 
getDatasetConfigFromCache(dataset);
-                               } else {
-                                       datasetConfig = 
MartServiceUtils.getDatasetConfig(location,
-                                                       requestId, dataset);
-                               }
-                               datasetConfigMap.put(qualifiedName,
-                                               new 
SoftReference<DatasetConfig>(datasetConfig));
-                       }
-
-               }
-               return datasetConfig;
-       }
-
-       private DatasetConfig getDatasetConfigFromCache(MartDataset dataset)
-                       throws MartServiceException {
-               DatasetConfig datasetConfig = null;
-               MartURLLocation mart = dataset.getMartURLLocation();
-               String path = mart.getHost() + fs + mart.getName() + fs
-                               + mart.getVirtualSchema();
-               File martCacheDir = new File(cacheDirectory, path);
-               martCacheDir.mkdirs();
-               File cache = new File(martCacheDir, dataset.getName() + ".cfg");
-               DatasetConfigXMLUtils datasetConfigXMLUtils = new 
DatasetConfigXMLUtils(
-                               true);
-               if (cache.exists()) {
-                       try {
-                               SAXBuilder builder = new SAXBuilder();
-                               Document doc = builder.build(new InputSource(
-                                               new GZIPInputStream(new 
FileInputStream(cache))));
-
-                               // Document doc =
-                               // 
datasetConfigXMLUtils.getDocumentForXMLStream(new
-                               // FileInputStream(cache));
-
-                               datasetConfig = datasetConfigXMLUtils
-                                               
.getDatasetConfigForDocument(doc);
-                               
datasetConfigXMLUtils.loadDatasetConfigWithDocument(
-                                               datasetConfig, doc);
-                               if (!datasetConfig.getModified().trim().equals(
-                                               dataset.getModified().trim())) {
-                                       logger.info(" " + 
datasetConfig.getModified().trim()
-                                                       + " != " + 
dataset.getModified().trim());
-                                       logger.info("  Database: "
-                                                       + 
dataset.getMartURLLocation().getDatabase()
-                                                       + ", Dataset: " + 
dataset.getName());
-                                       datasetConfig = null;
-                               }
-                       } catch (IOException e) {
-                               logger.debug("error reading cache from " + 
cache.getPath(), e);
-                               datasetConfig = null;
-                       } catch (ConfigurationException e) {
-                               logger.debug("error parsing from " + 
cache.getPath(), e);
-                               datasetConfig = null;
-                       } catch (JDOMException e) {
-                               logger.debug("error parsing from " + 
cache.getPath(), e);
-                               datasetConfig = null;
-                       }
-               }
-               if (datasetConfig == null) {
-                       datasetConfig = 
MartServiceUtils.getDatasetConfig(location,
-                                       requestId, dataset);
-                       try {
-                               GZIPOutputStream zipOutputStream = new 
GZIPOutputStream(
-                                               new FileOutputStream(cache));
-                               
datasetConfigXMLUtils.writeDatasetConfigToOutputStream(
-                                               datasetConfig, zipOutputStream);
-                               zipOutputStream.flush();
-                               zipOutputStream.close();
-                       } catch (IOException e) {
-                               logger.debug("error writing cache to " + 
cache.getPath(), e);
-                       } catch (ConfigurationException e) {
-                               logger.debug("error writing cache to " + 
cache.getPath(), e);
-                       }
-               }
-               return datasetConfig;
-       }
-
-       /**
-        * Returns the importables for a dataset.
-        * 
-        * @param dataset
-        * @return the importables for a dataset
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public Importable[] getImportables(MartDataset dataset)
-                       throws MartServiceException {
-               String qualifiedName = dataset.getQualifiedName();
-               if (!importablesMap.containsKey(qualifiedName)) {
-                       try {
-                               importablesMap.put(qualifiedName, 
getDatasetConfig(dataset)
-                                               .getImportables());
-                       } catch (MartServiceException e) {
-                               return new Importable[0];
-                       }
-               }
-               return importablesMap.get(qualifiedName);
-       }
-
-       /**
-        * Returns the exportables for a dataset.
-        * 
-        * @param dataset
-        * @return the exportables for a dataset
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public Exportable[] getExportables(MartDataset dataset)
-                       throws MartServiceException {
-               String qualifiedName = dataset.getQualifiedName();
-               if (!exportablesMap.containsKey(qualifiedName)) {
-                       try {
-                               exportablesMap.put(qualifiedName, 
getDatasetConfig(dataset)
-                                               .getExportables());
-                       } catch (MartServiceException e) {
-                               return new Exportable[0];
-                       }
-               }
-               return exportablesMap.get(qualifiedName);
-       }
-
-       /**
-        * Sends a <code>Query</code> to the MartService and returns the results
-        * of executing the query.
-        * 
-        * The results are returned as an array of lists; one list for each
-        * attribute specified in the query.
-        * 
-        * @param query
-        *            the query to execute
-        * @return the results of executing the query
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        */
-       public Object[] executeQuery(Query query) throws MartServiceException {
-               // logger.info(MartServiceUtils.queryToXML(query));
-               return MartServiceUtils.getResults(location, requestId, query);
-       }
-
-       /**
-        * Sends a <code>Query</code> to the MartService and writes the results 
to
-        * the <code>ResultReceiver</code> as each line of the result stream is
-        * read.
-        * 
-        * @param query
-        * @param resultReceiver
-        * @throws MartServiceException
-        *             if the MartService returns an error or is unavailable
-        * @throws ResultReceiverException 
-        *             if the ResultReceiver cannot receive the result
-        * @see ResultReceiver
-        */
-       public void executeQuery(Query query, ResultReceiver resultReceiver)
-                       throws MartServiceException, ResultReceiverException {
-               MartServiceUtils.putResults(location, requestId, query, 
resultReceiver);
-       }
-
-       /**
-        * Returns a list of datasets that can be linked to the specified 
dataset.
-        * 
-        * @param martDataset
-        * @return datasets that can be linked to the specified dataset
-        * @throws MartServiceException
-        */
-       public List<DatasetLink> getLinkableDatasets(MartDataset martDataset)
-                       throws MartServiceException {
-               if (!linkableDatasetsMap.containsKey(martDataset)) {
-                       List<DatasetLink> linkableDatasets = new 
ArrayList<DatasetLink>();
-
-                       Set<String> importableSet = new HashSet<String>();
-                       Importable[] importables = getImportables(martDataset);
-                       for (int i = 0; i < importables.length; i++) {
-                               importableSet.add(importables[i].getLinkName());
-                       }
-
-                       MartDataset[] datasets = 
getDatasets(martDataset.getVirtualSchema());
-                       for (int j = 0; j < datasets.length; j++) {
-                               if (datasets[j].isVisible()
-                                               && 
!datasets[j].getName().equals(martDataset.getName())) {
-                                       DatasetLink datasetLink = new 
DatasetLink(datasets[j],
-                                                       martDataset);
-                                       Exportable[] exportables = 
getExportables(datasets[j]);
-                                       for (int k = 0; k < exportables.length; 
k++) {
-                                               String link = 
exportables[k].getLinkName();
-                                               if 
(importableSet.contains(link)) {
-                                                       
datasetLink.addLink(link);
-                                               }
-                                       }
-                                       if (datasetLink.hasLinks()) {
-                                               
linkableDatasets.add(datasetLink);
-                                       }
-                               }
-                       }
-                       linkableDatasetsMap.put(martDataset, linkableDatasets);
-               }
-
-               return linkableDatasetsMap.get(martDataset);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see java.lang.Object#equals(java.lang.Object)
-        */
-       public boolean equals(Object obj) {
-               boolean result = false;
-               if (obj != null) {
-                       MartService other = (MartService) obj;
-                       if (location == null) {
-                               result = other.location == null;
-                       } else {
-                               result = location.equals(other.location);
-                       }
-               }
-               return result;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see java.lang.Object#hashCode()
-        */
-       public int hashCode() {
-               return location.hashCode();
-       }
-
-       public boolean linksCalculated() {
-               return linksCalculated;
-       }
-
-       // java implementation of the perl stuff that calculates links.
-       // all this should go for the next version of biomart.
-
-       public void calculateLinks() throws MartServiceException {
-               synchronized (location) {
-                       if (!linksCalculated) {
-                               datasetToLinkSetMap.clear();
-                               datasetsToPathMap.clear();
-
-                               MartDataset[] allDatasets = getDatasets();
-                               for (int i = 0; i < allDatasets.length; i++) {
-                                       MartDataset[] datasets = 
getDatasets(allDatasets[i]
-                                                       .getVirtualSchema());
-                                       for (int j = 0; j < datasets.length; 
j++) {
-                                               if 
(!allDatasets[i].getName().equals(
-                                                               
datasets[j].getName())) {
-                                                       
linkDatasets(allDatasets[i], datasets[j]);
-                                               }
-                                       }
-                               }
-                               for (int i = 0; i < allDatasets.length; i++) {
-                                       datasetsToPathMap.put(allDatasets[i],
-                                                       
dijkstra(allDatasets[i]));
-                               }
-                               linksCalculated = true;
-                       }
-               }
-       }
-
-       public List<MartDataset> getPath(MartDataset source, MartDataset 
target) {
-               List<MartDataset> path = new ArrayList<MartDataset>();
-
-               Map<MartDataset, MartDataset> pathMap = 
datasetsToPathMap.get(source);
-
-               MartDataset currentDataset = target;
-
-               while (currentDataset != null) {
-                       path.add(0, currentDataset);
-                       currentDataset = (MartDataset) 
pathMap.get(currentDataset);
-               }
-
-               if (path.size() < 2 || !path.get(0).equals(source)
-                               || !path.get(path.size() - 1).equals(target)) {
-                       return null;
-               }
-
-               return path;
-       }
-
-       public DatasetLink getLinkBetween(MartDataset exportingDataset,
-                       MartDataset importingDataset) {
-               Set<DatasetLink> links = 
datasetToLinkSetMap.get(exportingDataset);
-               for (DatasetLink link : links) {
-                       MartDataset targetDataset = link.getTargetDataset();
-                       if (importingDataset.equals(targetDataset)) {
-                               return link;
-                       }
-               }
-
-               return null;
-       }
-
-       public List<DatasetLink> getLinksFrom(MartDataset dataset) {
-               List<DatasetLink> linksFrom = new ArrayList<DatasetLink>();
-               Set<DatasetLink> links = datasetToLinkSetMap.get(dataset);
-               if (links != null) {
-                       for (DatasetLink link : links) {
-                               if (link.getSourceDataset().equals(dataset)) {
-                                       linksFrom.add(link);
-                               }
-                       }
-               }
-               return linksFrom;
-       }
-
-       public void linkDatasets(MartDataset source, MartDataset target)
-                       throws MartServiceException {
-               DatasetLink datasetLink = new DatasetLink(source, target);
-               Importable[] importables = getImportables(target);
-               for (int i = 0; i < importables.length; i++) {
-                       Exportable[] exportables = getExportables(source);
-                       for (int j = 0; j < exportables.length; j++) {
-                               if (importables[i].getLinkName().equals(
-                                               exportables[j].getLinkName())) {
-                                       String importVersion = 
importables[i].getLinkVersion();
-                                       String exportVersion = 
exportables[j].getLinkVersion();
-                                       if (importVersion != null && 
exportVersion != null) {
-                                               if 
(importVersion.equals(exportVersion)) {
-                                                       
datasetLink.addLink(importables[i].getLinkName());
-                                               }
-                                       } else {
-                                               
datasetLink.addLink(importables[i].getLinkName());
-                                       }
-                               }
-                       }
-               }
-               if (datasetLink.hasLinks()) {
-                       if (!datasetToLinkSetMap.containsKey(source)) {
-                               datasetToLinkSetMap.put(source, new 
HashSet<DatasetLink>());
-                       }
-                       if (!datasetToLinkSetMap.containsKey(target)) {
-                               datasetToLinkSetMap.put(target, new 
HashSet<DatasetLink>());
-                       }
-                       datasetToLinkSetMap.get(source).add(datasetLink);
-                       datasetToLinkSetMap.get(target).add(datasetLink);
-               }
-       }
-
-       public Map<MartDataset, MartDataset> dijkstra(MartDataset dataset)
-                       throws MartServiceException {
-               Map<MartDataset, MartDataset> path = new HashMap<MartDataset, 
MartDataset>();
-               LinkedList<MartDataset> vertices = new 
LinkedList<MartDataset>(Arrays
-                               
.asList(getDatasets(dataset.getVirtualSchema())));
-               Map<MartDataset, Integer> dist = new HashMap<MartDataset, 
Integer>();
-               for (MartDataset vertex : vertices) {
-                       dist.put(vertex, new Integer(10000));
-               }
-
-               dist.put(dataset, new Integer(0));
-
-               while (vertices.size() > 0) {
-                       int min_vert_idx = 0;
-                       MartDataset min_vert = (MartDataset) 
vertices.get(min_vert_idx);
-                       int min_dist = ((Integer) 
dist.get(min_vert)).intValue();
-
-                       for (int vertex_idx = 0; vertex_idx < vertices.size(); 
vertex_idx++) {
-                               MartDataset vertex = (MartDataset) 
vertices.get(vertex_idx);
-                               if (((Integer) dist.get(vertex)).intValue() < 
min_dist) {
-                                       min_vert_idx = vertex_idx;
-                                       min_vert = vertex;
-                                       min_dist = ((Integer) 
dist.get(vertex)).intValue();
-                               }
-                       }
-
-                       if (min_dist == 10000) {
-                               // Exhausted a disjoint set of datasets.
-                               break;
-                       }
-
-                       vertices.remove(min_vert_idx);
-
-                       List<DatasetLink> edges = getLinksFrom(min_vert);
-                       for (DatasetLink edge : edges) {
-                               MartDataset vertex = edge.getTargetDataset();
-
-                               if (((Integer) dist.get(vertex)).intValue() > 
((Integer) dist
-                                               .get(min_vert)).intValue() + 1) 
{
-                                       dist.put(vertex, new Integer(((Integer) 
dist.get(min_vert))
-                                                       .intValue() + 1));
-                                       path.put(vertex, min_vert);
-                               }
-                       }
-               }
-
-               return path;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceException.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceException.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceException.java
deleted file mode 100644
index f1f0639..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceException.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: MartServiceException.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/01/31 14:12:05 $
- *               by   $Author: davidwithers $
- * Created on 05-May-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-/**
- * Thrown when a MartService is inaccessable or returns an error.
- * 
- * @author David Withers
- */
-public class MartServiceException extends Exception {
-       private static final long serialVersionUID = 5535008907746588537L;
-
-       /**
-        * Constructs a new exception with no detail message.
-        * 
-        */
-       public MartServiceException() {
-               super();
-       }
-
-       /**
-        * Constructs a new exception with the specified detail message.
-        * 
-        * @param message
-        *            the detail message
-        * @param cause
-        *            the cause (a null value is permitted, and indicates that 
the
-        *            cause is nonexistent or unknown)
-        */
-       public MartServiceException(String message, Throwable cause) {
-               super(message, cause);
-       }
-
-       /**
-        * Constructs a new exception with the specified detail message and 
cause.
-        * 
-        * @param message
-        *            the detail message
-        */
-       public MartServiceException(String message) {
-               super(message);
-       }
-
-       /**
-        * Constructs a new exception with the specified cause.
-        * 
-        * @param cause
-        *            the cause (a null value is permitted, and indicates that 
the
-        *            cause is nonexistent or unknown)
-        */
-       public MartServiceException(Throwable cause) {
-               super(cause);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceUtils.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceUtils.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceUtils.java
deleted file mode 100644
index cdcb400..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceUtils.java
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: MartServiceUtils.java,v $
- * Revision           $Revision: 1.12 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/07/31 15:06:49 $
- *               by   $Author: davidwithers $
- * Created on 17-Mar-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.UsernamePasswordCredentials;
-import org.apache.commons.httpclient.auth.AuthScope;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.params.HttpMethodParams;
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-import org.biomart.martservice.query.Attribute;
-import org.biomart.martservice.query.Dataset;
-import org.biomart.martservice.query.Query;
-import org.biomart.martservice.query.QueryXMLHandler;
-import org.ensembl.mart.lib.config.ConfigurationException;
-import org.ensembl.mart.lib.config.DatasetConfig;
-import org.ensembl.mart.lib.config.DatasetConfigXMLUtils;
-import org.jdom.DocType;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.XMLOutputter;
-import org.xml.sax.InputSource;
-
-/**
- * Utility class for interacting with a BioMart web service.
- * 
- * @author David Withers
- */
-public class MartServiceUtils {
-       private static Logger logger = Logger.getLogger(MartServiceUtils.class);
-
-       private static String lineSeparator = 
System.getProperty("line.separator");
-
-       public static final String QUERY_ATTRIBUTE = "query";
-
-       public static final String DATASET_ATTRIBUTE = "dataset";
-
-       public static final String MART_ATTRIBUTE = "mart";
-
-       public static final String SCHEMA_ATTRIBUTE = "virtualschema";
-
-       public static final String TYPE_ATTRIBUTE = "type";
-
-       public static final String MART_USER_ATTRIBUTE = "martuser";
-
-       public static final String INTERFACE_ATTRIBUTE = "interface";
-
-       public static final String REQUEST_ID_ATTRIBUTE = "requestid";
-
-       public static final String REGISTRY_VALUE = "registry";
-
-       public static final String VERSION_VALUE = "version";
-
-       public static final String DATASETS_VALUE = "datasets";
-
-       public static final String DATASET_VALUE = "dataset";
-
-       public static final String CONFIGURATION_VALUE = "configuration";
-
-       /**
-        * Sends a registry request to the Biomart webservice and constructs a
-        * MartRegistry from the XML returned by the webservice.
-        * 
-        * @param martServiceLocation
-        *            the URL of the Biomart webservice
-        * @return a MartRegistry
-        * @throws MartServiceException
-        *             if the Biomart webservice returns an error or is 
unavailable
-        */
-       public static MartRegistry getRegistry(String martServiceLocation,
-                       String requestId) throws MartServiceException {
-               List<NameValuePair> data = new ArrayList<NameValuePair>();
-               data.add(new NameValuePair(TYPE_ATTRIBUTE, REGISTRY_VALUE));
-               if (requestId != null) {
-                       data.add(new NameValuePair(REQUEST_ID_ATTRIBUTE, 
requestId));
-               }
-               HttpMethod method = new GetMethod(martServiceLocation);
-               method.setQueryString(data
-                               .toArray(new NameValuePair[data.size()]));
-               try {
-                       InputStream in = executeMethod(method, 
martServiceLocation);
-                       Document document = new SAXBuilder().build(in);
-                       Element root = document.getRootElement();
-                       return MartServiceXMLHandler.elementToRegistry(root,
-                                       Namespace.NO_NAMESPACE);
-               } catch (IOException e) {
-                       String errorMessage = "Error getting registry from "
-                                       + martServiceLocation;
-                       throw new MartServiceException(errorMessage, e);
-               } catch (JDOMException e) {
-                       String errorMessage = "Error getting registry from "
-                                       + martServiceLocation;
-                       throw new MartServiceException(errorMessage, e);
-               } finally {
-                       method.releaseConnection();
-               }
-
-       }
-
-       public static String getVersion(String martServiceLocation,
-                       String requestId, MartURLLocation mart) throws 
MartServiceException {
-               String errorMessage = "Error getting version from " + 
martServiceLocation;
-
-               List<NameValuePair> data = new ArrayList<NameValuePair>();
-               data.add(new NameValuePair(TYPE_ATTRIBUTE, VERSION_VALUE));
-               if (mart.getVirtualSchema() != null) {
-                       data.add(new NameValuePair(SCHEMA_ATTRIBUTE, mart
-                                       .getVirtualSchema()));
-               }
-               data.add(new NameValuePair(MART_ATTRIBUTE, mart.getName()));
-               if (requestId != null) {
-                       data.add(new NameValuePair(REQUEST_ID_ATTRIBUTE, 
requestId));
-               }
-               if (requestId != null) {
-                       data.add(new NameValuePair(REQUEST_ID_ATTRIBUTE, 
requestId));
-               }
-               HttpMethod method = new GetMethod(martServiceLocation);
-               method.setQueryString(data
-                               .toArray(new NameValuePair[data.size()]));
-               try {
-                       InputStream in = executeMethod(method, 
martServiceLocation);
-                       BufferedReader bufferedReader = new BufferedReader(
-                                       new InputStreamReader(in));
-                       String version = bufferedReader.readLine();
-                       if (version == null) {
-                               throw new MartServiceException(errorMessage + 
": No version returned");
-                       }
-                       version = version.trim();
-                       // fix for biomart's 'let's add a blank line' thing
-                       if ("".equals(version)) {
-                               version = bufferedReader.readLine();
-                               if (version == null) {
-                                       throw new 
MartServiceException(errorMessage + ": No version returned");
-                               }
-                               version = version.trim();
-                       }
-                       bufferedReader.close();
-                       return version;
-               } catch (IOException e) {
-                       throw new MartServiceException(errorMessage, e);
-               } finally {
-                       method.releaseConnection();
-               }
-       }
-
-       /**
-        * Sends a datasets request to the Biomart webservice and constructs an
-        * array of MartDataset from the tab separated rows of data returned by 
the
-        * webservice.
-        * 
-        * @param martServiceLocation
-        *            the URL of the Biomart webservice
-        * @param mart
-        *            the mart to get datasets from
-        * @return an array of MartDataset
-        * @throws MartServiceException
-        *             if the Biomart webservice returns an error or is 
unavailable
-        */
-       public static MartDataset[] getDatasets(String martServiceLocation,
-                       String requestId, MartURLLocation mart) throws 
MartServiceException {
-               List<NameValuePair> data = new ArrayList<NameValuePair>();
-               data.add(new NameValuePair(TYPE_ATTRIBUTE, DATASETS_VALUE));
-               if (mart.getVirtualSchema() != null) {
-                       data.add(new NameValuePair(SCHEMA_ATTRIBUTE, mart
-                                       .getVirtualSchema()));
-               }
-               data.add(new NameValuePair(MART_ATTRIBUTE, mart.getName()));
-               if (mart.getMartUser() != null) {
-                       data
-                                       .add(new 
NameValuePair(MART_USER_ATTRIBUTE, mart
-                                                       .getMartUser()));
-               }
-               if (requestId != null) {
-                       data.add(new NameValuePair(REQUEST_ID_ATTRIBUTE, 
requestId));
-               }
-               HttpMethod method = new GetMethod(martServiceLocation);
-               method.setQueryString(data
-                               .toArray(new NameValuePair[data.size()]));
-               try {
-                       InputStream in = executeMethod(method, 
martServiceLocation);
-
-                       MartDataset[] datasets = tabSeparatedReaderToDatasets(
-                                       new InputStreamReader(in), mart);
-                       in.close();
-                       return datasets;
-               } catch (IOException e) {
-                       String errorMessage = "Error getting datasets from "
-                                       + martServiceLocation;
-                       throw new MartServiceException(errorMessage, e);
-               } finally {
-                       method.releaseConnection();
-               }
-       }
-
-       /**
-        * Sends a configuration request to the Biomart webservice and 
constructs a
-        * DatasetConfig from the XML returned by the webservice.
-        * 
-        * @param martServiceLocation
-        *            the URL of the Biomart webservice
-        * @param dataset
-        *            the dataset to get the configuration for
-        * @return a DatasetConfig
-        * @throws MartServiceException
-        *             if the Biomart webservice returns an error or is 
unavailable
-        */
-       public static DatasetConfig getDatasetConfig(String martServiceLocation,
-                       String requestId, MartDataset dataset) throws 
MartServiceException {
-               List<NameValuePair> data = new ArrayList<NameValuePair>();
-               data.add(new NameValuePair(TYPE_ATTRIBUTE, 
CONFIGURATION_VALUE));
-               MartURLLocation mart = dataset.getMartURLLocation();
-               // if the dataset has a location specify the virtual schema to 
uniquely
-               // identify the dataset
-               if (mart != null && mart.getVirtualSchema() != null) {
-                       data.add(new NameValuePair(SCHEMA_ATTRIBUTE, mart
-                                       .getVirtualSchema()));
-               }
-               data.add(new NameValuePair(DATASET_VALUE, dataset.getName()));
-//             if (dataset.getInterface() != null) {
-//                     data.add(new NameValuePair(INTERFACE_ATTRIBUTE, dataset
-//                                     .getInterface()));
-//             }
-               if (mart != null && mart.getMartUser() != null) {
-                       data
-                                       .add(new 
NameValuePair(MART_USER_ATTRIBUTE, mart
-                                                       .getMartUser()));
-               }
-               if (requestId != null) {
-                       data.add(new NameValuePair(REQUEST_ID_ATTRIBUTE, 
requestId));
-               }
-               HttpMethod method = new GetMethod(martServiceLocation);
-               method.setQueryString(data
-                               .toArray(new NameValuePair[data.size()]));
-
-               try {
-                       InputStream in = executeMethod(method, 
martServiceLocation);
-
-                       DatasetConfigXMLUtils datasetConfigXMLUtils = new 
DatasetConfigXMLUtils(
-                                       true);
-                       SAXBuilder builder = new SAXBuilder();
-                       Document doc = builder.build(new InputSource(in));
-                       // Document doc = 
datasetConfigXMLUtils.getDocumentForXMLStream(in);
-
-                       DatasetConfig datasetConfig = datasetConfigXMLUtils
-                                       .getDatasetConfigForDocument(doc);
-                       
datasetConfigXMLUtils.loadDatasetConfigWithDocument(datasetConfig,
-                                       doc);
-                       return datasetConfig;
-               } catch (ConfigurationException e) {
-                       String errorMessage = "Error parsing configuration from 
"
-                                       + martServiceLocation;
-                       logger.debug(errorMessage, e);
-                       throw new MartServiceException(errorMessage, e);
-               } catch (JDOMException e) {
-                       String errorMessage = "Error parsing configuration from 
"
-                                       + martServiceLocation;
-                       logger.debug(errorMessage, e);
-                       throw new MartServiceException(errorMessage, e);
-               } catch (IOException e) {
-                       String errorMessage = "Error getting configuration from 
"
-                                       + martServiceLocation;
-                       logger.debug(errorMessage, e);
-                       throw new MartServiceException(errorMessage, e);
-               } finally {
-                       method.releaseConnection();
-               }
-       }
-
-       /**
-        * Sends a query to the Biomart webservice and constructs an array of 
List
-        * of String results from the tab separated rows of data returned by the
-        * webservice.
-        * 
-        * @param martServiceLocation
-        *            the URL of the Biomart webservice
-        * @param query
-        *            the query to send to the webservice
-        * @return an array of List of String
-        * @throws MartServiceException
-        *             if the Biomart webservice returns an error or is 
unavailable
-        */
-       public static Object[] getResults(String martServiceLocation,
-                       String requestId, Query query) throws 
MartServiceException {
-               Object[] results = new Object[0];
-               // int attributes = query.getAttributes().size();
-               int attributes = getAttributeCount(query.getAttributes());
-               boolean count = query.getCount() == 1;
-               // if there are no attributes and we're not doing a count 
there's no
-               // point in doing the query
-               if (attributes > 0 || count) {
-                       // The 'new' 0.5 server now resolves the attribute 
lists so there's
-                       // no need to do the split here any more
-                       // String queryXml = 
queryToXML(splitAttributeLists(query));
-                       String queryXml = queryToXML(query);
-                       logger.info(queryXml);
-                       NameValuePair[] data = { new 
NameValuePair(QUERY_ATTRIBUTE,
-                                       queryXml) };
-                       PostMethod method = new PostMethod(martServiceLocation);
-                       method.setRequestBody(data);
-
-                       try {
-                               InputStream in = executeMethod(method, 
martServiceLocation);
-                               if (query.getFormatter() == null) {
-                                       results = tabSeparatedReaderToResults(
-                                                       new 
InputStreamReader(in), count ? 1 : attributes);
-                                       if (!count) {
-                                               results = 
reassembleAttributeLists(results, query);
-                                       }
-                               } else {
-                                       results = readResult(in, 
query.getFormatter());
-                               }
-                               in.close();
-                       } catch (IOException e) {
-                               String errorMessage = "Error reading data from "
-                                               + martServiceLocation;
-                               throw new MartServiceException(errorMessage, e);
-                       } finally {
-                               method.releaseConnection();
-                       }
-
-               }
-
-               return results;
-       }
-
-       public static void putResults(String martServiceLocation, String 
requestId,
-                       Query query, ResultReceiver resultReceiver) throws 
MartServiceException, ResultReceiverException {
-               int attributeCount = getAttributeCount(query.getAttributes());
-               boolean count = query.getCount() == 1;
-               // if there are no attributes and we're not doing a count 
there's no
-               // point in doing the query
-               if (attributeCount > 0 || count) {
-                       String queryXml = queryToXML(query);
-                       logger.info(queryXml);
-                       NameValuePair[] data = { new 
NameValuePair(QUERY_ATTRIBUTE,
-                                       queryXml) };
-                       PostMethod method = new PostMethod(martServiceLocation);
-                       method.setRequestBody(data);
-
-                       try {
-                               InputStream in = executeMethod(method, 
martServiceLocation);
-                               if (query.getFormatter() == null) {
-                                       if (count) {
-                                               
resultReceiver.receiveResult(tabSeparatedReaderToResults(new 
InputStreamReader(in), 1), 0);
-                                       } else {
-                                               List<Attribute> attributes = 
query.getAttributes();
-                                               Object[] result = new 
Object[attributes.size()];
-                                               BufferedReader bufferedReader = 
new BufferedReader(new InputStreamReader(in));
-                                               String line = 
bufferedReader.readLine();
-                                               for (long i = 0; line != null; 
line = bufferedReader.readLine(), i++) {
-                                                       String[] tokens = 
line.split("\t", -1);
-                                                       if (attributeCount == 
tokens.length) {
-                                                               for (int ri = 
0, ti = 0; ri < result.length && ti < tokens.length; ri++) {
-                                                                       
Attribute attribute = attributes.get(ri);
-                                                                       if 
(attribute.getAttributes() == null) {
-                                                                               
result[ri] = tokens[ti];
-                                                                               
ti++;
-                                                                       } else {
-                                                                               
int nestedAttributeCount = attribute.getAttributesCount();
-                                                                               
List<Object> list = new ArrayList<Object>();
-                                                                               
for (int j = 0; j < nestedAttributeCount; j++) {
-                                                                               
        list.add(tokens[ti]);
-                                                                               
        ti++;
-                                                                               
}
-                                                                               
result[ri] = list;
-                                                                       }
-                                                               }
-                                                               
resultReceiver.receiveResult(result, i);
-                                                       } else {
-                                                               
resultReceiver.receiveError(line, i);
-                                                       }
-                                               }
-                                       }
-                               } else {
-                                       
resultReceiver.receiveResult(readResult(in, query.getFormatter()), 0);
-                               }
-                               in.close();
-                       } catch (IOException e) {
-                               String errorMessage = "Error reading data from "
-                                               + martServiceLocation;
-                               throw new MartServiceException(errorMessage, e);
-                       } finally {
-                               method.releaseConnection();
-                       }
-
-               }
-       }
-       
-//     private static String getLocation(MartURLLocation martUrlLocation) {
-//             StringBuffer location = new StringBuffer("http://";);
-//             location.append(martUrlLocation.getHost());
-//             location.append(":" + martUrlLocation.getPort());
-//             location.append(martUrlLocation.getPath());
-//             return location.toString();
-//     }
-       
-       private static int getAttributeCount(List<Attribute> attributeList) {
-               int result = 0;
-               for (Attribute attribute : attributeList) {
-                       if (attribute.getAttributes() == null) {
-                               result++;
-                       } else {
-                               result += attribute.getAttributesCount();
-                       }
-               }
-               return result;
-       }
-
-       private static Object[] reassembleAttributeLists(Object[] lists, Query 
query) {
-               int index = 0;
-               List<Object> result = new ArrayList<Object>();
-               for (Attribute attribute : query.getAttributes()) {
-                       if (attribute.getAttributes() == null) {
-                               result.add(lists[index]);
-                               index++;
-                       } else {
-                               int attributesCount = 
attribute.getAttributesCount();
-                               List<Object> list = new ArrayList<Object>();
-                               for (int i = 0; i < attributesCount; i++) {
-                                       list.add(lists[index]);
-                                       index++;
-                               }
-                               result.add(list);
-                       }
-               }
-               return result.toArray();
-       }
-
-       public static Query splitAttributeLists(Query query) {
-               Query result = new Query(query);
-               for (Dataset dataset : result.getDatasets()) {
-                       List<Attribute> attributeList = dataset.getAttributes();
-                       dataset.removeAllAttributes();
-                       for (Attribute attribute : attributeList) {
-                               if (attribute.getAttributes() == null) {
-                                       dataset.addAttribute(attribute);
-                               } else {
-                                       String[] attributes = 
attribute.getAttributes().split(",");
-                                       for (int i = 0; i < attributes.length; 
i++) {
-                                               dataset.addAttribute(new 
Attribute(attributes[i]));
-                                       }
-                               }
-                       }
-               }
-               return result;
-       }
-
-       public static String getMimeTypeForFormatter(String formatter) {
-               String mimeType = "'text/plain'";
-               if ("ADF".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("AXT".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("AXTPLUS".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("CSV".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("FASTA".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("FASTACDNA".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("GFF".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("HTML".equals(formatter)) {
-                       mimeType = "'text/html'";
-               } else if ("MAF".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("MFA".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("MFASTA".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("TSV".equals(formatter)) {
-                       mimeType = "'text/tab-separeted-values'";
-               } else if ("TXT".equals(formatter)) {
-                       mimeType = "'text/plain'";
-               } else if ("XLS".equals(formatter)) {
-                       mimeType = "'application/excel'";
-               }
-               
-               return mimeType;
-       }
-       
-       private static List<String>[] tabSeparatedReaderToResults(Reader reader,
-                       int resultsCount) throws IOException {
-               List<String>[] results = new List[resultsCount];
-               for (int i = 0; i < results.length; i++) {
-                       results[i] = new ArrayList<String>();
-               }
-               BufferedReader bufferedReader = new BufferedReader(reader);
-               String line = bufferedReader.readLine();
-               while (line != null) {
-                       String[] tokens = line.split("\t", -1);
-                       for (int i = 0; i < results.length && i < 
tokens.length; i++) {
-                               results[i].add(tokens[i]);
-                       }
-                       line = bufferedReader.readLine();
-               }
-               return results;
-       }
-
-       private static Object[] readResult(InputStream inputStream, String 
formatter) throws IOException {
-               Object[] result = new Object[1];
-               
-               if 
(getMimeTypeForFormatter(formatter).contains("application/")) {
-                       result[0] = IOUtils.toByteArray(inputStream);
-               } else {
-                       result[0] = IOUtils.toString(inputStream);
-               }
-               return result;
-       }
-       
-       private static MartDataset[] tabSeparatedReaderToDatasets(Reader reader,
-                       MartURLLocation martURLLocation) throws IOException {
-               List<MartDataset> datasetList = new ArrayList<MartDataset>();
-               BufferedReader bufferedReader = new BufferedReader(reader);
-               String line = bufferedReader.readLine();
-               while (line != null) {
-                       String[] tokens = line.split("\t");
-
-                       if (tokens.length >= 7) {
-                               MartDataset dataset = new MartDataset();
-
-                               dataset.setType(tokens[0]);
-                               dataset.setName(tokens[1]);
-                               dataset.setDisplayName(tokens[2]);
-                               if (tokens[3].equals("1")) {
-                                       dataset.setVisible(true);
-                               } else {
-                                       dataset.setVisible(false);
-                               }
-                               // value at position 4 is not documented so 
it's skipped
-                               try {
-                                       
dataset.setInitialBatchSize(Long.parseLong(tokens[5]));
-                               } catch (NumberFormatException e) {
-                                       dataset.setInitialBatchSize(0);
-                               }
-                               try {
-                                       
dataset.setMaximumBatchSize(Long.parseLong(tokens[6]));
-                               } catch (NumberFormatException e) {
-                                       dataset.setMaximumBatchSize(0);
-                               }
-
-                               if (tokens.length > 7) {
-                                       dataset.setInterface(tokens[7]);
-                                       dataset.setModified(tokens[8]);
-                               }
-
-                               dataset.setMartURLLocation(martURLLocation);
-
-                               datasetList.add(dataset);
-                       }
-                       line = bufferedReader.readLine();
-               }
-               return datasetList.toArray(new MartDataset[datasetList.size()]);
-       }
-
-       /**
-        * Creates an XML string from a query
-        * 
-        * @param query
-        * @return an XML string
-        */
-       public static String queryToXML(Query query) {
-               Document document = new 
Document(QueryXMLHandler.queryToElement(query,
-                               Namespace.NO_NAMESPACE), new DocType("Query"));
-               return new XMLOutputter().outputString(document);
-       }
-
-       /**
-        * @param martServiceLocation
-        * @param data
-        * @return
-        * @throws MartServiceException
-        */
-       private static InputStream executeMethod(HttpMethod method,
-                       String martServiceLocation) throws MartServiceException 
{
-               HttpClient client = new HttpClient();
-               if (isProxyHost(martServiceLocation)) {
-                       setProxy(client);
-               }
-
-               method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
-                               new DefaultHttpMethodRetryHandler(3, false));
-//             method.getParams().setSoTimeout(60000);
-               try {
-                       int statusCode = client.executeMethod(method);
-                       if (statusCode != HttpStatus.SC_OK) {
-                               throw constructException(method, 
martServiceLocation, null);
-                       }
-                       return method.getResponseBodyAsStream();
-               } catch (IOException e) {
-                       throw constructException(method, martServiceLocation, 
e);
-               }
-       }
-
-       /**
-        * 
-        * @param client
-        */
-       public static void setProxy(HttpClient client) {
-               String host = System.getProperty("http.proxyHost");
-               String port = System.getProperty("http.proxyPort");
-               String user = System.getProperty("http.proxyUser");
-               String password = System.getProperty("http.proxyPassword");
-
-               if (host != null && port != null) {
-                       try {
-                               int portInteger = Integer.parseInt(port);
-                               client.getHostConfiguration().setProxy(host, 
portInteger);
-                               if (user != null && password != null) {
-                                       client.getState().setProxyCredentials(
-                                                       new AuthScope(host, 
portInteger),
-                                                       new 
UsernamePasswordCredentials(user, password));
-                               }
-                       } catch (NumberFormatException e) {
-                               logger.error("Proxy port not an integer", e);
-                       }
-               }
-       }
-
-       public static boolean isProxyHost(String location) {
-               String httpNonProxyHosts = 
System.getProperty("http.nonProxyHosts");
-               if (httpNonProxyHosts != null) {
-                       try {
-                               String host = new URL(location).getHost();
-                               String[] nonProxyHosts = 
httpNonProxyHosts.split("\\|");
-                               for (int i = 0; i < nonProxyHosts.length; i++) {
-                                       if (nonProxyHosts[i].startsWith("*")) {
-                                               if 
(host.endsWith(nonProxyHosts[i].substring(1))) {
-                                                       return false;
-                                               }
-                                       } else if 
(nonProxyHosts[i].endsWith("*")) {
-                                               if 
(host.startsWith(nonProxyHosts[i].substring(0,
-                                                               
nonProxyHosts[i].length() - 1))) {
-                                                       return false;
-                                               }
-                                       } else {
-                                               if 
(host.equals(nonProxyHosts[i])) {
-                                                       return false;
-                                               }
-                                       }
-                               }
-                       } catch (MalformedURLException e) {
-                               logger.warn("'" + location + "' is not a valid 
URL. "
-                                               + "Cannot compare host with 
http.nonProxyHosts", e);
-                       }
-               }
-               return true;
-       }
-
-       private static MartServiceException constructException(HttpMethod 
method,
-                       String martServiceLocation, Exception cause) {
-               StringBuffer errorMessage = new StringBuffer();
-               errorMessage.append("Error posting to " + martServiceLocation
-                               + lineSeparator);
-               if (cause == null) {
-                       errorMessage.append(" " + method.getStatusLine()
-                                       + lineSeparator);
-               }
-               if (method instanceof PostMethod) {
-                       PostMethod postMethod = (PostMethod) method;
-                       NameValuePair[] data = postMethod.getParameters();
-                       for (int i = 0; i < data.length; i++) {
-                               errorMessage.append(" " + data[i].getName() + " 
= "
-                                               + data[i].getValue()
-                                               + lineSeparator);
-                       }
-
-               } else {
-                       errorMessage.append(method.getQueryString());
-               }
-               return new MartServiceException(errorMessage.toString(), cause);
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceXMLHandler.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceXMLHandler.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceXMLHandler.java
deleted file mode 100644
index e8a5189..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartServiceXMLHandler.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: MartServiceXMLHandler.java,v $
- * Revision           $Revision: 1.4 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/12/13 11:38:55 $
- *               by   $Author: davidwithers $
- * Created on 28-Apr-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.biomart.martservice.query.QueryXMLHandler;
-import org.jdom.Element;
-import org.jdom.Namespace;
-
-/**
- * Utility class for serializing mart service classes to XML.
- * 
- * @author David Withers
- */
-public class MartServiceXMLHandler {
-       public static final String MART_SERVICE_ELEMENT = "MartService";
-
-       public static final String MART_URL_LOCATION_ELEMENT = 
"MartURLLocation";
-
-       public static final String MART_DATASET_ELEMENT = "MartDataset";
-
-       public static final String MART_QUERY_ELEMENT = "MartQuery";
-
-       public static final String LINKED_DATASETS_ELEMENT = "LinkedDatasets";
-
-       public static final String LINKED_DATASET_ELEMENT = "LinkedDataset";
-
-       public static final String VIRTUAL_SCHEMA_ELEMENT = "virtualSchema";
-
-       public static final String LOCATION_ATTRIBUTE = "location";
-
-       public static final String DATABASE_ATTRIBUTE = "database";
-
-       public static final String DEFAULT_ATTRIBUTE = "default";
-
-       public static final String DEFAULT_VALUE_ATTRIBUTE = "defaultValue";
-
-       public static final String DISPLAY_NAME_ATTRIBUTE = "displayName";
-
-       public static final String HOST_ATTRIBUTE = "host";
-
-       public static final String INCLUDE_DATASETS_ATTRIBUTE = 
"includeDatasets";
-
-       public static final String LINK_ATTRIBUTE = "LINK";
-
-       public static final String MART_USER_ATTRIBUTE = "martUser";
-
-       public static final String NAME_ATTRIBUTE = "name";
-
-       public static final String PATH_ATTRIBUTE = "path";
-
-       public static final String PORT_ATTRIBUTE = "port";
-
-       public static final String TYPE_ATTRIBUTE = "type";
-
-       public static final String INITIAL_BATCH_SIZE_ATTRIBUTE = 
"initialBatchSize";
-
-       public static final String MAXIMUM_BATCH_SIZE_ATTRIBUTE = 
"maximumBatchSize";
-
-       public static final String VIRTUAL_SCHEMA_ATTRIBUTE = "virtualSchema";
-
-       public static final String SERVER_VIRTUAL_SCHEMA_ATTRIBUTE = 
"serverVirtualSchema";
-
-       public static final String VISIBLE_ATTRIBUTE = "visible";
-
-       public static final String REDIRECT_ATTRIBUTE = "redirect";
-
-       public static final String INTERFACE_ATTRIBUTE = "interface";
-
-       public static final String MODIFIED_ATTRIBUTE = "modified";
-
-       /**
-        * Converts a <code>MartService</code> to an XML element.
-        * 
-        * @param martService
-        *            the <code>MartService</code> to serialize
-        * @param namespace
-        *            the <code>Namespace</code> to use when constructing the
-        *            <code>Element</code>
-        * @return an XML serialization of the <code>MartService</code>
-        */
-       public static Element martServiceToElement(MartService martService,
-                       Namespace namespace) {
-               Element element = new Element(MART_SERVICE_ELEMENT, namespace);
-               element.setAttribute(LOCATION_ATTRIBUTE, 
martService.getLocation());
-               return element;
-       }
-
-       /**
-        * Creates a <code>MartService</code> from an XML element.
-        * 
-        * @param element
-        *            the <code>Element</code> to deserialize
-        * @return a deserialized <code>MartService</code>
-        */
-       public static MartService elementToMartService(Element element) {
-               return MartService.getMartService(element
-                               .getAttributeValue(LOCATION_ATTRIBUTE));
-       }
-
-       /**
-        * Converts a <code>MartDataset</code> to an XML element.
-        * 
-        * @param dataset
-        *            the <code>MartDataset</code> to serialize
-        * @param namespace
-        *            the <code>Namespace</code> to use when constructing the
-        *            <code>Element</code>
-        * @return an XML serialization of the <code>MartDataset</code>
-        */
-       public static Element datasetToElement(MartDataset dataset,
-                       Namespace namespace) {
-               Element element = new Element(MART_DATASET_ELEMENT, namespace);
-               element.setAttribute(DISPLAY_NAME_ATTRIBUTE, 
dataset.getDisplayName());
-               element.setAttribute(NAME_ATTRIBUTE, dataset.getName());
-               element.setAttribute(TYPE_ATTRIBUTE, dataset.getType());
-               element.setAttribute(INITIAL_BATCH_SIZE_ATTRIBUTE, String
-                               .valueOf(dataset.getInitialBatchSize()));
-               element.setAttribute(MAXIMUM_BATCH_SIZE_ATTRIBUTE, String
-                               .valueOf(dataset.getMaximumBatchSize()));
-               element.setAttribute(VISIBLE_ATTRIBUTE, String.valueOf(dataset
-                               .isVisible()));
-               if (dataset.getInterface() != null) {
-                       element.setAttribute(INTERFACE_ATTRIBUTE, 
dataset.getInterface());
-               }
-               if (dataset.getModified() != null) {
-                       element.setAttribute(MODIFIED_ATTRIBUTE, 
dataset.getModified());
-               }
-               
element.addContent(locationToElement(dataset.getMartURLLocation(),
-                               namespace));
-               return element;
-       }
-
-       /**
-        * Creates a <code>MartDataset</code> from an XML element.
-        * 
-        * @param element
-        *            the <code>Element</code> to deserialize
-        * @param namespace
-        *            the <code>Namespace</code> containing the
-        *            <code>Element</code>
-        * @return a deserialized <code>MartDataset</code>
-        */
-       public static MartDataset elementToDataset(Element element,
-                       Namespace namespace) {
-               MartDataset dataset = new MartDataset();
-               dataset.setDisplayName(element
-                               .getAttributeValue(DISPLAY_NAME_ATTRIBUTE));
-               dataset.setName(element.getAttributeValue(NAME_ATTRIBUTE));
-               dataset.setType(element.getAttributeValue(TYPE_ATTRIBUTE));
-               dataset.setInitialBatchSize(Long.parseLong(element
-                               
.getAttributeValue(INITIAL_BATCH_SIZE_ATTRIBUTE)));
-               dataset.setMaximumBatchSize(Long.parseLong(element
-                               
.getAttributeValue(MAXIMUM_BATCH_SIZE_ATTRIBUTE)));
-               dataset.setVisible(Boolean.getBoolean(element
-                               .getAttributeValue(VISIBLE_ATTRIBUTE)));
-               
dataset.setInterface(element.getAttributeValue(INTERFACE_ATTRIBUTE));
-               
dataset.setModified(element.getAttributeValue(MODIFIED_ATTRIBUTE));
-               dataset.setMartURLLocation(elementToLocation(element.getChild(
-                               MART_URL_LOCATION_ELEMENT, namespace)));
-               return dataset;
-       }
-
-       /**
-        * Creates a <code>MartRegistry</code> from an XML element.
-        * 
-        * @param element
-        *            the <code>Element</code> to deserialize
-        * @param namespace
-        *            the <code>Namespace</code> containing the
-        *            <code>Element</code>
-        * @return a deserialized <code>MartRegistry</code>
-        */
-       public static MartRegistry elementToRegistry(Element root,
-                       Namespace namespace) {
-               MartRegistry registry = new MartRegistry();
-               List<Element> children = root.getChildren();
-               for (Element childElement : children) {
-                       if (childElement.getNamespace().equals(namespace)) {
-                               if 
(childElement.getName().equals(MART_URL_LOCATION_ELEMENT)) {
-                                       MartURLLocation martURLLocation = 
MartServiceXMLHandler
-                                                       
.elementToLocation(childElement);
-                                       
martURLLocation.setVirtualSchema("default");
-                                       
registry.addMartURLLocation(martURLLocation);
-                               } else if (childElement.getName()
-                                               
.equals(VIRTUAL_SCHEMA_ELEMENT)) {
-                                       String virtualSchema = childElement
-                                                       
.getAttributeValue(NAME_ATTRIBUTE);
-                                       List<Element> locations = 
childElement.getChildren(
-                                                       
MART_URL_LOCATION_ELEMENT, namespace);
-                                       for (Element location : locations) {
-                                               MartURLLocation martURLLocation 
= MartServiceXMLHandler
-                                                               
.elementToLocation(location);
-                                               
martURLLocation.setVirtualSchema(virtualSchema);
-                                               
registry.addMartURLLocation(martURLLocation);
-                                       }
-                               }
-                       }
-               }
-               return registry;
-       }
-
-       /**
-        * Converts a <code>MartURLLocation</code> to an XML element.
-        * 
-        * @param location
-        *            the <code>MartURLLocation</code> to serialize
-        * @param namespace
-        *            the <code>Namespace</code> to use when constructing the
-        *            <code>Element</code>
-        * @return an XML serialization of the <code>MartURLLocation</code>
-        */
-       public static Element locationToElement(MartURLLocation location,
-                       Namespace namespace) {
-               Element element = new Element(MART_URL_LOCATION_ELEMENT, 
namespace);
-               if (location.getDatabase() != null) {
-                       element.setAttribute(DATABASE_ATTRIBUTE, 
location.getDatabase());
-               }
-               element.setAttribute(DEFAULT_ATTRIBUTE, location.isDefault() ? 
"1"
-                               : "0");
-               element.setAttribute(DISPLAY_NAME_ATTRIBUTE, 
location.getDisplayName());
-               element.setAttribute(HOST_ATTRIBUTE, location.getHost());
-               if (location.getIncludeDatasets() != null) {
-                       element.setAttribute(INCLUDE_DATASETS_ATTRIBUTE, 
location
-                                       .getIncludeDatasets());
-               }
-               if (location.getMartUser() != null) {
-                       element.setAttribute(MART_USER_ATTRIBUTE, 
location.getMartUser());
-               }
-               element.setAttribute(NAME_ATTRIBUTE, location.getName());
-               if (location.getPath() != null) {
-                       element.setAttribute(PATH_ATTRIBUTE, 
location.getPath());
-               }
-               element
-                               .setAttribute(PORT_ATTRIBUTE, String
-                                               .valueOf(location.getPort()));
-               element.setAttribute(SERVER_VIRTUAL_SCHEMA_ATTRIBUTE, location
-                               .getServerVirtualSchema());
-               if (location.getVirtualSchema() != null) {
-                       element.setAttribute(VIRTUAL_SCHEMA_ATTRIBUTE, location
-                                       .getVirtualSchema());
-               }
-               element.setAttribute(VISIBLE_ATTRIBUTE, location.isVisible() ? 
"1"
-                               : "0");
-               element.setAttribute(REDIRECT_ATTRIBUTE, location.isRedirect() 
? "1"
-                               : "0");
-               return element;
-       }
-
-       /**
-        * Creates a <code>MartURLLocation</code> from an XML element.
-        * 
-        * @param element
-        *            the <code>Element</code> to deserialize
-        * @return a deserialized <code>MartURLLocation</code>
-        */
-       public static MartURLLocation elementToLocation(Element element) {
-               MartURLLocation location = new MartURLLocation();
-               
location.setDatabase(element.getAttributeValue(DATABASE_ATTRIBUTE));
-               location.setDefault("1".equals(element
-                               .getAttributeValue(DEFAULT_ATTRIBUTE)));
-               location.setDisplayName(element
-                               .getAttributeValue(DISPLAY_NAME_ATTRIBUTE));
-               location.setHost(element.getAttributeValue(HOST_ATTRIBUTE));
-               location.setIncludeDatasets(element
-                               .getAttributeValue(INCLUDE_DATASETS_ATTRIBUTE));
-               
location.setMartUser(element.getAttributeValue(MART_USER_ATTRIBUTE));
-               location.setName(element.getAttributeValue(NAME_ATTRIBUTE));
-               location.setPath(element.getAttributeValue(PATH_ATTRIBUTE));
-               try {
-                       location.setPort(Integer.parseInt(element
-                                       .getAttributeValue(PORT_ATTRIBUTE)));
-               } catch (NumberFormatException e) {
-                       location.setPort(80);
-               }
-               location.setServerVirtualSchema(element
-                               
.getAttributeValue(SERVER_VIRTUAL_SCHEMA_ATTRIBUTE));
-               location.setVirtualSchema(element
-                               .getAttributeValue(VIRTUAL_SCHEMA_ATTRIBUTE));
-               location.setVisible("1".equals(element
-                               .getAttributeValue(VISIBLE_ATTRIBUTE)));
-               location.setRedirect("1".equals(element
-                               .getAttributeValue(REDIRECT_ATTRIBUTE)));
-               return location;
-       }
-
-       /**
-        * Creates a <code>MartQuery</code> from an XML element.
-        * 
-        * @param element
-        *            the <code>Element</code> to deserialize
-        * @param namespace
-        *            the <code>Namespace</code> containing the
-        *            <code>Element</code>
-        * @return a deserialized <code>MartQuery</code>
-        */
-       public static MartQuery elementToMartQuery(Element element,
-                       Namespace namespace) {
-               MartQuery martQuery = new MartQuery();
-               martQuery.setMartService(MartServiceXMLHandler
-                               
.elementToMartService(element.getChild(MART_SERVICE_ELEMENT,
-                                               namespace)));
-               martQuery.setMartDataset(elementToDataset(element.getChild(
-                               MART_DATASET_ELEMENT, namespace), namespace));
-               
martQuery.setQuery(QueryXMLHandler.elementToQuery(element.getChild(
-                               QueryXMLHandler.QUERY_ELEMENT, namespace), 
namespace));
-               Element linksElement = 
element.getChild(LINKED_DATASETS_ELEMENT, namespace);
-               if (linksElement != null) {
-                       List linkedDatasets = 
linksElement.getChildren(LINKED_DATASETS_ELEMENT,
-                                       namespace);
-                       for (Iterator iter = linkedDatasets.iterator(); 
iter.hasNext();) {
-                               Element datasetElement = (Element) iter.next();
-                               String datasetName = 
datasetElement.getAttributeValue(NAME_ATTRIBUTE);
-                               String linkId = 
datasetElement.getAttributeValue(LINK_ATTRIBUTE);
-                               martQuery.addLinkedDataset(datasetName, linkId);
-                       }
-               }
-               return martQuery;
-       }
-
-       /**
-        * Converts a <code>MartQuery</code> to an XML element.
-        * 
-        * @param martQuery
-        *            the <code>MartQuery</code> to serialize
-        * @param namespace
-        *            the <code>Namespace</code> to use when constructing the
-        *            <code>Element</code>
-        * @return an XML serialization of the <code>MartQuery</code>
-        */
-       public static Element martQueryToElement(MartQuery martQuery,
-                       Namespace namespace) {
-               Element element = new Element(MART_QUERY_ELEMENT, namespace);
-               
element.addContent(martServiceToElement(martQuery.getMartService(),
-                               namespace));
-               element.addContent(datasetToElement(martQuery.getMartDataset(),
-                               namespace));
-               
element.addContent(QueryXMLHandler.queryToElement(martQuery.getQuery(),
-                               namespace));
-               Set linkedDatasets = martQuery.getLinkedDatasets();
-               if (linkedDatasets.size() > 0) {
-                       Element linksElement = new 
Element(LINKED_DATASETS_ELEMENT, namespace);
-                       for (Iterator iter = linkedDatasets.iterator(); 
iter.hasNext();) {
-                               String datasetName = (String) iter.next();
-                               Element datasetElement = new 
Element(LINKED_DATASETS_ELEMENT, namespace);
-                               datasetElement.setAttribute(NAME_ATTRIBUTE, 
datasetName);
-                               datasetElement.setAttribute(LINK_ATTRIBUTE, 
martQuery
-                                               .getLink(datasetName));
-                               linksElement.addContent(datasetElement);
-                       }
-                       element.addContent(linksElement);
-               }
-               return element;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartURLLocation.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartURLLocation.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartURLLocation.java
deleted file mode 100644
index 476956d..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/MartURLLocation.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: MartURLLocation.java,v $
- * Revision           $Revision: 1.2 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2007/10/04 14:15:59 $
- *               by   $Author: davidwithers $
- * Created on 17-Mar-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-import org.ensembl.mart.lib.config.MartLocation;
-
-/**
- * The MartURLLocation contained by the MartRegistry returned by a BioMart web
- * service.
- * 
- * @author David Withers
- */
-public class MartURLLocation implements MartLocation {
-       private static final String URL_TYPE = "URL";
-
-       private String database;
-
-       private boolean defaultValue;
-
-       private String displayName;
-
-       private String host;
-
-       private String includeDatasets;
-
-       private String martUser;
-
-       private String name;
-
-       private String path;
-
-       private int port;
-
-       private String serverVirtualSchema;
-
-       private String virtualSchema;
-
-       private boolean visible;
-
-       private boolean redirect;
-
-       /**
-        * Returns the database.
-        *
-        * @return the database
-        */
-       public String getDatabase() {
-               return database;
-       }
-
-       /**
-        * Sets the database.
-        *
-        * @param database the new database
-        */
-       public void setDatabase(String database) {
-               this.database = database;
-       }
-
-       /**
-        * Returns true if the default flag is set.
-        * 
-        * @return true if the default flag is set
-        */
-       public boolean isDefault() {
-               return defaultValue;
-       }
-
-       /**
-        * Sets the default flag.
-        * 
-        * @param defaultValue
-        *            the value of the default flag
-        */
-       public void setDefault(boolean defaultValue) {
-               this.defaultValue = defaultValue;
-       }
-
-       /**
-        * Returns the displayName.
-        * 
-        * @return the displayName.
-        */
-       public String getDisplayName() {
-               return displayName;
-       }
-
-       /**
-        * Sets the displayName.
-        * 
-        * @param displayName
-        *            the displayName to set.
-        */
-       public void setDisplayName(String displayName) {
-               this.displayName = displayName;
-       }
-
-       /**
-        * Returns the host.
-        * 
-        * @return the host.
-        */
-       public String getHost() {
-               return host;
-       }
-
-       /**
-        * Sets the host.
-        * 
-        * @param host
-        *            the host to set.
-        */
-       public void setHost(String host) {
-               this.host = host;
-       }
-
-       /**
-        * Returns the includeDatasets.
-        *
-        * @return the includeDatasets
-        */
-       public String getIncludeDatasets() {
-               return includeDatasets;
-       }
-
-       /**
-        * Sets the includeDatasets.
-        *
-        * @param includeDatasets the new includeDatasets
-        */
-       public void setIncludeDatasets(String includeDatasets) {
-               this.includeDatasets = includeDatasets;
-       }
-
-       /**
-        * Returns the martUser.
-        *
-        * @return the martUser
-        */
-       public String getMartUser() {
-               return martUser;
-       }
-
-       /**
-        * Sets the martUser.
-        *
-        * @param martUser the new martUser
-        */
-       public void setMartUser(String martUser) {
-               this.martUser = martUser;
-       }
-
-       /**
-        * Returns the name
-        * 
-        * @return the name.
-        */
-       public String getName() {
-               return name;
-       }
-
-       /**
-        * Sets the name.
-        * 
-        * @param name
-        *            the name to set.
-        */
-       public void setName(String name) {
-               this.name = name;
-       }
-
-       /**
-        * Returns the path.
-        *
-        * @return the path
-        */
-       public String getPath() {
-               return path;
-       }
-
-       /**
-        * Sets the path.
-        *
-        * @param path the new path
-        */
-       public void setPath(String path) {
-               this.path = path;
-       }
-
-       /**
-        * Returns the port.
-        * 
-        * @return the port.
-        */
-       public int getPort() {
-               return port;
-       }
-
-       /**
-        * Sets the port.
-        * 
-        * @param port
-        *            the port to set.
-        */
-       public void setPort(int port) {
-               this.port = port;
-       }
-
-       /**
-        * Returns the serverVirtualSchema.
-        * 
-        * @return the serverVirtualSchema.
-        */
-       public String getServerVirtualSchema() {
-               return serverVirtualSchema;
-       }
-
-       /**
-        * Sets the serverVirtualSchema.
-        * 
-        * @param serverVirtualSchema
-        *            the serverVirtualSchema to set.
-        */
-       public void setServerVirtualSchema(String serverVirtualSchema) {
-               this.serverVirtualSchema = serverVirtualSchema;
-       }
-
-       /**
-        * Returns the virtualSchema.
-        * 
-        * @return the virtualSchema.
-        */
-       public String getVirtualSchema() {
-               return virtualSchema;
-       }
-
-       /**
-        * Sets the virtualSchema.
-        * 
-        * @param virtualSchema
-        *            the virtualSchema to set.
-        */
-       public void setVirtualSchema(String virtualSchema) {
-               this.virtualSchema = virtualSchema;
-       }
-
-       /**
-        * Returns true if the location is visible.
-        * 
-        * @return Returns the visible.
-        */
-       public boolean isVisible() {
-               return visible;
-       }
-
-       /**
-        * @param visible
-        *            The visible to set.
-        */
-       public void setVisible(boolean visible) {
-               this.visible = visible;
-       }
-
-       /**
-        * Returns true if this location is redirected.
-        * 
-        * @return the redirect
-        */
-       public boolean isRedirect() {
-               return redirect;
-       }
-
-       /**
-        * @param redirect the redirect to set
-        */
-       public void setRedirect(boolean redirect) {
-               this.redirect = redirect;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.ensembl.mart.lib.config.MartLocation#getType()
-        */
-       public String getType() {
-               return URL_TYPE;
-       }
-
-       /**
-        * Returns the display name.
-        * 
-        * @return the display name
-        */
-       public String toString() {
-               return getDisplayName();
-       }
-
-       @Override
-       public int hashCode() {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result
-                               + ((database == null) ? 0 : 
database.hashCode());
-               result = prime * result + (defaultValue ? 1231 : 1237);
-               result = prime * result
-                               + ((displayName == null) ? 0 : 
displayName.hashCode());
-               result = prime * result + ((host == null) ? 0 : 
host.hashCode());
-               result = prime * result
-                               + ((includeDatasets == null) ? 0 : 
includeDatasets.hashCode());
-               result = prime * result
-                               + ((martUser == null) ? 0 : 
martUser.hashCode());
-               result = prime * result + ((name == null) ? 0 : 
name.hashCode());
-               result = prime * result + ((path == null) ? 0 : 
path.hashCode());
-               result = prime * result + port;
-               result = prime * result + (redirect ? 1231 : 1237);
-               result = prime
-                               * result
-                               + ((serverVirtualSchema == null) ? 0 : 
serverVirtualSchema
-                                               .hashCode());
-               result = prime * result
-                               + ((virtualSchema == null) ? 0 : 
virtualSchema.hashCode());
-               result = prime * result + (visible ? 1231 : 1237);
-               return result;
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (this == obj)
-                       return true;
-               if (obj == null)
-                       return false;
-               if (getClass() != obj.getClass())
-                       return false;
-               final MartURLLocation other = (MartURLLocation) obj;
-               if (database == null) {
-                       if (other.database != null)
-                               return false;
-               } else if (!database.equals(other.database))
-                       return false;
-               if (defaultValue != other.defaultValue)
-                       return false;
-               if (displayName == null) {
-                       if (other.displayName != null)
-                               return false;
-               } else if (!displayName.equals(other.displayName))
-                       return false;
-               if (host == null) {
-                       if (other.host != null)
-                               return false;
-               } else if (!host.equals(other.host))
-                       return false;
-               if (includeDatasets == null) {
-                       if (other.includeDatasets != null)
-                               return false;
-               } else if (!includeDatasets.equals(other.includeDatasets))
-                       return false;
-               if (martUser == null) {
-                       if (other.martUser != null)
-                               return false;
-               } else if (!martUser.equals(other.martUser))
-                       return false;
-               if (name == null) {
-                       if (other.name != null)
-                               return false;
-               } else if (!name.equals(other.name))
-                       return false;
-               if (path == null) {
-                       if (other.path != null)
-                               return false;
-               } else if (!path.equals(other.path))
-                       return false;
-               if (port != other.port)
-                       return false;
-               if (redirect != other.redirect)
-                       return false;
-               if (serverVirtualSchema == null) {
-                       if (other.serverVirtualSchema != null)
-                               return false;
-               } else if 
(!serverVirtualSchema.equals(other.serverVirtualSchema))
-                       return false;
-               if (virtualSchema == null) {
-                       if (other.virtualSchema != null)
-                               return false;
-               } else if (!virtualSchema.equals(other.virtualSchema))
-                       return false;
-               if (visible != other.visible)
-                       return false;
-               return true;
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiver.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiver.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiver.java
deleted file mode 100644
index cc1d062..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiver.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: ResultReceiver.java,v $
- * Revision           $Revision: 1.2 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/07/31 15:06:49 $
- *               by   $Author: davidwithers $
- * Created on Jan 18, 2008
- *****************************************************************/
-package org.biomart.martservice;
-
-/**
- * An interface for receiving results of a Query.
- * 
- * @author David Withers
- */
-public interface ResultReceiver {
-
-       /**
-        * Receives a single row from the results of executing a Query.
-        * 
-        * This method will be called frequently and should not block.
-        * 
-        * @param resultRow
-        */
-       public void receiveResult(Object[] resultRow, long index) throws 
ResultReceiverException;
-       
-       /**
-        * Receives an error for a single row from the results of executing a 
Query.
-        * 
-        * This method will be called frequently and should not block.
-        * 
-        * @param resultRow
-        */
-       public void receiveError(String errorMessage, long index) throws 
ResultReceiverException;
-       
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-bioinformatics/blob/e13e3b74/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiverException.java
----------------------------------------------------------------------
diff --git 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiverException.java
 
b/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiverException.java
deleted file mode 100644
index c3498e6..0000000
--- 
a/taverna-biomart-martservice/src/main/java/org/biomart/martservice/ResultReceiverException.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2003 The University of Manchester 
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.  Authorship
- * of the modifications may be determined from the ChangeLog placed at
- * the end of this file.
- *
- * 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
- * USA.
- *
- ****************************************************************
- * Source code information
- * -----------------------
- * Filename           $RCSfile: ResultReceiverException.java,v $
- * Revision           $Revision: 1.1 $
- * Release status     $State: Exp $
- * Last modified on   $Date: 2008/03/04 16:47:57 $
- *               by   $Author: davidwithers $
- * Created on 05-May-2006
- *****************************************************************/
-package org.biomart.martservice;
-
-/**
- * 
- * @author David Withers
- */
-public class ResultReceiverException extends Exception {
-       private static final long serialVersionUID = 7151337259555845771L;
-
-       /**
-        * Constructs a new exception with no detail message.
-        * 
-        */
-       public ResultReceiverException() {
-               super();
-       }
-
-       /**
-        * Constructs a new exception with the specified detail message.
-        * 
-        * @param message
-        *            the detail message
-        * @param cause
-        *            the cause (a null value is permitted, and indicates that 
the
-        *            cause is nonexistent or unknown)
-        */
-       public ResultReceiverException(String message, Throwable cause) {
-               super(message, cause);
-       }
-
-       /**
-        * Constructs a new exception with the specified detail message and 
cause.
-        * 
-        * @param message
-        *            the detail message
-        */
-       public ResultReceiverException(String message) {
-               super(message);
-       }
-
-       /**
-        * Constructs a new exception with the specified cause.
-        * 
-        * @param cause
-        *            the cause (a null value is permitted, and indicates that 
the
-        *            cause is nonexistent or unknown)
-        */
-       public ResultReceiverException(Throwable cause) {
-               super(cause);
-       }
-
-}

Reply via email to