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

[10/51] [partial] incubator-taverna-workbench git commit: temporarily empty repository

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/Integration.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/Integration.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/Integration.java
deleted file mode 100644
index ec792d4..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/Integration.java
+++ /dev/null
@@ -1,518 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.log4j.Logger;
-import org.biocatalogue.x2009.xml.rest.ResourceLink;
-import org.biocatalogue.x2009.xml.rest.RestMethod;
-import org.biocatalogue.x2009.xml.rest.RestService;
-import org.biocatalogue.x2009.xml.rest.Service;
-import org.biocatalogue.x2009.xml.rest.ServiceTechnologyType;
-import org.biocatalogue.x2009.xml.rest.SoapOperation;
-import org.biocatalogue.x2009.xml.rest.SoapService;
-import org.biocatalogue.x2009.xml.rest.Service.Variants;
-
-import net.sf.taverna.biocatalogue.model.HTTPMethodInterpreter;
-import net.sf.taverna.biocatalogue.model.HTTPMethodInterpreter.UnsupportedHTTPMethodException;
-import net.sf.taverna.biocatalogue.model.Resource;
-import net.sf.taverna.biocatalogue.model.Resource.TYPE;
-import net.sf.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.biocatalogue.model.SoapOperationIdentity;
-import net.sf.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import net.sf.taverna.biocatalogue.model.SoapProcessorIdentity;
-import net.sf.taverna.biocatalogue.model.Util;
-import net.sf.taverna.t2.activities.rest.RESTActivity;
-import net.sf.taverna.t2.activities.rest.RESTActivity.HTTP_METHOD;
-import net.sf.taverna.t2.activities.wsdl.WSDLActivity;
-import net.sf.taverna.t2.activities.wsdl.servicedescriptions.WSDLServiceDescription;
-import net.sf.taverna.t2.ui.menu.ContextualSelection;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.MainComponentFactory;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.service_panel.BioCatalogueRESTServiceProvider;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.service_panel.BioCatalogueWSDLOperationServiceProvider;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.service_panel.RESTFromBioCatalogueServiceDescription;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.service_panel.WSDLOperationFromBioCatalogueServiceDescription;
-import net.sf.taverna.t2.workbench.file.FileManager;
-import net.sf.taverna.t2.workbench.ui.workflowview.WorkflowView;
-import net.sf.taverna.t2.workflowmodel.Dataflow;
-import net.sf.taverna.t2.workflowmodel.Port;
-import net.sf.taverna.t2.workflowmodel.Processor;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-import net.sf.taverna.t2.workflowmodel.utils.Tools;
-
-/**
- * This class contains helpers for deeper integration with Taverna UI.
- * 
- * @author Sergejs Aleksejevs
- */
-public class Integration
-{
-  private static final Logger logger = Logger.getLogger(Integration.class);
-  
-  
-  // deny instantiation of this class
-  private Integration() { }
-  
-  
-  /**
-   * Adds a processor to the current workflow.
-   * The processor is specified by WSDL location and the operation name.
-   * 
-   * @param processorResource Resource to add to the current workflow.
-   * @return Outcome of inserting the processor into the current workflow as a
-   *         HTML-formatted string (with no opening and closing HTML tags).
-   */
-  public static JComponent insertProcessorIntoCurrentWorkflow(ResourceLink processorResource)
-  {
-    // check if this type of resource can be added to workflow diagram
-    TYPE resourceType = Resource.getResourceTypeFromResourceURL(processorResource.getHref());
-    if (resourceType.isSuitableForAddingToWorkflowDiagram()) {
-      switch (resourceType) {
-        case SOAPOperation:
-          SoapOperation soapOp = (SoapOperation) processorResource;
-          try {
-            SoapService soapService = BioCatalogueClient.getInstance().
-                                        getBioCatalogueSoapService(soapOp.getAncestors().getSoapService().getHref());
-            
-            try {
-              WSDLServiceDescription myServiceDescription = new WSDLServiceDescription();
-              myServiceDescription.setOperation(soapOp.getName());
-              myServiceDescription.setUse("literal"); // or "encoded"
-              myServiceDescription.setStyle("document"); // or "rpc"
-              myServiceDescription.setURI(new URI(soapService.getWsdlLocation()));
-              myServiceDescription.setDescription(StringEscapeUtils.escapeHtml(soapService.getDescription()));  // TODO - not sure where this is used
-              
-              if (WorkflowView.importServiceDescription(myServiceDescription, false) != null) {
-                return (new JLabel("Selected " + TYPE.SOAPOperation.getTypeName() + " was successfully added to the current workflow",
-                                 ResourceManager.getImageIcon(ResourceManager.TICK_ICON), JLabel.CENTER));
-              }
-              else {
-                return (new JLabel("<html><center>Taverna was unable to add selected " + TYPE.SOAPOperation.getTypeName() + 
-                    " as a service to the current workflow.<br>This could be because the service is currently not accessible.</center></html>",
-                    ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-              }
-            }
-            catch (URISyntaxException e)
-            {
-              logger.error("Couldn't add " + TYPE.SOAPOperation + " to the current workflow", e);
-              return (new JLabel("<html>Could not add the selected " + TYPE.SOAPOperation.getTypeName() + " to the current workflow.<br>" +
-                                    		"Log file will containt additional details about this error.</html>",
-                                    		ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-            }
-            
-          }
-          catch (Exception e) {
-            logger.error("Failed to fetch required details to add this " + TYPE.SOAPOperation + " into the current workflow.", e);
-            return (new JLabel("<html>Failed to fetch required details to add this<br>" +
-                                      TYPE.SOAPOperation.getTypeName() + " into the current workflow.</html>",
-                                      ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-          
-        case RESTMethod:
-          // received object may only contain limited data, therefore need to fetch full details first
-          try {
-            RestMethod restMethod = BioCatalogueClient.getInstance().
-                                                getBioCatalogueRestMethod(processorResource.getHref());
-            
-            // actual import of the service into the workflow
-            RESTFromBioCatalogueServiceDescription restServiceDescription = createRESTServiceDescriptionFromRESTMethod(restMethod);
-            WorkflowView.importServiceDescription(restServiceDescription, false);
-            
-            // prepare result of the operation to be shown in the the waiting dialog window
-            String warnings = extractWarningsFromRESTServiceDescription(restServiceDescription, false);
-            JLabel outcomes = new JLabel("<html>Selected " + TYPE.RESTMethod.getTypeName() + " was successfully added to the current workflow" + warnings + "</html>",
-                                         ResourceManager.getImageIcon(warnings.length() > 0 ? ResourceManager.WARNING_ICON : ResourceManager.TICK_ICON),
-                                         JLabel.CENTER);
-            outcomes.setIconTextGap(20);
-            return (outcomes);
-          }
-          catch (UnsupportedHTTPMethodException e) {
-            logger.error(e);
-            return (new JLabel(e.getMessage(), ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-          catch (Exception e) {
-            logger.error("Failed to fetch required details to add this " + TYPE.RESTMethod + " as a service to the current workflow.", e);
-            return (new JLabel("<html>Failed to fetch required details to add this " + TYPE.RESTMethod.getTypeName() + "<br>" +
-            		                      "as a service to the current workflow.</html>",
-                                      ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-        
-        // type not currently supported, but maybe in the future?
-        default: return (new JLabel("Adding " + resourceType.getCollectionName() + " to the current workflow is not yet possible",
-                                     ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-      }
-    }
-    
-    // definitely not supported type
-    return (new JLabel("<html>It is not possible to add resources of the provided type<br>" +
-                              "into the current workflow.</html>",
-                              ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-  }
-  
-  
-  /**
-   * 
-   * @param processorResource
-   * @return Outcome of inserting the processor into the current workflow as a
-   *         HTML-formatted string (with no opening and closing HTML tags).
-   */
-  public static JComponent insertProcesorIntoServicePanel(ResourceLink processorResource)
-  {
-    // check if this type of resource can be added to Service Panel
-    TYPE resourceType = Resource.getResourceTypeFromResourceURL(processorResource.getHref());
-    if (resourceType.isSuitableForAddingToServicePanel()) {
-      switch (resourceType) {
-        case SOAPOperation:
-          SoapOperation soapOp = (SoapOperation) processorResource;
-          try {
-            SoapService soapService = BioCatalogueClient.getInstance().
-                                        getBioCatalogueSoapService(soapOp.getAncestors().getSoapService().getHref());
-            SoapOperationIdentity soapOpId = new SoapOperationIdentity(soapService.getWsdlLocation(), soapOp.getName(), StringEscapeUtils.escapeHtml(soapOp.getDescription()));
-            WSDLOperationFromBioCatalogueServiceDescription wsdlOperationDescription = new WSDLOperationFromBioCatalogueServiceDescription(soapOpId);
-            BioCatalogueWSDLOperationServiceProvider.registerWSDLOperation(wsdlOperationDescription, null);
-            
-            return (new JLabel("Selected SOAP operation has been successfully added to the Service Panel.", 
-                               ResourceManager.getImageIcon(ResourceManager.TICK_ICON), JLabel.CENTER));
-          }
-          catch (Exception e) {
-            logger.error("Failed to fetch required details to add this SOAP service into the Service Panel.", e);
-            return (new JLabel("Failed to fetch required details to add this " +
-                               "SOAP service into the Service Panel.", ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-          
-        case RESTMethod:
-          try {
-            // received object may only contain limited data, therefore need to fetch full details first
-            RestMethod restMethod = BioCatalogueClient.getInstance().
-                                                  getBioCatalogueRestMethod(processorResource.getHref());
-            RESTFromBioCatalogueServiceDescription restServiceDescription = createRESTServiceDescriptionFromRESTMethod(restMethod);
-            
-            // actual insertion of the REST method into Service Panel
-            BioCatalogueRESTServiceProvider.registerNewRESTMethod(restServiceDescription, null);
-            
-            // prepare result of the operation to be shown in the the waiting dialog window
-            String warnings = extractWarningsFromRESTServiceDescription(restServiceDescription, true);
-            JLabel outcomes = new JLabel("<html>Selected REST method has been successfully added to the Service Panel" + warnings + "</html>", 
-                                         ResourceManager.getImageIcon(warnings.length() > 0 ? ResourceManager.WARNING_ICON : ResourceManager.TICK_ICON),
-                                         JLabel.CENTER);
-            outcomes.setIconTextGap(20);
-            return (outcomes);
-          }
-          catch (UnsupportedHTTPMethodException e) {
-            logger.error(e);
-            return (new JLabel(e.getMessage(), ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-          catch (Exception e) {
-            logger.error("Failed to fetch required details to add this REST service into the Service Panel.", e);
-            return (new JLabel("Failed to fetch required details to add this " +
-                "REST service into the Service Panel.", ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-          }
-        
-        // type not currently supported, but maybe in the future?
-        default: return (new JLabel("Adding " + resourceType.getCollectionName() + " to the Service Panel is not yet possible",
-            ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-      }
-    }
-    
-    // definitely not supported type
-    return (new JLabel("<html>It is not possible to add resources of the provided type<br>" +
-                              "into the Service Panel.</html>",
-                              ResourceManager.getImageIcon(ResourceManager.ERROR_ICON), JLabel.CENTER));
-  }
-  
-  /**
-   * Inserts all operations of the given parent SOAP or REST Web service resource link
-   * into Service Panel. Works for SOAP operations only at the moment.
-   * 
-   * @return Outcome of inserting operations into Service Panel as a
-   *         HTML-formatted string (with no opening and closing HTML tags).
-   */
-  public static JComponent insertAllOperationsIntoServicePanel(ResourceLink serviceResource)
-  {
-		// Check if this type of resource is a parent SOAP Web service
-		// whose operations can be added to the Service Panel
-		TYPE resourceType = Resource
-				.getResourceTypeFromResourceURL(serviceResource.getHref());
-		
-		Service service = null;
-		if (resourceType == TYPE.SOAPOperation) {
-			SoapService soapService = ((SoapOperation) serviceResource)
-					.getAncestors().getSoapService();
-
-			// Get the WSDL URL of the SOAP service
-			String wsdlURL = soapService.getWsdlLocation();
-
-			// Import this WSDL into Service panel - it will add all
-			// of
-			// its operations
-			if (BioCatalogueWSDLOperationServiceProvider.registerWSDLService(
-					wsdlURL, null)) {
-				return (new JLabel(
-						"Operation(s) of the SOAP service have been successfully added to the Service Panel.",
-						ResourceManager.getImageIcon(ResourceManager.TICK_ICON),
-						JLabel.CENTER));
-			} else {
-				return (new JLabel(
-						"Failed to insert the operations of the SOAP service "
-								+ " to the Service Panel.", ResourceManager
-								.getImageIcon(ResourceManager.ERROR_ICON),
-						JLabel.CENTER));
-			}
-		} else if (resourceType == TYPE.RESTMethod) {
-			RestService restService = ((RestMethod) serviceResource)
-			.getAncestors().getRestService();
-			for (RestMethod method : restService.getMethods().getRestMethodList()) {
-				
-			}
-		}
-
-		return (new JLabel(
-				"<html>It is not possible to add resources of the provided type<br>"
-						+ "into the Service Panel.</html>", ResourceManager
-						.getImageIcon(ResourceManager.ERROR_ICON),
-				JLabel.CENTER));
-	}
-
-  /**
-   * Instantiates a {@link RESTFromBioCatalogueServiceDescription} object from the {@link RestMethod}
-   * XML data obtained from BioCatalogue API.
-   * 
-   * @param restMethod
-   * @return
-   */
-  public static RESTFromBioCatalogueServiceDescription createRESTServiceDescriptionFromRESTMethod(RestMethod restMethod) throws UnsupportedHTTPMethodException
-  {
-    // if the type of the HTTP method is not supported, an exception will be throws
-    HTTP_METHOD httpMethod = HTTPMethodInterpreter.getHTTPMethodForRESTActivity(restMethod.getHttpMethodType());
-    
-    RESTFromBioCatalogueServiceDescription restServiceDescription = new RESTFromBioCatalogueServiceDescription();
-    restServiceDescription.setServiceName(Resource.getDisplayNameForResource(restMethod));
-    restServiceDescription.setDescription(StringEscapeUtils.escapeHtml(restMethod.getDescription()));
-    restServiceDescription.setHttpMethod(httpMethod);
-    restServiceDescription.setURLSignature(restMethod.getUrlTemplate());
-    
-    int outputRepresentationCount = restMethod.getOutputs().getRepresentations().getRestRepresentationList().size();
-    if (outputRepresentationCount > 0) {
-      if (outputRepresentationCount > 1) {
-        restServiceDescription.getDataWarnings().add(RESTFromBioCatalogueServiceDescription.AMBIGUOUS_ACCEPT_HEADER_VALUE);
-      }
-      restServiceDescription.setAcceptHeaderValue(restMethod.getOutputs().getRepresentations().getRestRepresentationList().get(0).getContentType());
-    }
-    else {
-      restServiceDescription.getDataWarnings().add(RESTFromBioCatalogueServiceDescription.DEFAULT_ACCEPT_HEADER_VALUE);
-    }
-    
-    int inputRepresentationCount = restMethod.getInputs().getRepresentations().getRestRepresentationList().size();
-    if (inputRepresentationCount > 0) {
-      if (inputRepresentationCount > 1) {
-        restServiceDescription.getDataWarnings().add(RESTFromBioCatalogueServiceDescription.AMBIGUOUS_CONTENT_TYPE_HEADER_VALUE);
-      }
-      restServiceDescription.setOutgoingContentType(restMethod.getInputs().getRepresentations().getRestRepresentationList().get(0).getContentType());
-    }
-    else if (RESTActivity.hasMessageBodyInputPort(httpMethod)) {
-      restServiceDescription.getDataWarnings().add(RESTFromBioCatalogueServiceDescription.DEFAULT_CONTENT_TYPE_HEADER_VALUE);
-    }
-    
-    return (restServiceDescription);
-  }
-  
-  
-  /**
-   * @param restServiceDescription {@link RESTFromBioCatalogueServiceDescription} to process.
-   * @param addingToServicePanel <code>true</code> indicates that the warning messages
-   *                             will assume that the processor is added to the service panel;
-   *                             <code>false</code> would mean that the processor is added to
-   *                             the current workflow.
-   * @return An HTML-formatted string (with no opening-closing HTML tags) that lists
-   *         any warnings that have been recorded during the {@link RESTFromBioCatalogueServiceDescription}
-   *         object creation. Empty string will be returned if there are no warnings.
-   */
-  public static String extractWarningsFromRESTServiceDescription(RESTFromBioCatalogueServiceDescription restServiceDescription,
-      boolean addingToServicePanel)
-  {
-    String messageSuffix = addingToServicePanel ?
-                           " once you add it into the workflow" :
-                           "";
-    
-    String warnings = "";
-    if (restServiceDescription.getDataWarnings().contains(RESTFromBioCatalogueServiceDescription.AMBIGUOUS_ACCEPT_HEADER_VALUE)) {
-        warnings += "<br><br>Service Catalogue description of this REST method contains more than one<br>" +
-                            "representation of the method's outputs - the first one was used.<br>" +
-                            "Please check value of the 'Accept' header in the configuration<br>" +
-                            "of the imported service" + messageSuffix + ".";
-    }
-    else if (restServiceDescription.getDataWarnings().contains(RESTFromBioCatalogueServiceDescription.DEFAULT_ACCEPT_HEADER_VALUE)) {
-      warnings += "<br><br>Service Catalogue description of this REST method does not contain any<br>" +
-                          "representations of the method's outputs - default value was used.<br>" +
-                          "Please check value of the 'Accept' header in the configuration<br>" +
-                          "of the imported service" + messageSuffix + ".";
-    }
-    
-    if (restServiceDescription.getDataWarnings().contains(RESTFromBioCatalogueServiceDescription.AMBIGUOUS_CONTENT_TYPE_HEADER_VALUE)) {
-        warnings += "<br><br>Service Catalogue description of this REST method contains more than one<br>" +
-                            "representation of the method's input data - the first one was used.<br>" +
-                            "Please check value of the 'Content-Type' header in the configuration<br>" +
-                            "of the imported service" + messageSuffix + ".";
-    }
-    else if (restServiceDescription.getDataWarnings().contains(RESTFromBioCatalogueServiceDescription.DEFAULT_CONTENT_TYPE_HEADER_VALUE)) {
-      warnings += "<br><br>Service Catalogue description of this REST method does not contain any<br>" +
-                          "representations of the method's input data - default value was used.<br>" +
-                          "Please check value of the 'Content-Type' header in the configuration<br>" +
-                          "of the imported service" + messageSuffix + ".";
-    }
-    
-    if (warnings.length() > 0) {
-      warnings = "<br><br>WARNINGS:" + warnings;
-    }
-    
-    return (warnings);
-  }
-  
-  
-  
-  /**
-   * @param activityPort Probably comes from contextual selection - must be either
-   *         ActivityInputPort or ActivityOutputPort.
-   * @return SOAP input / output port details (WSDL location, operation name, port name) from
-   *         ActivityInputPort/ActivityOutputPort which is obtained from contextual selection in the Dataflow.
-   */
-  public static <T extends Port> SoapOperationPortIdentity extractSoapOperationPortDetailsFromActivityInputOutputPort(T activityPort)
-  {
-    // check that we have the correct instance of Port here - either ActivityInputPort or ActivityOutputPort
-    boolean hasInputPort;
-    if (activityPort instanceof ActivityInputPort) {
-      hasInputPort = true;
-    }
-    else if (activityPort instanceof ActivityOutputPort) {
-      hasInputPort = false;
-    }
-    else {
-      // ERROR - wrong type supplied
-      return new SoapOperationPortIdentity("Activity port from the contextual selection was not of correct type. Impossible to create preview.");
-    }
-    
-    // get parent processor details
-    Dataflow currentDataflow = FileManager.getInstance().getCurrentDataflow();
-    Collection<Processor> processors = null;
-    if (hasInputPort) {
-      processors = Tools.getProcessorsWithActivityInputPort(currentDataflow, (ActivityInputPort)activityPort);
-    }
-    else {
-      processors = Tools.getProcessorsWithActivityOutputPort(currentDataflow, (ActivityOutputPort)activityPort);
-    }
-    
-    // TODO - doesn't take into account that it's possible to have several
-    SoapOperationIdentity soapOperationDetails = extractSoapOperationDetailsFromProcessor(processors.toArray(new Processor[]{})[0]);
-    
-    // if no error happened, add port details and return
-    if (!soapOperationDetails.hasError()) {
-      return (new SoapOperationPortIdentity(soapOperationDetails.getWsdlLocation(),
-                                             soapOperationDetails.getOperationName(),
-                                             activityPort.getName(), hasInputPort));
-    }
-    else {
-      // error...
-      return (new SoapOperationPortIdentity(soapOperationDetails.getErrorDetails()));
-    }
-  }
-  
-  
-  /**
-   * Uses contextual selection to extract WSDL location and operation name of the
-   * currently selected processor within the Design view of current workflow. 
-   * 
-   * @param contextualSelection Selection that was made in the Design view.
-   * @return Details of the SOAP operation that acts as a processor wrapped into
-   *         this single instance. If any problems occurred while performing
-   *         contextual selection analysis, these are also recorded into the same
-   *         instance - before using the returned value the caller must check
-   *         <code>SoapOperationIdentity.hasError()</code> value.
-   */
-  public static SoapOperationIdentity extractSoapOperationDetailsFromProcessorContextualSelection(ContextualSelection contextualSelection)
-  {
-    if (!(contextualSelection.getSelection() instanceof Processor)) {
-      return (new SoapOperationIdentity("ERROR: It is only possible to extract " +
-      		"SOAP operation details from the service."));
-    }
-    
-    // now we know it's a Processor
-    Processor processor = (Processor)contextualSelection.getSelection();
-    return (extractSoapOperationDetailsFromProcessor(processor));
-  }
-  
-  
-  /**
-   * Worker method for <code>extractSoapOperationDetailsFromProcessorContextualSelection()</code>.
-   * 
-   * @param processor
-   * @return
-   */
-  public static SoapOperationIdentity extractSoapOperationDetailsFromProcessor(Processor processor)
-  {
-    List<? extends Activity> activityList = (List<? extends Activity>) processor.getActivityList();
-    
-    if (activityList == null || activityList.size() == 0) {
-      return (new SoapOperationIdentity("ERROR: Selected processor doesn't have any activities - " +
-          "impossible to extract SOAP operation details."));
-    }
-    else {
-      // take only the first activity - TODO: figure out what should be done here...
-      Activity activity = activityList.get(0);
-      if (activity instanceof WSDLActivity) {
-        WSDLActivity a = (WSDLActivity)activity;
-        return (new SoapOperationIdentity(a.getConfiguration().getWsdl(), a.getConfiguration().getOperation(), null));
-      }
-      else {
-        return (new SoapOperationIdentity("Service Catalogue integration only works with WSDL Activities at the moment"));
-      }
-    }
-  }
-  
-  
-  /**
-   * @param contextualSelection
-   * @return A list of all WSDL activities (the only supported processors by BioCatalogue plugin for now).
-   */
-  public static List<SoapProcessorIdentity> extractSupportedProcessorsFromDataflow(ContextualSelection contextualSelection)
-  {
-    // check that there was a correct contextual selection
-    if (!(contextualSelection.getSelection() instanceof Dataflow)) {
-      logger.error("It is only possible to extract supported services from the workflow.");
-      return (new ArrayList<SoapProcessorIdentity>());
-    }
-    
-    // first extract all processors
-    Dataflow dataflow = (Dataflow)contextualSelection.getSelection();
-    List<? extends Processor> allProcessors = dataflow.getEntities(Processor.class);
-    
-    // now filter out any processors that are not WSDL activities
-    List<SoapProcessorIdentity> supportedProcessors = new ArrayList<SoapProcessorIdentity>();
-    for (Processor proc : allProcessors) {
-      List<? extends Activity> activityList = (List<? extends Activity>) proc.getActivityList();
-      if (activityList != null && activityList.size() > 0) {
-        // take only the first activity - TODO: figure out what should be done here...
-        Activity activity = activityList.get(0);
-        if (activity instanceof WSDLActivity) {
-          WSDLActivity a = (WSDLActivity)activity;
-          supportedProcessors.add(new SoapProcessorIdentity(a.getConfiguration().getWsdl(),
-                                                            a.getConfiguration().getOperation(),
-                                                            proc.getLocalName()));
-        }
-      }
-    }
-    
-    // return all found processors
-    return (supportedProcessors);
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
deleted file mode 100644
index 3985ac5..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.config;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import uk.org.taverna.configuration.AbstractConfigurable;
-
-import net.sf.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-
-/**
- *
- *
- * @author Sergejs Aleksejevs
- */
-public class BioCataloguePluginConfiguration extends AbstractConfigurable
-{
-  public static final String SERVICE_CATALOGUE_BASE_URL = "ServiceCatalogue_Base_URL";
-  public static final String SOAP_OPERATIONS_IN_SERVICE_PANEL = "SOAP_Operations_in_Service_Panel";
-  public static final String REST_METHODS_IN_SERVICE_PANEL = "REST_Methods_in_Service_Panel";
-
-
-  private static class Singleton {
-    private static BioCataloguePluginConfiguration instance = new BioCataloguePluginConfiguration();
-  }
-
-  // private static Logger logger = Logger.getLogger(MyExperimentConfiguration.class);
-
-  private Map<String, String> defaultPropertyMap;
-
-
-  public static BioCataloguePluginConfiguration getInstance() {
-    return Singleton.instance;
-  }
-
-  public String getCategory() {
-    return "general";
-  }
-
-  public Map<String,String> getDefaultPropertyMap() {
-    if (defaultPropertyMap == null) {
-      defaultPropertyMap = new HashMap<String,String>();
-      defaultPropertyMap.put(SERVICE_CATALOGUE_BASE_URL, BioCatalogueClient.DEFAULT_API_LIVE_SERVER_BASE_URL);
-    }
-    return defaultPropertyMap;
-  }
-
-  public String getDisplayName() {
-    return "Service catalogue";
-  }
-
-  public String getFilePrefix() {
-    return "ServiceCatalogue";
-  }
-
-  public String getUUID() {
-    return "4daac25c-bd56-4f90-b909-1e49babe5197";
-  }
-
-
-  /**
-   * Just a "proxy" method - {@link AbstractConfigurable#store()}
-   * is not visible to the users of instances of this class otherwise.
-   */
-  public void store() {
-    super.store();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
deleted file mode 100644
index a83a223..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
+++ /dev/null
@@ -1,448 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.config;
-
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.ProxySelector;
-import java.net.URL;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
-//import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.ProxySelectorRoutePlanner;
-import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.HttpContext;
-import org.apache.log4j.Logger;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.input.SAXBuilder;
-
-import net.sf.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.MainComponentFactory;
-
-
-/**
- * 
- * @author Sergejs Aleksejevs
- */
-@SuppressWarnings("serial")
-public class BioCataloguePluginConfigurationPanel extends JPanel
-{
-	public static final String APPLICATION_XML_MIME_TYPE = "application/xml";
-
-	public static String PROXY_HOST = "http.proxyHost";
-	public static String PROXY_PORT = "http.proxyPort";
-	public static String PROXY_USERNAME = "http.proxyUser";
-	public static String PROXY_PASSWORD = "http.proxyPassword";
-	
-	// 1.0.0b and higher until the first digit changes, as according to "Semantic Versioning" 
-	// from http://www.biocatalogue.org/wiki/doku.php?id=public:api:changelog
-	// "Major version X (X.y.z | X > 0) MUST be incremented if any backwards 
-	// incompatible changes are introduced to the public API. It MAY include minor and patch level changes."
-	public static String[] MIN_SUPPORTED_BIOCATALOGUE_API_VERSION = {"1", "1", "0"}; // major, minor and patch versions
-	public static String API_VERSION = "apiVersion";
-
-	private BioCataloguePluginConfiguration configuration = 
-                          BioCataloguePluginConfiguration.getInstance();
-  
-  
-	// UI elements
-	JTextField tfBioCatalogueAPIBaseURL;
-
-	private Logger logger = Logger.getLogger(BioCataloguePluginConfigurationPanel.class);  
-  
-	public BioCataloguePluginConfigurationPanel() {
-		initialiseUI();
-		resetFields();
-	}
-  
-  private void initialiseUI()
-  {
-    this.setLayout(new GridBagLayout());
-    GridBagConstraints c = new GridBagConstraints();
-    c.fill = GridBagConstraints.HORIZONTAL;
-    c.anchor = GridBagConstraints.NORTHWEST;
-    c.weightx = 1.0;
-    
-    c.gridx = 0;
-    c.gridy = 0;
-    JTextArea taDescription = new JTextArea("Configure the Service Catalogue integration functionality");
-    taDescription.setFont(taDescription.getFont().deriveFont(Font.PLAIN, 11));
-    taDescription.setLineWrap(true);
-    taDescription.setWrapStyleWord(true);
-    taDescription.setEditable(false);
-    taDescription.setFocusable(false);
-    taDescription.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
-    this.add(taDescription, c);
-    
-    
-    c.gridy++;
-    c.insets = new Insets(20, 0, 0, 0);
-    JLabel jlBioCatalogueAPIBaseURL = new JLabel("Base URL of the Service Catalogue instance to connect to:");
-    this.add(jlBioCatalogueAPIBaseURL, c);
-    
-    c.gridy++;
-    c.insets = new Insets(0, 0, 0, 0);
-    tfBioCatalogueAPIBaseURL = new JTextField();
-    this.add(tfBioCatalogueAPIBaseURL, c);
-    
-    
-    c.gridy++;
-    c.insets = new Insets(30, 0, 0, 0);
-    // We are not removing BioCatalogue services from its config panel any more - 
-    // they are being handled by the Taverna's Service Registry
-//    JButton bForgetStoredServices = new JButton("Forget services added to Service Panel by BioCatalogue Plugin");
-//    bForgetStoredServices.addActionListener(new ActionListener() {
-//      public void actionPerformed(ActionEvent e)
-//      {
-//        int response = JOptionPane.showConfirmDialog(null, // no way T2ConfigurationFrame instance can be obtained to be used as a parent...
-//                                       "Are you sure you want to clear all SOAP operations and REST methods\n" +
-//                                       "that were added to the Service Panel by the BioCatalogue Plugin?\n\n" +
-//                                       "This action is permanent is cannot be undone.\n\n" +
-//                                       "Do you want to proceed?", "BioCatalogue Plugin", JOptionPane.YES_NO_OPTION);
-//        
-//        if (response == JOptionPane.YES_OPTION)
-//        {
-//          BioCatalogueServiceProvider.clearRegisteredServices();
-//          JOptionPane.showMessageDialog(null,  // no way T2ConfigurationFrame instance can be obtained to be used as a parent...
-//                          "Stored services have been successfully cleared, but will remain\n" +
-//                          "being shown in Service Panel during this session.\n\n" +
-//                          "They will not appear in the Service Panel after you restart Taverna.",
-//                          "BioCatalogue Plugin", JOptionPane.INFORMATION_MESSAGE);
-//        }
-//      }
-//    });
-//    this.add(bForgetStoredServices, c);
-    
-    
-    JButton bLoadDefaults = new JButton("Load Defaults");
-    bLoadDefaults.addActionListener(new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        loadDefaults();
-      }
-    });
-    
-    JButton bReset = new JButton("Reset");
-    bReset.addActionListener(new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        resetFields();
-      }
-    });
-    
-    JButton bApply = new JButton("Apply");
-    bApply.addActionListener(new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        applyChanges();
-      }
-    });
-    
-    JPanel jpActionButtons = new JPanel();
-    jpActionButtons.add(bLoadDefaults);
-    jpActionButtons.add(bReset);
-    jpActionButtons.add(bApply);
-    c.insets = new Insets(30, 0, 0, 0);
-    c.gridy++;
-    c.weighty = 1.0;
-    this.add(jpActionButtons, c);
-  }
-  
-  
-  /**
-   * Resets all fields to the last saved configuration.
-   */
-  private void resetFields() {
-    tfBioCatalogueAPIBaseURL.setText(configuration.getProperty(BioCataloguePluginConfiguration.SERVICE_CATALOGUE_BASE_URL));
-  }
-  
-  /**
-   * Resets all fields to the default values.
-   */
-  private void loadDefaults() {
-    tfBioCatalogueAPIBaseURL.setText(configuration.getDefaultProperty(BioCataloguePluginConfiguration.SERVICE_CATALOGUE_BASE_URL));
-  }
-  
-  /**
-   * Saves recent changes to the configuration parameter map.
-   * Some input validation is performed as well.
-   */
-	private void applyChanges() {
-		// --- BioCatalogue BASE URL ---
-
-		String candidateBaseURL = tfBioCatalogueAPIBaseURL.getText();
-		if (candidateBaseURL.length() == 0) {
-			JOptionPane.showMessageDialog(this,
-					"Service Catalogue base URL must not be blank",
-					"Service Catalogue Configuration", JOptionPane.WARNING_MESSAGE);
-			tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-			return;
-		} else {
-			try {
-				new URL(candidateBaseURL);
-			} catch (MalformedURLException e) {
-				JOptionPane
-						.showMessageDialog(
-								this,
-								"Currently set Service Catalogue instance URL is not valid\n." +
-								"Please check the URL and try again.",
-								"Service Catalogue Configuration",
-								JOptionPane.WARNING_MESSAGE);
-				tfBioCatalogueAPIBaseURL.selectAll();
-				tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-				return;
-			}
-
-			// check if the base URL has changed from the last saved state
-			if (!candidateBaseURL
-					.equals(configuration
-							.getProperty(BioCataloguePluginConfiguration.SERVICE_CATALOGUE_BASE_URL))) {
-					// Perform various checks on the new URL
-
-				// Do a GET with "Accept" header set to "application/xml"
-				// We are expecting a 200 OK and an XML doc in return that
-				// contains the BioCataogue version number element.
-				DefaultHttpClient httpClient = new DefaultHttpClient();
-				
-				// Set the proxy settings, if any
-				if (System.getProperty(PROXY_HOST) != null
-						&& !System.getProperty(PROXY_HOST).equals("")) {
-					// Instruct HttpClient to use the standard
-					// JRE proxy selector to obtain proxy information
-					ProxySelectorRoutePlanner routePlanner = new ProxySelectorRoutePlanner(
-							httpClient.getConnectionManager().getSchemeRegistry(), ProxySelector
-									.getDefault());
-					httpClient.setRoutePlanner(routePlanner);
-					// Do we need to authenticate the user to the proxy?
-					if (System.getProperty(PROXY_USERNAME) != null
-							&& !System.getProperty(PROXY_USERNAME).equals("")) {
-						// Add the proxy username and password to the list of credentials
-						httpClient.getCredentialsProvider().setCredentials(
-								new AuthScope(System.getProperty(PROXY_HOST),Integer.parseInt(System.getProperty(PROXY_PORT))),
-								new UsernamePasswordCredentials(System.getProperty(PROXY_USERNAME), System.getProperty(PROXY_PASSWORD)));
-					}
-				}
-				
-				HttpGet httpGet = new HttpGet(candidateBaseURL);
-				httpGet.setHeader("Accept", APPLICATION_XML_MIME_TYPE);
-
-				// Execute the request
-				HttpContext localContext = new BasicHttpContext();
-				HttpResponse httpResponse;
-				try {
-					httpResponse = httpClient.execute(httpGet, localContext);
-				} catch (Exception ex1) {
-					logger.error("Service Catalogue preferences configuration: Failed to do "
-							+ httpGet.getRequestLine(), ex1);
-					// Warn the user
-					JOptionPane.showMessageDialog(this,
-							"Failed to connect to the URL of the Service Catalogue instance.\n"
-									+ "Please check the URL and try again.",
-							"Service Catalogue Configuration",
-							JOptionPane.INFORMATION_MESSAGE);
-					
-					// Release resource
-					httpClient.getConnectionManager().shutdown();
-					
-					tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-					return;
-				}
-
-				if (httpResponse.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) { // HTTP/1.1 200 OK
-					HttpEntity httpEntity = httpResponse.getEntity();
-					String contentType = httpEntity.getContentType().getValue()
-							.toLowerCase().trim();
-					logger
-							.info("Service Catalogue preferences configuration: Got 200 OK when testing the Service Catalogue instance by doing "
-									+ httpResponse.getStatusLine()
-									+ ". Content type of response "
-									+ contentType);
-					if (contentType.startsWith(APPLICATION_XML_MIME_TYPE)) {
-						String value = null;
-						Document doc = null;
-						try {
-							value = readResponseBodyAsString(httpEntity)
-									.trim();
-							// Try to read this string into an XML document
-							SAXBuilder builder = new SAXBuilder();
-							byte[] bytes = value.getBytes("UTF-8");
-							doc = builder.build(new ByteArrayInputStream(bytes));
-						} catch (Exception ex2) {
-							logger.error("Service Catalogue preferences configuration: Failed to build an XML document from the response.", ex2);
-							// Warn the user
-							JOptionPane.showMessageDialog(this,
-									"Failed to get the expected response body when testing the Service Catalogue instance.\n"
-											+ "The URL is probably wrong. Please check it and try again.",
-									"Service Catalogue Configuration",
-									JOptionPane.INFORMATION_MESSAGE);
-							tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-							return;
-						}
-						finally{
-							// Release resource
-							httpClient.getConnectionManager().shutdown();
-						}
-						// Get the version element from the XML document
-						Attribute apiVersionAttribute = doc.getRootElement().getAttribute(API_VERSION);
-						if (apiVersionAttribute != null){
-							String apiVersion = apiVersionAttribute.getValue();
-							String versions[] = apiVersion.split("[.]");
-							String majorVersion = versions[0];
-							String minorVersion = versions[1];
-							try {
-							//String patchVersion = versions[2]; // we are not comparing the patch versions
-							String supportedMajorVersion = MIN_SUPPORTED_BIOCATALOGUE_API_VERSION[0];
-							String supportedMinorVersion = MIN_SUPPORTED_BIOCATALOGUE_API_VERSION[1];
-							Integer iSupportedMajorVersion = Integer.parseInt(supportedMajorVersion);
-							Integer iMajorVersion = Integer.parseInt(majorVersion);
-							Integer iSupportedMinorVersion = Integer.parseInt(supportedMinorVersion);
-							Integer iMinorVersion = Integer.parseInt(minorVersion);
-							if (!(iSupportedMajorVersion == iMajorVersion && 
-									iSupportedMinorVersion <= iMinorVersion)){
-								// Warn the user
-								JOptionPane
-										.showMessageDialog(
-												this,
-												"The version of the Service Catalogue instance you are trying to connect to is not supported.\n"
-														+ "Please change the URL and try again.",
-												"Service Catalogue Configuration",
-												JOptionPane.INFORMATION_MESSAGE);
-								tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-								return;		
-							}
-							} catch (Exception e) {
-								logger.error(e);
-							}
-						} // if null - we'll try to do our best to connect to BioCatalogue anyway
-					} else {
-						logger
-								.error("Service Catalogue preferences configuration: Failed to get the expected response content type when testing the Service Catalogue instance. "
-										+ httpGet.getRequestLine()
-										+ " returned content type '"
-										+ contentType
-										+ "'; expected response content type is 'application/xml'.");
-						// Warn the user
-						JOptionPane
-								.showMessageDialog(
-										this,
-										"Failed to get the expected response content type when testing the Service Catalogue instance.\n"
-										+ "The URL is probably wrong. Please check it and try again.",
-										"Service Catalogue Plugin",
-										JOptionPane.INFORMATION_MESSAGE);
-						tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-						return;
-					}
-				}
-				else{
-					logger
-							.error("Service Catalogue preferences configuration: Failed to get the expected response status code when testing the Service Catalogue instance. "
-									+ httpGet.getRequestLine()
-									+ " returned the status code "
-									+ httpResponse.getStatusLine()
-											.getStatusCode() + "; expected status code is 200 OK.");
-					// Warn the user
-					JOptionPane
-							.showMessageDialog(
-									this,
-									"Failed to get the expected response status code when testing the Service Catalogue instance.\n"
-									+ "The URL is probably wrong. Please check it and try again.",
-									"Service Catalogue Configuration",
-									JOptionPane.INFORMATION_MESSAGE);
-					tfBioCatalogueAPIBaseURL.requestFocusInWindow();
-					return;					
-				}
-
-				// Warn the user of the changes in the BioCatalogue base URL
-				JOptionPane
-						.showMessageDialog(
-								this,
-								"You have updated the Service Catalogue base URL.\n"
-										+ "This does not take effect until you restart Taverna.",
-										"Service catalogue Configuration",
-								JOptionPane.INFORMATION_MESSAGE);
-
-			}
-
-			// the new base URL seems to be valid - can save it into config
-			// settings
-			configuration.setProperty(
-					BioCataloguePluginConfiguration.SERVICE_CATALOGUE_BASE_URL,
-					candidateBaseURL);
-
-/*			// also update the base URL in the BioCatalogueClient
-			BioCatalogueClient.getInstance()
-					.setBaseURL(candidateBaseURL);*/
-		}
-
-	}
-  
-  
-  /**
-   * For testing only.
-   */
-  public static void main(String[] args) {
-    JFrame theFrame = new JFrame();
-    theFrame.add(new BioCataloguePluginConfigurationPanel());
-    theFrame.pack();
-    theFrame.setLocationRelativeTo(null);
-    theFrame.setVisible(true);
-  }
-
-	/**
-	 * Worker method that extracts the content of the received HTTP message as a
-	 * string. It also makes use of the charset that is specified in the
-	 * Content-Type header of the received data to read it appropriately.
-	 * 
-	 * @param entity
-	 * @return
-	 * @throws IOException
-	 */
-	// Taken from HTTPRequestHandler in rest-activity by Sergejs Aleksejevs
-	private static String readResponseBodyAsString(HttpEntity entity)
-			throws IOException {
-		// get charset name
-		String charset = null;
-		String contentType = entity.getContentType().getValue().toLowerCase();
-
-		String[] contentTypeParts = contentType.split(";");
-		for (String contentTypePart : contentTypeParts) {
-			contentTypePart = contentTypePart.trim();
-			if (contentTypePart.startsWith("charset=")) {
-				charset = contentTypePart.substring("charset=".length());
-			}
-		}
-
-		// read the data line by line
-		StringBuilder responseBodyString = new StringBuilder();
-		BufferedReader reader = new BufferedReader(new InputStreamReader(entity
-				.getContent(), charset));
-
-		String str;
-		while ((str = reader.readLine()) != null) {
-			responseBodyString.append(str + "\n");
-		}
-
-		return (responseBodyString.toString());
-	}
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
deleted file mode 100644
index f5baa70..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.config;
-
-import javax.swing.JPanel;
-
-import uk.org.taverna.configuration.Configurable;
-import uk.org.taverna.configuration.ConfigurationUIFactory;
-
-/**
- *
- * @author Sergejs Aleksejevs
- */
-public class BioCataloguePluginConfigurationUIFactory implements ConfigurationUIFactory
-{
-
-  public boolean canHandle(String uuid) {
-    return uuid.equals(getConfigurable().getUUID());
-  }
-
-  public Configurable getConfigurable() {
-    return BioCataloguePluginConfiguration.getInstance();
-  }
-
-  public JPanel getConfigurationPanel() {
-    return new BioCataloguePluginConfigurationPanel();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
deleted file mode 100644
index d067cce..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import net.sf.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.Integration;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-
-
-public class BioCataloguePluginInputPortContextViewFactory implements
-		ContextualViewFactory<ActivityInputPort> {
-
-	public boolean canHandle(Object selection)
-	{
-		// TODO - HACK: this would stop showing the contextual view in case of any error,
-    //        not just in case of unsupported contextual selection; this needs to be
-    //        changed, so that useful error messages are still displayed in the
-    //        contextual view
-    if (selection instanceof ActivityInputPort)
-    {
-      SoapOperationPortIdentity portDetails = Integration.
-          extractSoapOperationPortDetailsFromActivityInputOutputPort((ActivityInputPort)selection);
-      boolean canHandleSelection = !portDetails.hasError();
-      if (!canHandleSelection) {
-        Logger.getLogger(BioCataloguePluginProcessorContextViewFactory.class).debug(
-            "Input port contextual view not shown due to some condition: " + portDetails.getErrorDetails());
-      }
-      
-      return (canHandleSelection);
-    }
-    else {
-      return (false);
-    }
-	}
-	
-	public List<ContextualView> getViews(ActivityInputPort selection) {
-		return Arrays.<ContextualView>asList(new ProcessorInputPortView(selection));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
deleted file mode 100644
index 1014a54..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import net.sf.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.Integration;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-
-
-public class BioCataloguePluginOutputPortContextViewFactory implements
-		ContextualViewFactory<ActivityOutputPort> {
-  
-	public boolean canHandle(Object selection)
-	{
-		// TODO - HACK: this would stop showing the contextual view in case of any error,
-    //        not just in case of unsupported contextual selection; this needs to be
-    //        changed, so that useful error messages are still displayed in the
-    //        contextual view
-    if (selection instanceof ActivityOutputPort)
-    {
-      SoapOperationPortIdentity portDetails = Integration.
-          extractSoapOperationPortDetailsFromActivityInputOutputPort((ActivityOutputPort)selection);
-      boolean canHandleSelection = !portDetails.hasError();
-      if (!canHandleSelection) {
-        Logger.getLogger(BioCataloguePluginProcessorContextViewFactory.class).debug(
-            "Output port contextual view not shown due to some condition: " + portDetails.getErrorDetails());
-      }
-      
-      return (canHandleSelection);
-    }
-    else {
-      return (false);
-    }
-	}
-	
-	public List<ContextualView> getViews(ActivityOutputPort selection) {
-		return Arrays.<ContextualView>asList(new ProcessorOutputPortView(selection));
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
deleted file mode 100644
index 05380d3..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import net.sf.taverna.biocatalogue.model.SoapOperationIdentity;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.Integration;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import net.sf.taverna.t2.workflowmodel.Processor;
-
-public class BioCataloguePluginProcessorContextViewFactory implements
-		ContextualViewFactory<Processor> {
-  
-	public boolean canHandle(Object selection)
-	{
-		// TODO - HACK: this would stop showing the contextual view in case of any error,
-	  //        not just in case of unsupported contextual selection; this needs to be
-	  //        changed, so that useful error messages are still displayed in the
-	  //        contextual view
-	  if (selection instanceof Processor)
-	  {
-	    SoapOperationIdentity opId = Integration.extractSoapOperationDetailsFromProcessor((Processor) selection);
-	    boolean canHandleSelection = !opId.hasError();
-		  if (!canHandleSelection) {
-	      Logger.getLogger(BioCataloguePluginProcessorContextViewFactory.class).debug(
-	          "Service's contextual view not shown due to some condition: " + opId.getErrorDetails());
-	    }
-		  
-		  return (canHandleSelection);
-	  }
-	  else {
-	    return (false);
-	  }
-	}
-	
-	public List<ContextualView> getViews(Processor selection) {
-		return Arrays.<ContextualView>asList(new ProcessorView(selection));
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
deleted file mode 100644
index 4e307f1..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-
-import net.sf.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-
-
-public class ProcessorInputPortView extends ContextualView
-{
-	private final ActivityInputPort inputPort;
-	private JPanel jPanel;
-
-	public ProcessorInputPortView(ActivityInputPort inputPort) {
-		this.inputPort = inputPort;
-		
-		jPanel = new JPanel();
-		
-		// NB! This is required to have the body of this contextual
-		// view added to the main view; otherwise, body will be
-		// blank
-		initView();
-	}
-	
-	@Override
-	public JComponent getMainFrame()
-	{
-		return jPanel;
-	}
-
-	@Override
-	public String getViewTitle() {
-		return "Service Catalogue Information";
-	} 
-
-	@Override
-	public void refreshView()
-	{
-	  // this actually causes the parent container to validate itself,
-    // which is what is needed here
-    this.revalidate();
-    this.repaint();
-	}
-	
-	@Override
-	public int getPreferredPosition() {
-		return BioCataloguePluginConstants.CONTEXTUAL_VIEW_PREFERRED_POSITION;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
deleted file mode 100644
index feff0f4..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-
-import net.sf.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-
-
-public class ProcessorOutputPortView extends ContextualView
-{
-	private final ActivityOutputPort outputPort;
-	private JPanel jPanel;
-
-	public ProcessorOutputPortView(ActivityOutputPort outputPort) {
-		this.outputPort = outputPort;
-		
-		jPanel = new JPanel();
-		
-		// NB! This is required to have the body of this contextual
-		// view added to the main view; otherwise, body will be
-		// blank
-		initView();
-	}
-	
-	@Override
-	public JComponent getMainFrame()
-	{
-		return jPanel;
-	}
-
-	@Override
-	public String getViewTitle() {
-		return "Service Catalogue Information";
-	} 
-
-	@Override
-	public void refreshView()
-	{
-	  // this actually causes the parent container to validate itself,
-    // which is what is needed here
-    this.revalidate();
-    this.repaint();
-	}
-	
-	@Override
-	public int getPreferredPosition() {
-		return BioCataloguePluginConstants.CONTEXTUAL_VIEW_PREFERRED_POSITION;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
deleted file mode 100644
index ea41805..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
+++ /dev/null
@@ -1,229 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.contextual_views;
-
-import java.awt.Component;
-import java.awt.Desktop;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.net.URI;
-import java.rmi.activation.UnknownObjectException;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.SwingUtilities;
-import javax.swing.UIManager;
-
-import net.sf.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import net.sf.taverna.biocatalogue.model.ResourceManager;
-import net.sf.taverna.biocatalogue.model.SoapOperationIdentity;
-import net.sf.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import net.sf.taverna.t2.lang.ui.DeselectingButton;
-import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.MainComponentFactory;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.Integration;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check.ServiceHealthChecker;
-import net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check.ServiceMonitoringStatusInterpreter;
-import net.sf.taverna.t2.workbench.ui.views.contextualviews.ContextualView;
-import net.sf.taverna.t2.workflowmodel.Processor;
-
-import org.apache.log4j.Logger;
-import org.biocatalogue.x2009.xml.rest.Service;
-import org.biocatalogue.x2009.xml.rest.SoapOperation;
-
-
-public class ProcessorView extends ContextualView {
-	private final Processor processor;
-	private JPanel jPanel;
-	
-	private static Logger logger = Logger.getLogger(ProcessorView.class);
-	
-
-
-	public ProcessorView(Processor processor) {
-		this.processor = processor;
-		
-		jPanel = new JPanel();
-		
-		// this is required to have the body of this contextual
-		// view added to the main view; otherwise, body will be
-		// blank
-		initView();
-	}
-	
-
-	
-	@Override
-	public JComponent getMainFrame()
-	{
-	  Thread t = new Thread("loading processor data") {
-      public void run() {
-        final SoapOperationIdentity operationDetails = Integration.extractSoapOperationDetailsFromProcessor(processor);
-        
-        if (operationDetails.hasError()) {
-        	SwingUtilities.invokeLater(new RefreshThread(new JLabel(operationDetails.getErrorDetails().toString(),
-                    UIManager.getIcon("OptionPane.warningIcon"), JLabel.CENTER)));
-           return;
-        }
-        else {
-          BioCatalogueClient client = BioCatalogueClient.getInstance();
-          
-          if (client != null) {
-            try {
-              final SoapOperation soapOperation = client.lookupSoapOperation(operationDetails);
-              if (soapOperation == null) {
-            	  SwingUtilities.invokeLater(new RefreshThread(new JLabel("This service is not registered in the Service Catalogue",
-                          UIManager.getIcon("OptionPane.warningIcon"), JLabel.CENTER)));
-                 return;
-              }
-              
-              Service parentService = client.getBioCatalogueService(soapOperation.getAncestors().getService().getHref());
-              if (parentService == null) {
-               	  SwingUtilities.invokeLater(new RefreshThread(new JLabel("Problem while fetching monitoring data from the Service Catalogue",
-                          UIManager.getIcon("OptionPane.warningIcon"), JLabel.CENTER)));
-                 return;
-              }
-              
-              
-              // *** managed to get all necessary data successfully - present it ***
-              
-              // create status update panel
-              JButton jclServiceStatus = new DeselectingButton(
-                  new AbstractAction("Check monitoring status") {
-                    public void actionPerformed(ActionEvent e) {
-                      ServiceHealthChecker.checkWSDLProcessor(operationDetails);
-                    }
-                  });
-              jclServiceStatus.setAlignmentX(Component.LEFT_ALIGNMENT);
-              JLabel jlStatusMessage = new JLabel(parentService.getLatestMonitoringStatus().getMessage());
-              jlStatusMessage.setAlignmentX(Component.LEFT_ALIGNMENT);             
-              
-              // operation description
-              String operationDescription = (soapOperation.getDescription().length() > 0 ?
-                      soapOperation.getDescription() :
-                      "No description is available for this service");
-
-              ReadOnlyTextArea jlOperationDescription = new ReadOnlyTextArea(operationDescription);
- 
-              jlOperationDescription.setAlignmentX(Component.LEFT_ALIGNMENT);              
-              
-              // a button to open preview of the service
-              JButton jbLaunchProcessorPreview = new DeselectingButton("Show on the Service Catalogue",
-            		  new ActionListener() {
-                  public void actionPerformed(ActionEvent e) {
-                    if (!operationDetails.hasError()) {
-                  	  String hrefString = soapOperation.getHref();
-     				   try {
-  						Desktop.getDesktop().browse(new URI(hrefString));
-  					    }
-  					    catch (Exception ex) {
-  					      logger.error("Failed while trying to open the URL in a standard browser; URL was: " +
-  					           hrefString, ex);
-  					    };
-                    }
-                    else {
-                      // this error message comes from Integration class extracting SOAP operation details from the contextual selection
-                      JOptionPane.showMessageDialog(null, operationDetails.getErrorDetails(), "Service Catalogue Error", JOptionPane.WARNING_MESSAGE);
-                    }
-                  }
-                },
-                "View this service on the Service Catalogue");
-              
-              JPanel jpPreviewButtonPanel = new JPanel();
-              jpPreviewButtonPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
-              jbLaunchProcessorPreview.setAlignmentX(Component.LEFT_ALIGNMENT);
- //             jpPreviewButtonPanel.add(jbLaunchProcessorPreview);
-             // put everything together
-              JPanel jpInnerPane = new JPanel();
-              jpInnerPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
-              jpInnerPane.setLayout(new BoxLayout(jpInnerPane, BoxLayout.Y_AXIS));
-              jpInnerPane.add(jlOperationDescription);
-              jpInnerPane.add(Box.createVerticalStrut(10));
-              jpInnerPane.add(jlStatusMessage);
-              jpInnerPane.add(Box.createVerticalStrut(10));
-              jpInnerPane.add(jclServiceStatus);
-              jpInnerPane.add(Box.createVerticalStrut(10));
-              jpInnerPane.add(jbLaunchProcessorPreview);
-             
-              JScrollPane spInnerPane = new JScrollPane(jpInnerPane);
-              
-              SwingUtilities.invokeLater(new RefreshThread(spInnerPane));
-              return;
-           }
-            catch (UnknownObjectException e) {
-            	SwingUtilities.invokeLater(new RefreshThread(new JLabel(e.getMessage(),
-                        UIManager.getIcon("OptionPane.informationIcon"), JLabel.CENTER)));
-            	return;
-             }
-            catch (Exception e) {
-              // a real error occurred while fetching data about selected processor
-             logger.error("ERROR: unexpected problem while trying to ", e);
-             SwingUtilities.invokeLater(new RefreshThread(new JLabel("An unknown problem has prevented Taverna from loading this preview",
-                     UIManager.getIcon("OptionPane.errorIcon"), JLabel.CENTER)));
-             return;
-            }
-          }
-          else {
-        	  SwingUtilities.invokeLater(new RefreshThread(new JLabel("Service Catalogue integration has not initialised yet. Please wait and try again.",
-                                  UIManager.getIcon("OptionPane.warningIcon"), JLabel.CENTER)));
-        	  return;
-         }
-        }
-      }
-	  };
-		
-	  jPanel.removeAll();
-    jPanel.setPreferredSize(new Dimension(200,200));
-    jPanel.setLayout(new GridLayout());
-    jPanel.add(new JLabel(ResourceManager.getImageIcon(ResourceManager.BAR_LOADER_ORANGE), JLabel.CENTER));
-	  t.start();
-		return jPanel;
-	}
-
-	@Override
-	public String getViewTitle() {
-		return "Service Catalogue Information";
-	} 
-
-	@Override
-	public void refreshView()
-	{
-	  // this actually causes the parent container to validate itself,
-	  // which is what is needed here
-	  this.revalidate();
-	  this.repaint();
-	}
-	
-	@Override
-	public int getPreferredPosition() {
-		return BioCataloguePluginConstants.CONTEXTUAL_VIEW_PREFERRED_POSITION;
-	}
-	
-	class RefreshThread extends Thread {
-		private final Component component;
-
-		public RefreshThread (Component component) {
-			this.component = component;		
-		}
-		
-		public void run() {
-			jPanel.removeAll();
-			if (component != null) {
-				jPanel.add(component);
-			}
-			refreshView();
-		}
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
deleted file mode 100644
index 2461c2c..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check;
-
-import net.sf.taverna.t2.visit.VisitKind;
-import net.sf.taverna.t2.visit.Visitor;
-
-/**
- * A {@link BioCatalogueWSDLActivityHealthCheck} is a kind of visit that determines
- * if the corresponding WSDL activity in a workflow will work during a workflow run -
- * checks will be made based on the monitoring status held about that service in BioCatalogue.
- * 
- * @author Sergejs Aleksejevs
- */
-public class BioCatalogueWSDLActivityHealthCheck extends VisitKind
-{
-  // The following values indicate the type of results that can be associated
-  // with a VisitReport generated by a health-checking visitor.
-  public static final int MESSAGE_IN_VISIT_REPORT = 0;
-  
-  
-  // property names to be placed into VisitReport generated by BioCatalogueWSDLActivityHealthChecker
-  public static final String WSDL_LOCATION_PROPERTY = "wsdlLocation";
-  public static final String OPERATION_NAME_PROPERTY = "soapOperationName";
-  public static final String EXPLANATION_MSG_PROPERTY = "fullExplanationMessage";
-  
-  
-  
-  
-  @Override
-  public Class<? extends Visitor> getVisitorClass() {
-    return BioCatalogueWSDLActivityHealthChecker.class;
-  }
-  
-  private static class Singleton {
-    private static BioCatalogueWSDLActivityHealthCheck instance = new BioCatalogueWSDLActivityHealthCheck();
-  }
-  
-  public static BioCatalogueWSDLActivityHealthCheck getInstance() {
-    return Singleton.instance;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/dc466d6d/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheckVisitExplainer.java
----------------------------------------------------------------------
diff --git a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheckVisitExplainer.java b/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheckVisitExplainer.java
deleted file mode 100644
index 8bee663..0000000
--- a/taverna-workbench-perspective-biocatalogue/src/main/java/net/sf/taverna/t2/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheckVisitExplainer.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check;
-
-import java.awt.BorderLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-
-import net.sf.taverna.biocatalogue.model.SoapOperationIdentity;
-import net.sf.taverna.t2.lang.ui.ReadOnlyTextArea;
-import net.sf.taverna.t2.visit.VisitKind;
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.workbench.report.explainer.VisitExplainer;
-
-// import status constants
-import static net.sf.taverna.t2.ui.perspectives.biocatalogue.integration.health_check.BioCatalogueWSDLActivityHealthCheck.*;
-
-/**
- * 
- * @author Sergejs Aleksejevs
- */
-public class BioCatalogueWSDLActivityHealthCheckVisitExplainer implements VisitExplainer
-{
-  
-  public boolean canExplain(VisitKind vk, int resultId) {
-    return (vk instanceof BioCatalogueWSDLActivityHealthCheck);
-  }
-  
-  
-  /**
-   * This class only handles {@link VisitReport} instances that are of
-   * {@link BioCatalogueWSDLActivityHealthCheck} kind. Therefore, decisions on
-   * the explanations / solutions are made solely by visit result IDs.
-   */
-  public JComponent getExplanation(final VisitReport vr)
-  {
-    int resultId = vr.getResultId();
-    String explanation = null;
-    
-    switch (resultId) {
-      case MESSAGE_IN_VISIT_REPORT:
-        explanation = (String) vr.getProperty(EXPLANATION_MSG_PROPERTY); break;
-        
-      default:
-        explanation = "Unknown issue - no expalanation available"; break;
-    }
-    
-    
-    JButton bRunBioCatalogueHealthCheck = new JButton("View monitoring status details");
-    bRunBioCatalogueHealthCheck.addActionListener(new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        SoapOperationIdentity soapOpIdentity = 
-              new SoapOperationIdentity((String)vr.getProperty(BioCatalogueWSDLActivityHealthCheck.WSDL_LOCATION_PROPERTY),
-                                        (String)vr.getProperty(BioCatalogueWSDLActivityHealthCheck.OPERATION_NAME_PROPERTY), null);
-        
-        ServiceHealthChecker.checkWSDLProcessor(soapOpIdentity);
-      }
-    });
-    JPanel jpButton = new JPanel();
-    jpButton.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
-    jpButton.add(bRunBioCatalogueHealthCheck);
-    jpButton.setOpaque(false);
-    
-    JPanel jpExplanation = new JPanel(new BorderLayout());
-    jpExplanation.add(new ReadOnlyTextArea(explanation), BorderLayout.CENTER);
-    jpExplanation.add(jpButton, BorderLayout.SOUTH);
-    
-    return (jpExplanation);
-  }
-  
-  
-  
-  /**
-   * This class only handles {@link VisitReport} instances that are of
-   * {@link BioCatalogueWSDLActivityHealthCheck} kind. Therefore, decisions on
-   * the explanations / solutions are made solely by visit result IDs.
-   */
-  public JComponent getSolution(VisitReport vr)
-  {
-    String explanation = null;
-    
-    // instead of switching between possible health check resultIDs,
-    // simply choose from possible statuses: for all failures there's
-    // nothing specific that can be done, so no need to differentiate
-    // displayed messages
-    switch (vr.getStatus()) {
-      case OK:
-        explanation = "This WSDL service works fine - no change necessary"; break;
-        
-      case WARNING:
-      case SEVERE:
-        explanation = "This remote WSDL service appears to have an internal problem. There is nothing " +
-        		          "specific that can be done to fix it locally.\n\n" +
-        		          "It is possible that the current state of the service will still allow to execute " +
-        		          "the workflow successfully. Also, the service may have already recovered since the " +
-        		          "last time it's monitoring status has been checked.\n\n" +
-        		          "If this problem does affect the current workflow, it may be resolved by the " +
-        		          "service provider. It may be worth contacting them to report the issue.";
-                      break;
-      
-      default:
-        explanation = "Unknown issue - no solution available"; break;
-    }
-    
-    return (new ReadOnlyTextArea(explanation));
-  }
-  
-}