http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/Integration.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/Integration.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/Integration.java
deleted file mode 100644
index efa1efa..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/Integration.java
+++ /dev/null
@@ -1,534 +0,0 @@
-package org.apache.taverna.ui.perspectives.biocatalogue.integration;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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 org.apache.taverna.biocatalogue.model.HTTPMethodInterpreter;
-import 
org.apache.taverna.biocatalogue.model.HTTPMethodInterpreter.UnsupportedHTTPMethodException;
-import org.apache.taverna.biocatalogue.model.Resource;
-import org.apache.taverna.biocatalogue.model.Resource.TYPE;
-import org.apache.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import org.apache.taverna.biocatalogue.model.ResourceManager;
-import org.apache.taverna.biocatalogue.model.SoapOperationIdentity;
-import org.apache.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import org.apache.taverna.biocatalogue.model.SoapProcessorIdentity;
-import org.apache.taverna.biocatalogue.model.Util;
-import org.apache.taverna.activities.rest.RESTActivity;
-import org.apache.taverna.activities.rest.RESTActivity.HTTP_METHOD;
-import org.apache.taverna.activities.wsdl.WSDLActivity;
-import 
org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceDescription;
-import org.apache.taverna.ui.menu.ContextualSelection;
-import org.apache.taverna.ui.perspectives.biocatalogue.MainComponentFactory;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.service_panel.BioCatalogueRESTServiceProvider;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.service_panel.BioCatalogueWSDLOperationServiceProvider;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.service_panel.RESTFromBioCatalogueServiceDescription;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.service_panel.WSDLOperationFromBioCatalogueServiceDescription;
-import org.apache.taverna.workbench.file.FileManager;
-import org.apache.taverna.workbench.ui.workflowview.WorkflowView;
-import org.apache.taverna.workflowmodel.Dataflow;
-import org.apache.taverna.workflowmodel.Port;
-import org.apache.taverna.workflowmodel.Processor;
-import org.apache.taverna.workflowmodel.processor.activity.Activity;
-import org.apache.taverna.workflowmodel.processor.activity.ActivityInputPort;
-import org.apache.taverna.workflowmodel.processor.activity.ActivityOutputPort;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
deleted file mode 100644
index a301c6a..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfiguration.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package org.apache.taverna.ui.perspectives.biocatalogue.integration.config;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashMap;
-import java.util.Map;
-
-import uk.org.taverna.configuration.AbstractConfigurable;
-
-import org.apache.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import uk.org.taverna.configuration.ConfigurationManager;
-
-/**
- *
- *
- * @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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
deleted file mode 100644
index 42120bc..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationPanel.java
+++ /dev/null
@@ -1,464 +0,0 @@
-package org.apache.taverna.ui.perspectives.biocatalogue.integration.config;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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 org.apache.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
deleted file mode 100644
index c038c57..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/config/BioCataloguePluginConfigurationUIFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.apache.taverna.ui.perspectives.biocatalogue.integration.config;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
deleted file mode 100644
index 8c04a76..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginInputPortContextViewFactory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import org.apache.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import org.apache.taverna.ui.perspectives.biocatalogue.integration.Integration;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import 
org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
deleted file mode 100644
index c6a3250..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginOutputPortContextViewFactory.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import org.apache.taverna.biocatalogue.model.SoapOperationPortIdentity;
-import org.apache.taverna.ui.perspectives.biocatalogue.integration.Integration;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import 
org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
deleted file mode 100644
index 60ce129..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/BioCataloguePluginProcessorContextViewFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-
-import org.apache.taverna.biocatalogue.model.SoapOperationIdentity;
-import org.apache.taverna.ui.perspectives.biocatalogue.integration.Integration;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import 
org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
deleted file mode 100644
index aa960a2..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorInputPortView.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-
-import org.apache.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
deleted file mode 100644
index 93fd37c..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorOutputPortView.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import javax.swing.JComponent;
-import javax.swing.JPanel;
-
-import org.apache.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
deleted file mode 100644
index 34779e7..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/contextual_views/ProcessorView.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.contextual_views;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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 org.apache.taverna.biocatalogue.model.BioCataloguePluginConstants;
-import org.apache.taverna.biocatalogue.model.ResourceManager;
-import org.apache.taverna.biocatalogue.model.SoapOperationIdentity;
-import org.apache.taverna.biocatalogue.model.connectivity.BioCatalogueClient;
-import org.apache.taverna.lang.ui.DeselectingButton;
-import org.apache.taverna.lang.ui.ReadOnlyTextArea;
-import org.apache.taverna.ui.perspectives.biocatalogue.MainComponentFactory;
-import org.apache.taverna.ui.perspectives.biocatalogue.integration.Integration;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.health_check.ServiceHealthChecker;
-import 
org.apache.taverna.ui.perspectives.biocatalogue.integration.health_check.ServiceMonitoringStatusInterpreter;
-import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
-import org.apache.taverna.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/52817a33/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
----------------------------------------------------------------------
diff --git 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
 
b/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
deleted file mode 100644
index 9760460..0000000
--- 
a/taverna-perspective-biocatalogue/src/main/java/org/apache/taverna/ui/perspectives/biocatalogue/integration/health_check/BioCatalogueWSDLActivityHealthCheck.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package 
org.apache.taverna.ui.perspectives.biocatalogue.integration.health_check;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.apache.taverna.visit.VisitKind;
-import org.apache.taverna.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;
-  }
-}

Reply via email to