You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by re...@apache.org on 2015/03/27 17:22:18 UTC
[05/23] incubator-taverna-workbench-common-activities git commit:
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProvider.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProvider.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProvider.java
new file mode 100644
index 0000000..c9d7c59
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProvider.java
@@ -0,0 +1,227 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.servicedescriptions;
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.swing.Icon;
+import javax.wsdl.Operation;
+import javax.wsdl.WSDLException;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.taverna.activities.wsdl.WSDLActivityHealthChecker;
+import org.apache.taverna.lang.observer.Observable;
+import org.apache.taverna.lang.observer.Observer;
+import org.apache.taverna.security.credentialmanager.CredentialManager;
+import org.apache.taverna.servicedescriptions.AbstractConfigurableServiceProvider;
+import org.apache.taverna.servicedescriptions.CustomizedConfigurePanelProvider;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.servicedescriptions.events.RemovedProviderEvent;
+import org.apache.taverna.servicedescriptions.events.ServiceDescriptionRegistryEvent;
+import org.apache.taverna.wsdl.parser.UnknownOperationException;
+import org.apache.taverna.wsdl.parser.WSDLParser;
+
+import org.apache.log4j.Logger;
+import org.apache.taverna.servicedescriptions.CustomizedConfigurePanelProvider.CustomizedConfigureCallBack;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionProvider.FindServiceDescriptionsCallBack;
+import org.xml.sax.SAXException;
+
+public class WSDLServiceProvider extends
+ AbstractConfigurableServiceProvider<WSDLServiceProviderConfig> implements
+ CustomizedConfigurePanelProvider<WSDLServiceProviderConfig> {
+
+ private static Logger logger = Logger.getLogger(WSDLServiceProvider.class);
+
+ private static final URI providerId = URI
+ .create("http://taverna.sf.net/2010/service-provider/wsdl");
+
+ private CredentialManager credentialManager;
+
+ public static class FlushWSDLCacheOnRemovalObserver implements
+ Observer<ServiceDescriptionRegistryEvent> {
+ public void notify(
+ Observable<ServiceDescriptionRegistryEvent> registry,
+ ServiceDescriptionRegistryEvent event) throws Exception {
+ if (!(event instanceof RemovedProviderEvent)) {
+ return;
+ }
+ RemovedProviderEvent removedProviderEvent = (RemovedProviderEvent) event;
+ if (!(removedProviderEvent.getProvider() instanceof WSDLServiceProvider)) {
+ return;
+ }
+ WSDLServiceProvider serviceProvider = (WSDLServiceProvider) removedProviderEvent
+ .getProvider();
+ URI wsdlLocation = serviceProvider.getConfiguration().getURI();
+ WSDLParser.flushCache(wsdlLocation.toASCIIString());
+ logger.info("Flushed cache for WSDL " + wsdlLocation);
+ }
+ }
+
+ private static final String WSDL_SERVICE = "WSDL service";
+
+ private static FlushWSDLCacheOnRemovalObserver flushObserver = new FlushWSDLCacheOnRemovalObserver();
+
+ private ServiceDescriptionRegistry serviceDescriptionRegistry;
+
+ public WSDLServiceProvider() {
+ super(new WSDLServiceProviderConfig("http://somehost/service?wsdl"));
+ }
+
+ public String getName() {
+ return WSDL_SERVICE;
+ }
+
+ public List<WSDLServiceProviderConfig> getDefaultConfigurations() {
+
+ List<WSDLServiceProviderConfig> defaults = new ArrayList<WSDLServiceProviderConfig>();
+
+ // If defaults have failed to load from a configuration file then load them here.
+ if (!serviceDescriptionRegistry.isDefaultSystemConfigurableProvidersLoaded()){
+ // 2009-12-16: 503 server error
+ defaults.add(new WSDLServiceProviderConfig(
+ "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils.wsdl"));
+ defaults.add(new WSDLServiceProviderConfig(
+ "http://soap.bind.ca/wsdl/bind.wsdl"));
+ defaults.add(new WSDLServiceProviderConfig(
+ "http://www.ebi.ac.uk/ws/services/urn:Dbfetch?wsdl"));
+ } // else return an empty list
+
+ return defaults;
+ }
+
+ public void findServiceDescriptionsAsync(
+ FindServiceDescriptionsCallBack callBack) {
+
+ URI wsdl = serviceProviderConfig.getURI();
+
+ callBack.status("Parsing wsdl:" + wsdl);
+ WSDLParser parser = null;
+ try {
+ parser = new WSDLParser(wsdl.toASCIIString());
+ List<Operation> operations = parser.getOperations();
+ callBack.status("Found " + operations.size() + " WSDL operations:"
+ + wsdl);
+ List<WSDLServiceDescription> items = new ArrayList<WSDLServiceDescription>();
+ for (Operation op : operations) {
+ WSDLServiceDescription item = new WSDLServiceDescription(credentialManager);
+ try {
+ String name = op.getName();
+ item.setOperation(name);
+ String use = parser.getUse(name);
+ String style = parser.getStyle();
+ if (!WSDLActivityHealthChecker.checkStyleAndUse(style, use)) {
+ logger.warn("Unsupported style and use combination " + style + "/" + use + " for operation " + name + " from " + wsdl);
+ continue;
+ }
+ item.setUse(use);
+ item.setStyle(style);
+ item.setURI(wsdl);
+ item.setDescription(parser.getOperationDocumentation(name));
+ items.add(item);
+ } catch (UnknownOperationException e) {
+ String message = "Encountered an unexpected operation name:"
+ + item.getOperation();
+ callBack.fail(message, e);
+ }
+ }
+ callBack.partialResults(items);
+ callBack.finished();
+ } catch (ParserConfigurationException e) {
+ String message = "Error configuring the WSDL parser";
+ callBack.fail(message, e);
+ } catch (WSDLException e) {
+ String message = "There was an error with the wsdl: " + wsdl;
+ callBack.fail(message, e);
+ } catch (IOException e) {
+ String message = "There was an IO error parsing the wsdl: " + wsdl
+ + " Possible reason: the wsdl location was incorrect.";
+ callBack.fail(message, e);
+ } catch (SAXException e) {
+ String message = "There was an error with the XML in the wsdl: "
+ + wsdl;
+ callBack.fail(message, e);
+ } catch (IllegalArgumentException e) { // a problem with the wsdl url
+ String message = "There was an error with the wsdl: " + wsdl + " "
+ + "Possible reason: the wsdl location was incorrect.";
+ callBack.fail(message, e);
+ } catch (Exception e) { // anything else we did not expect
+ String message = "There was an error with the wsdl: " + wsdl;
+ callBack.fail(message, e);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return getName() + " " + getConfiguration().getURI();
+ }
+
+ public Icon getIcon() {
+ return WSDLActivityIcon.getWSDLIcon();
+ }
+
+ @Override
+ protected List<? extends Object> getIdentifyingData() {
+ List<String> result;
+ result = Arrays.asList(getConfiguration().getURI().toString());
+ return result;
+ }
+
+ /**
+ * Will be set by ServiceDescriptionRegistryImpl
+ *
+ * @param registry Registry this provider has been added to
+ */
+ public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+ this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+ synchronized (flushObserver) {
+ // Add the (static common) observer if the registry does not have it
+ if (!serviceDescriptionRegistry.getObservers().contains(flushObserver)) {
+ serviceDescriptionRegistry.addObserver(flushObserver);
+ }
+ }
+ }
+
+ @SuppressWarnings("serial")
+ public void createCustomizedConfigurePanel(final CustomizedConfigureCallBack<WSDLServiceProviderConfig> callBack) {
+
+ AddWSDLServiceDialog addWSDLServiceDialog = new AddWSDLServiceDialog() {
+ @Override
+ protected void addRegistry(String wsdlURL) {
+
+ WSDLServiceProviderConfig providerConfig = new WSDLServiceProviderConfig(wsdlURL);
+ callBack.newProviderConfiguration(providerConfig);
+ }
+ };
+ addWSDLServiceDialog.setVisible(true);
+ }
+
+ public String getId() {
+ return providerId.toString();
+ }
+
+ public void setCredentialManager(CredentialManager credentialManager) {
+ this.credentialManager = credentialManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProviderConfig.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProviderConfig.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProviderConfig.java
new file mode 100644
index 0000000..465de26
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/WSDLServiceProviderConfig.java
@@ -0,0 +1,51 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.servicedescriptions;
+
+import java.net.URI;
+
+import org.apache.taverna.lang.beans.PropertyAnnotated;
+import org.apache.taverna.lang.beans.PropertyAnnotation;
+
+public class WSDLServiceProviderConfig extends PropertyAnnotated {
+ private URI uri;
+
+ public WSDLServiceProviderConfig() {
+ }
+
+ public WSDLServiceProviderConfig(String uri) {
+ this.uri = URI.create(uri);
+ }
+
+ @PropertyAnnotation(displayName = "WSDL location", preferred = true)
+ public URI getURI() {
+ return uri;
+ }
+
+ public void setURI(URI uri) {
+ this.uri = uri;
+ }
+
+ @Override
+ public String toString() {
+ return getURI().toASCIIString();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLInputSplitterActivityIcon.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLInputSplitterActivityIcon.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLInputSplitterActivityIcon.java
new file mode 100644
index 0000000..bfd2ba0
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLInputSplitterActivityIcon.java
@@ -0,0 +1,62 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.servicedescriptions;
+
+import java.net.URI;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.apache.taverna.workbench.activityicons.ActivityIconSPI;
+
+/**
+ *
+ * @author Alex Nenadic
+ *
+ */
+public class XMLInputSplitterActivityIcon implements ActivityIconSPI{
+
+ private static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/xml-splitter/in");
+
+ private static Icon icon = null;
+
+ public int canProvideIconScore(URI activityType) {
+ if (activityType.equals(ACTIVITY_TYPE))
+ return DEFAULT_ICON + 1;
+ else
+ return NO_ICON;
+ }
+
+ public Icon getIcon(URI activityType) {
+ return getXMLOutputSplitterIcon();
+ }
+
+ public static Icon getXMLOutputSplitterIcon() {
+ if (icon == null) {
+ icon = new ImageIcon(XMLOutputSplitterActivityIcon.class.getResource("/xml-splitter.png"));
+ }
+ return icon;
+ }
+
+}
+
+
+
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLOutputSplitterActivityIcon.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLOutputSplitterActivityIcon.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLOutputSplitterActivityIcon.java
new file mode 100644
index 0000000..edc5fe6
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/servicedescriptions/XMLOutputSplitterActivityIcon.java
@@ -0,0 +1,63 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.servicedescriptions;
+
+import java.net.URI;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.apache.taverna.workbench.activityicons.ActivityIconSPI;
+
+/**
+ *
+ * @author Alex Nenadic
+ *
+ */
+public class XMLOutputSplitterActivityIcon implements ActivityIconSPI{
+
+ private static final URI ACTIVITY_TYPE = URI.create("http://ns.taverna.org.uk/2010/activity/xml-splitter/out");
+
+ private static Icon icon = null;
+
+ public int canProvideIconScore(URI activityType) {
+ if (activityType.equals(ACTIVITY_TYPE))
+ return DEFAULT_ICON + 1;
+ else
+ return NO_ICON;
+ }
+
+ public Icon getIcon(URI activityType) {
+ return getXMLOutputSplitterIcon();
+ }
+
+ public static Icon getXMLOutputSplitterIcon() {
+ if (icon == null) {
+ icon = new ImageIcon(XMLOutputSplitterActivityIcon.class.getResource("/xml-splitter.png"));
+ }
+ return icon;
+ }
+
+}
+
+
+
+
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/AbstractXMLSplitterActionView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/AbstractXMLSplitterActionView.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/AbstractXMLSplitterActionView.java
new file mode 100644
index 0000000..58436d5
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/AbstractXMLSplitterActionView.java
@@ -0,0 +1,178 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.io.IOException;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+import javax.wsdl.WSDLException;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.taverna.activities.wsdl.actions.AbstractAddXMLSplitterAction;
+import org.apache.taverna.activities.wsdl.actions.AddXMLInputSplitterAction;
+import org.apache.taverna.activities.wsdl.actions.AddXMLOutputSplitterAction;
+import org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceDescription;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import org.apache.taverna.wsdl.parser.TypeDescriptor;
+import org.apache.taverna.wsdl.parser.UnknownOperationException;
+
+import org.apache.log4j.Logger;
+import org.jdom.JDOMException;
+import org.xml.sax.SAXException;
+
+import org.apache.taverna.scufl2.api.activity.Activity;
+import org.apache.taverna.scufl2.api.port.DepthPort;
+import org.apache.taverna.scufl2.api.port.InputActivityPort;
+import org.apache.taverna.scufl2.api.port.OutputActivityPort;
+
+@SuppressWarnings("serial")
+public abstract class AbstractXMLSplitterActionView extends HTMLBasedActivityContextualView {
+
+ private static Logger logger = Logger.getLogger(AbstractXMLSplitterActionView.class);
+ protected final EditManager editManager;
+ protected final SelectionManager selectionManager;
+ protected AbstractAddXMLSplitterAction splitterAction;
+
+ public AbstractXMLSplitterActionView(Activity activity, EditManager editManager,
+ SelectionManager selectionManager, ColourManager colourManager) {
+ super(activity, colourManager);
+ this.editManager = editManager;
+ this.selectionManager = selectionManager;
+ if (getActivity().getType().equals(WSDLServiceDescription.OUTPUT_SPLITTER_TYPE)) {
+ splitterAction = new AddXMLOutputSplitterAction(getActivity(),
+ null, editManager, selectionManager);
+ } else if (getActivity().getType().equals(WSDLServiceDescription.INPUT_SPLITTER_TYPE)) {
+ splitterAction = new AddXMLInputSplitterAction(getActivity(),
+ null, editManager, selectionManager);
+ }
+ super.initView();
+ }
+
+ @Override
+ public void initView() {
+ }
+
+ protected void addOutputSplitter(final JComponent mainFrame, JPanel flowPanel) {
+ if (getActivity().getType().equals(WSDLServiceDescription.OUTPUT_SPLITTER_TYPE)) {
+ try {
+ Map<String, TypeDescriptor> descriptors = splitterAction.getTypeDescriptors();
+ if (!AbstractAddXMLSplitterAction.filterDescriptors(descriptors).isEmpty()) {
+ flowPanel.add(new JButton(splitterAction));
+ }
+ } catch (UnknownOperationException | IOException | ParserConfigurationException
+ | WSDLException | SAXException | JDOMException e) {
+ logger.warn("Could not find type descriptors for " + getActivity(), e);
+ }
+ }
+ }
+
+ protected void addInputSplitter(final JComponent mainFrame, JPanel flowPanel) {
+ if (getActivity().getType().equals(WSDLServiceDescription.INPUT_SPLITTER_TYPE)) {
+ try {
+ Map<String, TypeDescriptor> descriptors = splitterAction.getTypeDescriptors();
+ if (!AbstractAddXMLSplitterAction.filterDescriptors(descriptors).isEmpty()) {
+ splitterAction.setOwner(mainFrame);
+ flowPanel.add(new JButton(splitterAction));
+ }
+ } catch (UnknownOperationException | IOException | ParserConfigurationException
+ | WSDLException | SAXException | JDOMException e) {
+ logger.warn("Could not find type descriptors for " + getActivity(), e);
+ }
+ }
+ }
+
+ protected String describePorts() {
+ StringBuilder html = new StringBuilder();
+
+ if (!getActivity().getInputPorts().isEmpty()) {
+ html.append("<tr><th colspan='2' align='left'>Inputs</th></tr>");
+ for (InputActivityPort port : getActivity().getInputPorts()) {
+ TypeDescriptor descriptor = null;
+ if (getActivity().getType().equals(WSDLServiceDescription.INPUT_SPLITTER_TYPE)) {
+ try {
+ descriptor = splitterAction.getTypeDescriptors().get(port.getName());
+ } catch (UnknownOperationException | IOException | ParserConfigurationException
+ | WSDLException | SAXException | JDOMException e) {
+ logger.warn("Could not find type descriptors for " + getActivity(), e);
+ }
+ }
+ if (descriptor == null) {
+ html.append(describePort(port));
+ } else {
+ html.append(describePort(port, descriptor));
+ }
+
+ }
+ }
+
+ if (!getActivity().getOutputPorts().isEmpty()) {
+ html.append("<tr><th colspan='2' align='left'>Outputs</th></tr>");
+ for (OutputActivityPort port : getActivity().getOutputPorts()) {
+ TypeDescriptor descriptor = null;
+ if (getActivity().getType().equals(WSDLServiceDescription.OUTPUT_SPLITTER_TYPE)) {
+ try {
+ descriptor = splitterAction.getTypeDescriptors().get(port.getName());
+ } catch (UnknownOperationException | IOException | ParserConfigurationException
+ | WSDLException | SAXException | JDOMException e) {
+ logger.warn("Could not find type descriptors for " + getActivity(), e);
+ }
+ }
+ if (descriptor == null) {
+ html.append(describePort(port));
+ } else {
+ html.append(describePort(port, descriptor));
+ }
+ }
+ }
+
+ return html.toString();
+ }
+
+ private String describePort(DepthPort port, TypeDescriptor descriptor) {
+ String html = "<tr><td>" + port.getName() + "</td><td>";
+ if (descriptor != null && descriptor.isOptional()) {
+ html += "<em>optional</em><br>";
+ }
+ html+="Depth:"+port.getDepth()+"<br>";
+ if (descriptor != null ) {
+ html+="<code>"+descriptor.getQname().toString()+"</code><br>";
+// if (descriptor.getDocumentation() != null && !descriptor.getDocumentation().isEmpty()){
+// html += "<p>"+descriptor.getDocumentation()+"</p>";
+// }
+ }
+
+ html+="</td></tr>";
+ return html;
+ }
+
+ private String describePort(DepthPort port) {
+ String html = "<tr><td>" + port.getName() + "</td><td>";
+ html += "Depth:" + port.getDepth() + "<br>";
+ html += "</td></tr>";
+ return html;
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityConfigurationView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityConfigurationView.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityConfigurationView.java
new file mode 100644
index 0000000..59470f7
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityConfigurationView.java
@@ -0,0 +1,445 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.net.URI;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.SwingConstants;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+import javax.swing.plaf.basic.BasicComboBoxRenderer;
+
+import org.apache.taverna.activities.wsdl.security.SecurityProfiles;
+import org.apache.taverna.lang.ui.DialogTextArea;
+import org.apache.taverna.security.credentialmanager.CredentialManager;
+import org.apache.taverna.workbench.ui.credentialmanager.CredentialManagerUI;
+import org.apache.taverna.workbench.ui.views.contextualviews.activity.ActivityConfigurationPanel;
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+/**
+ * Configuration dialog for WSDL activity.
+ *
+ * @author Alex Nenadic
+ */
+@SuppressWarnings("serial")
+public class WSDLActivityConfigurationView extends ActivityConfigurationPanel implements ItemListener {
+
+ private CredentialManager credentialManager;
+ private CredentialManagerUI credManagerUI;
+
+ private ButtonGroup buttonGroup;
+ private JRadioButton noSecurityRadioButton;
+ private JLabel noSecurityLabel;
+ private JRadioButton httpSecurityAuthNRadioButton;
+ private JLabel httpSecurityAuthNLabel;
+ private JRadioButton wsSecurityAuthNRadioButton;
+ private JLabel wsSecurityAuthNLabel;
+
+ // Password types
+ private final String PLAINTEXT_PASSWORD = "Plaintext password";
+ private final String DIGEST_PASSWORD = "Digest password";
+ private String[] passwordTypes = new String[] { PLAINTEXT_PASSWORD, DIGEST_PASSWORD };
+ private String[] tooltips = new String[] {
+ "Password will be sent in plaintext (which is OK if service is using HTTPS)",
+ "Password will be digested (cryptographically hashed) before sending" };
+ private JComboBox<String> passwordTypeComboBox;
+ private JCheckBox addTimestampCheckBox;
+ private JButton setHttpUsernamePasswordButton;
+ private JButton setWsdlUsernamePasswordButton;
+
+ // private Logger logger = Logger.getLogger(WSDLActivityConfigurationView.class);
+
+ public WSDLActivityConfigurationView(Activity activity, CredentialManager credentialManager) {
+ super(activity);
+ this.credentialManager = credentialManager;
+ initialise();
+ }
+
+ @Override
+ protected void initialise() {
+ super.initialise();
+
+ int gridy = 0;
+
+ // title panel
+ JPanel titlePanel = new JPanel(new BorderLayout());
+ titlePanel.setBackground(Color.WHITE);
+ JLabel titleLabel = new JLabel("Security configuration");
+ titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD, 13.5f));
+ titleLabel.setBorder(new EmptyBorder(10, 10, 0, 10));
+ DialogTextArea titleMessage = new DialogTextArea(
+ "Select a security profile for the service");
+ titleMessage.setMargin(new Insets(5, 20, 10, 10));
+ titleMessage.setFont(titleMessage.getFont().deriveFont(11f));
+ titleMessage.setEditable(false);
+ titleMessage.setFocusable(false);
+ titlePanel.setBorder(new EmptyBorder(10, 10, 0, 10));
+ titlePanel.add(titleLabel, BorderLayout.NORTH);
+ titlePanel.add(titleMessage, BorderLayout.CENTER);
+ addDivider(titlePanel, SwingConstants.BOTTOM, true);
+
+ // Main panel
+ JPanel mainPanel = new JPanel();
+ mainPanel.setLayout(new GridBagLayout());
+ mainPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
+
+ // Create the radio buttons
+ noSecurityRadioButton = new JRadioButton("None");
+ noSecurityRadioButton.addItemListener(this);
+
+ wsSecurityAuthNRadioButton = new JRadioButton(
+ "WS-Security username and password authentication");
+ wsSecurityAuthNRadioButton.addItemListener(this);
+
+ httpSecurityAuthNRadioButton = new JRadioButton("HTTP username and password authentication");
+ httpSecurityAuthNRadioButton.addItemListener(this);
+
+ // Group the radio buttons
+ buttonGroup = new ButtonGroup();
+ buttonGroup.add(noSecurityRadioButton);
+ buttonGroup.add(wsSecurityAuthNRadioButton);
+ buttonGroup.add(httpSecurityAuthNRadioButton);
+
+ GridBagConstraints gbc = new GridBagConstraints();
+ gbc.weightx = 1.0;
+ gbc.weighty = 0.0;
+
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(5, 10, 0, 0);
+ mainPanel.add(noSecurityRadioButton, gbc);
+
+ noSecurityLabel = new JLabel("Service requires no security");
+ noSecurityLabel.setFont(noSecurityLabel.getFont().deriveFont(11f));
+ // addDivider(noSecurityLabel, SwingConstants.BOTTOM, false);
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(0, 40, 10, 10);
+ mainPanel.add(noSecurityLabel, gbc);
+
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(5, 10, 0, 0);
+ mainPanel.add(httpSecurityAuthNRadioButton, gbc);
+
+ ActionListener usernamePasswordListener = new ActionListener() {
+
+ public void actionPerformed(ActionEvent e) {
+ // Get Credential Manager UI to get the username and password for the service
+ if (credManagerUI == null) {
+ credManagerUI = new CredentialManagerUI(credentialManager);
+ }
+ credManagerUI.newPasswordForService(URI.create(getJson().get("operation")
+ .get("wsdl").textValue()));
+ }
+ };
+
+ httpSecurityAuthNLabel = new JLabel(
+ "Service requires HTTP username and password in order to authenticate the user");
+ httpSecurityAuthNLabel.setFont(httpSecurityAuthNLabel.getFont().deriveFont(11f));
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(0, 40, 10, 10);
+ mainPanel.add(httpSecurityAuthNLabel, gbc);
+
+ // Set username and password button;
+ setHttpUsernamePasswordButton = new JButton("Set username and password");
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.insets = new Insets(0, 40, 10, 10);
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0; // add any vertical space to this component
+ mainPanel.add(setHttpUsernamePasswordButton, gbc);
+ setHttpUsernamePasswordButton.addActionListener(usernamePasswordListener);
+
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(5, 10, 0, 0);
+ mainPanel.add(wsSecurityAuthNRadioButton, gbc);
+
+ wsSecurityAuthNLabel = new JLabel(
+ "Service requires WS-Security username and password in order to authenticate the user");
+ wsSecurityAuthNLabel.setFont(wsSecurityAuthNLabel.getFont().deriveFont(11f));
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(0, 40, 0, 0);
+ mainPanel.add(wsSecurityAuthNLabel, gbc);
+
+ // Password type list
+ passwordTypeComboBox = new JComboBox<>(passwordTypes);
+ passwordTypeComboBox.setRenderer(new ComboBoxTooltipRenderer());
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(10, 40, 0, 0);
+ mainPanel.add(passwordTypeComboBox, gbc);
+
+ // 'Add timestamp' checkbox
+ addTimestampCheckBox = new JCheckBox("Add a timestamp to SOAP message");
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.insets = new Insets(5, 40, 10, 10);
+ mainPanel.add(addTimestampCheckBox, gbc);
+
+ // Set username and password button;
+ setWsdlUsernamePasswordButton = new JButton("Set username and password");
+ gbc.gridx = 0;
+ gbc.gridy = gridy++;
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.insets = new Insets(0, 40, 10, 10);
+ gbc.weightx = 1.0;
+ gbc.weighty = 1.0; // add any vertical space to this component
+ mainPanel.add(setWsdlUsernamePasswordButton, gbc);
+ setWsdlUsernamePasswordButton.addActionListener(usernamePasswordListener);
+
+ addDivider(mainPanel, SwingConstants.BOTTOM, true);
+
+ // Enable/disable controls based on what is the current security profiles
+ if (!getJson().has("securityProfile")) {
+ noSecurityRadioButton.setSelected(true);
+ } else {
+ URI securityProfile = URI.create(getJson().get("securityProfile").textValue());
+ if (securityProfile.equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD)) {
+ wsSecurityAuthNRadioButton.setSelected(true);
+ }
+ if (securityProfile.equals(SecurityProfiles.HTTP_BASIC_AUTHN)
+ || securityProfile.equals(SecurityProfiles.HTTP_DIGEST_AUTHN)) {
+ httpSecurityAuthNRadioButton.setSelected(true);
+ }
+ if (securityProfile.equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD)) {
+ passwordTypeComboBox.setSelectedItem(PLAINTEXT_PASSWORD);
+ } else if (securityProfile
+ .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD)) {
+ passwordTypeComboBox.setSelectedItem(DIGEST_PASSWORD);
+ }
+ if (securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD)
+ || securityProfile
+ .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD)) {
+ addTimestampCheckBox.setSelected(true);
+ } else {
+ addTimestampCheckBox.setSelected(false);
+ }
+ }
+
+ // Put everything together
+ JPanel layoutPanel = new JPanel(new BorderLayout());
+ layoutPanel.add(titlePanel, BorderLayout.NORTH);
+ layoutPanel.add(mainPanel, BorderLayout.CENTER);
+ layoutPanel.setPreferredSize(new Dimension(550, 400));
+
+ add(layoutPanel);
+ }
+
+ @Override
+ public boolean checkValues() {
+ return true;
+ }
+
+ @Override
+ public void noteConfiguration() {
+
+ if (noSecurityRadioButton.isSelected()) {
+ getJson().remove("securityProfile"); // no security required
+ } else if (httpSecurityAuthNRadioButton.isSelected()) {
+ getJson().put("securityProfile", SecurityProfiles.HTTP_BASIC_AUTHN.toString());
+ } else if (wsSecurityAuthNRadioButton.isSelected()) { // plaintext password
+ if (passwordTypeComboBox.getSelectedItem().equals(PLAINTEXT_PASSWORD)) {
+ if (addTimestampCheckBox.isSelected()) {
+ getJson().put(
+ "securityProfile",
+ SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD
+ .toString());
+ } else {
+ getJson().put("securityProfile",
+ SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD.toString());
+ }
+ } else { // digest password
+ if (addTimestampCheckBox.isSelected()) {
+ getJson().put(
+ "securityProfile",
+ SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD
+ .toString());
+ } else {
+ getJson().put("securityProfile",
+ SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD.toString());
+ }
+ }
+ }
+ }
+
+ /**
+ * Disable/enable items on the panel based on this radio button
+ * has been selected.
+ */
+ public void itemStateChanged(ItemEvent e) {
+
+ Object source = e.getItemSelectable();
+ if (source == noSecurityRadioButton) {
+ httpSecurityAuthNLabel.setEnabled(false);
+ wsSecurityAuthNLabel.setEnabled(false);
+ passwordTypeComboBox.setEnabled(false);
+ setHttpUsernamePasswordButton.setEnabled(false);
+ setWsdlUsernamePasswordButton.setEnabled(false);
+ addTimestampCheckBox.setEnabled(false);
+
+ noSecurityLabel.setEnabled(true);
+ } else if (source == httpSecurityAuthNRadioButton) {
+ noSecurityLabel.setEnabled(false);
+ httpSecurityAuthNLabel.setEnabled(true);
+ wsSecurityAuthNLabel.setEnabled(false);
+ passwordTypeComboBox.setEnabled(false);
+ setHttpUsernamePasswordButton.setEnabled(true);
+ setWsdlUsernamePasswordButton.setEnabled(false);
+ addTimestampCheckBox.setEnabled(false);
+ } else if (source == wsSecurityAuthNRadioButton) {
+ noSecurityLabel.setEnabled(false);
+ httpSecurityAuthNLabel.setEnabled(false);
+ wsSecurityAuthNLabel.setEnabled(true);
+ passwordTypeComboBox.setEnabled(true);
+ setHttpUsernamePasswordButton.setEnabled(false);
+ setWsdlUsernamePasswordButton.setEnabled(true);
+ addTimestampCheckBox.setEnabled(true);
+ }
+ }
+
+ /**
+ * A renderer for JComboBox that will display a tooltip for
+ * the selected item.
+ */
+ class ComboBoxTooltipRenderer extends BasicComboBoxRenderer {
+ public Component getListCellRendererComponent(JList list, Object value, int index,
+ boolean isSelected, boolean cellHasFocus) {
+ if (isSelected) {
+ setBackground(list.getSelectionBackground());
+ setForeground(list.getSelectionForeground());
+ if (-1 < index) {
+ list.setToolTipText(tooltips[index]);
+ }
+ } else {
+ setBackground(list.getBackground());
+ setForeground(list.getForeground());
+ }
+ setFont(list.getFont());
+ setText((value == null) ? "" : value.toString());
+ return this;
+ }
+ }
+
+ /**
+ * Adds a light gray or etched border to the top or bottom of a JComponent.
+ *
+ * @author David Withers
+ * @param component
+ */
+ protected void addDivider(JComponent component, final int position, final boolean etched) {
+ component.setBorder(new Border() {
+ private final Color borderColor = new Color(.6f, .6f, .6f);
+
+ public Insets getBorderInsets(Component c) {
+ if (position == SwingConstants.TOP) {
+ return new Insets(5, 0, 0, 0);
+ } else {
+ return new Insets(0, 0, 5, 0);
+ }
+ }
+
+ public boolean isBorderOpaque() {
+ return false;
+ }
+
+ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
+ if (position == SwingConstants.TOP) {
+ if (etched) {
+ g.setColor(borderColor);
+ g.drawLine(x, y, x + width, y);
+ g.setColor(Color.WHITE);
+ g.drawLine(x, y + 1, x + width, y + 1);
+ } else {
+ g.setColor(Color.LIGHT_GRAY);
+ g.drawLine(x, y, x + width, y);
+ }
+ } else {
+ if (etched) {
+ g.setColor(borderColor);
+ g.drawLine(x, y + height - 2, x + width, y + height - 2);
+ g.setColor(Color.WHITE);
+ g.drawLine(x, y + height - 1, x + width, y + height - 1);
+ } else {
+ g.setColor(Color.LIGHT_GRAY);
+ g.drawLine(x, y + height - 1, x + width, y + height - 1);
+ }
+ }
+ }
+
+ });
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityContextualView.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityContextualView.java
new file mode 100644
index 0000000..3e26d4c
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityContextualView.java
@@ -0,0 +1,107 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.Frame;
+
+import javax.swing.Action;
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
+import org.apache.taverna.activities.wsdl.actions.WSDLActivityConfigureAction;
+import org.apache.taverna.security.credentialmanager.CredentialManager;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@SuppressWarnings("serial")
+public class WSDLActivityContextualView extends AbstractXMLSplitterActionView {
+
+ private final ActivityIconManager activityIconManager;
+ private final ServiceDescriptionRegistry serviceDescriptionRegistry;
+ private final CredentialManager credentialManager;
+ private final FileManager fileManager;
+
+ public WSDLActivityContextualView(Activity activity, EditManager editManager, FileManager fileManager,
+ SelectionManager selectionManager, ActivityIconManager activityIconManager,
+ ColourManager colourManager, CredentialManager credentialManager,
+ ServiceDescriptionRegistry serviceDescriptionRegistry) {
+ super(activity, editManager, selectionManager, colourManager);
+ this.fileManager = fileManager;
+ this.activityIconManager = activityIconManager;
+ this.credentialManager = credentialManager;
+ this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+ }
+
+ /**
+ * Gets the component from the {@link HTMLBasedActivityContextualView} and adds buttons to it
+ * allowing XML splitters to be added
+ */
+ @Override
+ public JComponent getMainFrame() {
+ final JComponent mainFrame = super.getMainFrame();
+ JPanel flowPanel = new JPanel(new FlowLayout());
+
+ addInputSplitter(mainFrame, flowPanel);
+ addOutputSplitter(mainFrame, flowPanel);
+
+ mainFrame.add(flowPanel, BorderLayout.SOUTH);
+ return mainFrame;
+ }
+
+ @Override
+ public String getViewTitle() {
+ return "WSDL-based service";
+ }
+
+ @Override
+ protected String getRawTableRowsHtml() {
+ JsonNode operation = getConfigBean().getJson().get("operation");
+ String summary = "<tr><td>WSDL</td><td>" + operation.get("wsdl").textValue();
+ summary += "</td></tr><tr><td>Operation</td><td>" + operation.get("name").textValue()
+ + "</td></tr>";
+ boolean securityConfigured = getConfigBean().getJson().has("securityProfile");
+ summary += "<tr><td>Secure</td><td>" + securityConfigured + "</td></tr>";
+ summary += "</tr>";
+ summary += describePorts();
+ return summary;
+ }
+
+ @Override
+ public Action getConfigureAction(Frame owner) {
+ return new WSDLActivityConfigureAction(getActivity(), owner, editManager, fileManager,
+ activityIconManager, serviceDescriptionRegistry, credentialManager);
+ }
+
+ @Override
+ public int getPreferredPosition() {
+ return 100;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityViewFactory.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityViewFactory.java
new file mode 100644
index 0000000..9ec1966
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/WSDLActivityViewFactory.java
@@ -0,0 +1,87 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceDescription;
+import org.apache.taverna.security.credentialmanager.CredentialManager;
+import org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry;
+import org.apache.taverna.workbench.activityicons.ActivityIconManager;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.file.FileManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
+import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+public class WSDLActivityViewFactory implements ContextualViewFactory<Activity> {
+
+ private EditManager editManager;
+ private ActivityIconManager activityIconManager;
+ private ColourManager colourManager;
+ private SelectionManager selectionManager;
+ private ServiceDescriptionRegistry serviceDescriptionRegistry;
+ private CredentialManager credentialManager;
+ private FileManager fileManager;
+
+ public boolean canHandle(Object object) {
+ return object instanceof Activity
+ && ((Activity) object).getType().equals(WSDLServiceDescription.ACTIVITY_TYPE);
+ }
+
+ public List<ContextualView> getViews(Activity activity) {
+ return Arrays
+ .asList(new ContextualView[] { new WSDLActivityContextualView(activity,
+ editManager, fileManager, selectionManager, activityIconManager, colourManager,
+ credentialManager, serviceDescriptionRegistry) });
+ }
+
+ public void setEditManager(EditManager editManager) {
+ this.editManager = editManager;
+ }
+
+ public void setFileManager(FileManager fileManager) {
+ this.fileManager = fileManager;
+ }
+
+ public void setSelectionManager(SelectionManager selectionManager) {
+ this.selectionManager = selectionManager;
+ }
+
+ public void setActivityIconManager(ActivityIconManager activityIconManager) {
+ this.activityIconManager = activityIconManager;
+ }
+
+ public void setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+ public void setServiceDescriptionRegistry(ServiceDescriptionRegistry serviceDescriptionRegistry) {
+ this.serviceDescriptionRegistry = serviceDescriptionRegistry;
+ }
+
+ public void setCredentialManager(CredentialManager credentialManager) {
+ this.credentialManager = credentialManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterContextualView.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterContextualView.java
new file mode 100644
index 0000000..a6a9877
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterContextualView.java
@@ -0,0 +1,77 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+
+import javax.swing.JComponent;
+import javax.swing.JPanel;
+
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.actions.activity.HTMLBasedActivityContextualView;
+
+import org.apache.log4j.Logger;
+
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+@SuppressWarnings("serial")
+public class XMLSplitterContextualView extends AbstractXMLSplitterActionView {
+
+ public XMLSplitterContextualView(Activity activity,
+ EditManager editManager, SelectionManager selectionManager, ColourManager colourManager) {
+ super(activity, editManager, selectionManager, colourManager);
+ }
+
+ static Logger logger = Logger.getLogger(XMLSplitterContextualView.class);
+
+ /**
+ * Gets the component from the {@link HTMLBasedActivityContextualView} and adds buttons to it
+ * allowing XML splitters to be added
+ */
+ @Override
+ public JComponent getMainFrame() {
+ final JComponent mainFrame = super.getMainFrame();
+ JPanel flowPanel = new JPanel(new FlowLayout());
+
+ addInputSplitter(mainFrame, flowPanel);
+ addOutputSplitter(mainFrame, flowPanel);
+ mainFrame.add(flowPanel, BorderLayout.SOUTH);
+ return mainFrame;
+ }
+
+ @Override
+ public String getViewTitle() {
+ return "XML splitter";
+ }
+
+ @Override
+ protected String getRawTableRowsHtml() {
+ return describePorts();
+ }
+
+ @Override
+ public int getPreferredPosition() {
+ return 100;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterViewFactory.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterViewFactory.java b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterViewFactory.java
new file mode 100644
index 0000000..9453254
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/java/org/apache/taverna/activities/wsdl/views/XMLSplitterViewFactory.java
@@ -0,0 +1,63 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceDescription;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.apache.taverna.workbench.edits.EditManager;
+import org.apache.taverna.workbench.selection.SelectionManager;
+import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;
+import org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory;
+import org.apache.taverna.scufl2.api.activity.Activity;
+
+public class XMLSplitterViewFactory implements ContextualViewFactory<Activity> {
+
+ private EditManager editManager;
+ private SelectionManager selectionManager;
+ private ColourManager colourManager;
+
+ public boolean canHandle(Object object) {
+
+ return object instanceof Activity
+ && (((Activity) object).getType().equals(WSDLServiceDescription.INPUT_SPLITTER_TYPE)
+ || ((Activity) object).getType().equals(WSDLServiceDescription.OUTPUT_SPLITTER_TYPE));
+ }
+
+ public List<ContextualView> getViews(Activity activity) {
+ return Arrays.asList(new ContextualView[] { new XMLSplitterContextualView(activity,
+ editManager, selectionManager, colourManager) });
+ }
+
+ public void setEditManager(EditManager editManager) {
+ this.editManager = editManager;
+ }
+
+ public void setSelectionManager(SelectionManager selectionManager) {
+ this.selectionManager = selectionManager;
+ }
+
+ public void setColourManager(ColourManager colourManager) {
+ this.colourManager = colourManager;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
deleted file mode 100644
index 3bf8341..0000000
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider
+++ /dev/null
@@ -1 +0,0 @@
-net.sf.taverna.t2.activities.wsdl.servicedescriptions.WSDLServiceProvider
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
deleted file mode 100644
index 7b0e040..0000000
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.ui.menu.MenuComponent
+++ /dev/null
@@ -1,5 +0,0 @@
-net.sf.taverna.t2.activities.wsdl.menu.AddXMLInputSplitterForWSDLActivityMenuAction
-net.sf.taverna.t2.activities.wsdl.menu.AddXMLInputSplitterForXMLInputSplitterMenuAction
-net.sf.taverna.t2.activities.wsdl.menu.AddXMLOutputSplitterForWSDLActivityMenuAction
-net.sf.taverna.t2.activities.wsdl.menu.AddXMLOutputSplitterForXMLOutputSplitterMenuAction
-net.sf.taverna.t2.activities.wsdl.menu.ConfigureWSDLMenuAction
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
deleted file mode 100644
index 17d19e3..0000000
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI
+++ /dev/null
@@ -1,3 +0,0 @@
-net.sf.taverna.t2.activities.wsdl.servicedescriptions.WSDLActivityIcon
-net.sf.taverna.t2.activities.wsdl.servicedescriptions.XMLInputSplitterActivityIcon
-net.sf.taverna.t2.activities.wsdl.servicedescriptions.XMLOutputSplitterActivityIcon
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
deleted file mode 100644
index 04d48eb..0000000
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory
+++ /dev/null
@@ -1,2 +0,0 @@
-net.sf.taverna.t2.activities.wsdl.views.WSDLActivityViewFactory
-net.sf.taverna.t2.activities.wsdl.views.XMLSplitterViewFactory
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
new file mode 100644
index 0000000..c25d541
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.servicedescriptions.ServiceDescriptionProvider
@@ -0,0 +1 @@
+org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceProvider
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
new file mode 100644
index 0000000..15f6441
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.ui.menu.MenuComponent
@@ -0,0 +1,5 @@
+org.apache.taverna.activities.wsdl.menu.AddXMLInputSplitterForWSDLActivityMenuAction
+org.apache.taverna.activities.wsdl.menu.AddXMLInputSplitterForXMLInputSplitterMenuAction
+org.apache.taverna.activities.wsdl.menu.AddXMLOutputSplitterForWSDLActivityMenuAction
+org.apache.taverna.activities.wsdl.menu.AddXMLOutputSplitterForXMLOutputSplitterMenuAction
+org.apache.taverna.activities.wsdl.menu.ConfigureWSDLMenuAction
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
new file mode 100644
index 0000000..0f3274f
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.activityicons.ActivityIconSPI
@@ -0,0 +1,3 @@
+org.apache.taverna.activities.wsdl.servicedescriptions.WSDLActivityIcon
+org.apache.taverna.activities.wsdl.servicedescriptions.XMLInputSplitterActivityIcon
+org.apache.taverna.activities.wsdl.servicedescriptions.XMLOutputSplitterActivityIcon
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
new file mode 100644
index 0000000..bcc7d37
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/services/org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory
@@ -0,0 +1,2 @@
+org.apache.taverna.activities.wsdl.views.WSDLActivityViewFactory
+org.apache.taverna.activities.wsdl.views.XMLSplitterViewFactory
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context-osgi.xml b/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context-osgi.xml
index ac79064..beb6b73 100644
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context-osgi.xml
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context-osgi.xml
@@ -6,14 +6,14 @@
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi.xsd">
- <service ref="WSDLActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
- <service ref="XMLInputSplitterActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
- <service ref="XMLOutputSplitterActivityIcon" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconSPI" />
+ <service ref="WSDLActivityIcon" interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" />
+ <service ref="XMLInputSplitterActivityIcon" interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" />
+ <service ref="XMLOutputSplitterActivityIcon" interface="org.apache.taverna.workbench.activityicons.ActivityIconSPI" />
<service ref="WSDLServiceProvider">
<interfaces>
- <beans:value>net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider</beans:value>
- <beans:value>net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider</beans:value>
+ <beans:value>org.apache.taverna.servicedescriptions.ServiceDescriptionProvider</beans:value>
+ <beans:value>org.apache.taverna.servicedescriptions.ConfigurableServiceProvider</beans:value>
</interfaces>
</service>
@@ -23,15 +23,15 @@
<service ref="AddXMLOutputSplitterForXMLOutputSplitterMenuAction" auto-export="interfaces" />
<service ref="ConfigureWSDLMenuAction" auto-export="interfaces" />
- <service ref="WSDLActivityViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
- <service ref="XMLSplitterViewFactory" interface="net.sf.taverna.t2.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+ <service ref="WSDLActivityViewFactory" interface="org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
+ <service ref="XMLSplitterViewFactory" interface="org.apache.taverna.workbench.ui.views.contextualviews.activity.ContextualViewFactory" />
- <reference id="editManager" interface="net.sf.taverna.t2.workbench.edits.EditManager" />
- <reference id="fileManager" interface="net.sf.taverna.t2.workbench.file.FileManager" />
- <reference id="activityIconManager" interface="net.sf.taverna.t2.workbench.activityicons.ActivityIconManager" />
- <reference id="colourManager" interface="net.sf.taverna.t2.workbench.configuration.colour.ColourManager" />
- <reference id="serviceDescriptionRegistry" interface="net.sf.taverna.t2.servicedescriptions.ServiceDescriptionRegistry" />
- <reference id="credentialManager" interface="net.sf.taverna.t2.security.credentialmanager.CredentialManager" />
- <reference id="selectionManager" interface="net.sf.taverna.t2.workbench.selection.SelectionManager" />
+ <reference id="editManager" interface="org.apache.taverna.workbench.edits.EditManager" />
+ <reference id="fileManager" interface="org.apache.taverna.workbench.file.FileManager" />
+ <reference id="activityIconManager" interface="org.apache.taverna.workbench.activityicons.ActivityIconManager" />
+ <reference id="colourManager" interface="org.apache.taverna.workbench.configuration.colour.ColourManager" />
+ <reference id="serviceDescriptionRegistry" interface="org.apache.taverna.servicedescriptions.ServiceDescriptionRegistry" />
+ <reference id="credentialManager" interface="org.apache.taverna.security.credentialmanager.CredentialManager" />
+ <reference id="selectionManager" interface="org.apache.taverna.workbench.selection.SelectionManager" />
</beans:beans>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context.xml
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context.xml b/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context.xml
index fede275..013fdf1 100644
--- a/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context.xml
+++ b/taverna-wsdl-activity-ui/src/main/resources/META-INF/spring/wsdl-activity-ui-context.xml
@@ -3,32 +3,32 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="WSDLActivityIcon" class="net.sf.taverna.t2.activities.wsdl.servicedescriptions.WSDLActivityIcon" />
- <bean id="XMLInputSplitterActivityIcon" class="net.sf.taverna.t2.activities.wsdl.servicedescriptions.XMLInputSplitterActivityIcon" />
- <bean id="XMLOutputSplitterActivityIcon" class="net.sf.taverna.t2.activities.wsdl.servicedescriptions.XMLOutputSplitterActivityIcon" />
+ <bean id="WSDLActivityIcon" class="org.apache.taverna.activities.wsdl.servicedescriptions.WSDLActivityIcon" />
+ <bean id="XMLInputSplitterActivityIcon" class="org.apache.taverna.activities.wsdl.servicedescriptions.XMLInputSplitterActivityIcon" />
+ <bean id="XMLOutputSplitterActivityIcon" class="org.apache.taverna.activities.wsdl.servicedescriptions.XMLOutputSplitterActivityIcon" />
- <bean id="WSDLServiceProvider" class="net.sf.taverna.t2.activities.wsdl.servicedescriptions.WSDLServiceProvider">
+ <bean id="WSDLServiceProvider" class="org.apache.taverna.activities.wsdl.servicedescriptions.WSDLServiceProvider">
<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
<property name="credentialManager" ref="credentialManager" />
</bean>
- <bean id="AddXMLInputSplitterForWSDLActivityMenuAction" class="net.sf.taverna.t2.activities.wsdl.menu.AddXMLInputSplitterForWSDLActivityMenuAction">
+ <bean id="AddXMLInputSplitterForWSDLActivityMenuAction" class="org.apache.taverna.activities.wsdl.menu.AddXMLInputSplitterForWSDLActivityMenuAction">
<property name="editManager" ref="editManager" />
<property name="selectionManager" ref="selectionManager" />
</bean>
- <bean id="AddXMLInputSplitterForXMLInputSplitterMenuAction" class="net.sf.taverna.t2.activities.wsdl.menu.AddXMLInputSplitterForXMLInputSplitterMenuAction">
+ <bean id="AddXMLInputSplitterForXMLInputSplitterMenuAction" class="org.apache.taverna.activities.wsdl.menu.AddXMLInputSplitterForXMLInputSplitterMenuAction">
<property name="editManager" ref="editManager" />
<property name="selectionManager" ref="selectionManager" />
</bean>
- <bean id="AddXMLOutputSplitterForWSDLActivityMenuAction" class="net.sf.taverna.t2.activities.wsdl.menu.AddXMLOutputSplitterForWSDLActivityMenuAction">
+ <bean id="AddXMLOutputSplitterForWSDLActivityMenuAction" class="org.apache.taverna.activities.wsdl.menu.AddXMLOutputSplitterForWSDLActivityMenuAction">
<property name="editManager" ref="editManager" />
<property name="selectionManager" ref="selectionManager" />
</bean>
- <bean id="AddXMLOutputSplitterForXMLOutputSplitterMenuAction" class="net.sf.taverna.t2.activities.wsdl.menu.AddXMLOutputSplitterForXMLOutputSplitterMenuAction">
+ <bean id="AddXMLOutputSplitterForXMLOutputSplitterMenuAction" class="org.apache.taverna.activities.wsdl.menu.AddXMLOutputSplitterForXMLOutputSplitterMenuAction">
<property name="editManager" ref="editManager" />
<property name="selectionManager" ref="selectionManager" />
</bean>
- <bean id="ConfigureWSDLMenuAction" class="net.sf.taverna.t2.activities.wsdl.menu.ConfigureWSDLMenuAction">
+ <bean id="ConfigureWSDLMenuAction" class="org.apache.taverna.activities.wsdl.menu.ConfigureWSDLMenuAction">
<property name="editManager" ref="editManager" />
<property name="fileManager" ref="fileManager" />
<property name="activityIconManager" ref="activityIconManager" />
@@ -36,7 +36,7 @@
<property name="credentialManager" ref="credentialManager" />
</bean>
- <bean id="WSDLActivityViewFactory" class="net.sf.taverna.t2.activities.wsdl.views.WSDLActivityViewFactory">
+ <bean id="WSDLActivityViewFactory" class="org.apache.taverna.activities.wsdl.views.WSDLActivityViewFactory">
<property name="editManager" ref="editManager" />
<property name="fileManager" ref="fileManager" />
<property name="activityIconManager" ref="activityIconManager" />
@@ -44,7 +44,7 @@
<property name="serviceDescriptionRegistry" ref="serviceDescriptionRegistry" />
<property name="credentialManager" ref="credentialManager" />
</bean>
- <bean id="XMLSplitterViewFactory" class="net.sf.taverna.t2.activities.wsdl.views.XMLSplitterViewFactory">
+ <bean id="XMLSplitterViewFactory" class="org.apache.taverna.activities.wsdl.views.XMLSplitterViewFactory">
<property name="editManager" ref="editManager" />
<property name="selectionManager" ref="selectionManager" />
<property name="colourManager" ref="colourManager" />
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/test/java/net/sf/taverna/t2/activities/wsdl/views/TestWSDLActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/test/java/net/sf/taverna/t2/activities/wsdl/views/TestWSDLActivityContextualView.java b/taverna-wsdl-activity-ui/src/test/java/net/sf/taverna/t2/activities/wsdl/views/TestWSDLActivityContextualView.java
deleted file mode 100644
index 0fa054b..0000000
--- a/taverna-wsdl-activity-ui/src/test/java/net/sf/taverna/t2/activities/wsdl/views/TestWSDLActivityContextualView.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl.views;
-
-import static org.junit.Assert.assertNull;
-
-import org.junit.Before;
-
-import uk.org.taverna.scufl2.api.activity.Activity;
-import uk.org.taverna.scufl2.api.configurations.Configuration;
-
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-public class TestWSDLActivityContextualView {
-
- Activity a;
-
- @Before
- public void setUp() throws Exception {
- a=new Activity();
- Configuration configuration = new Configuration();
- ObjectNode json = (ObjectNode) configuration.getJson();
- ObjectNode operation = json.objectNode();
- operation.put("name", "getReport");
- json.set("operation", operation);
- String wsdlUrl=TestWSDLActivityContextualView.class.getResource("/GMService.wsdl").toExternalForm();
- operation.put("wsdl", wsdlUrl);
- configuration.setConfigures(a);
- }
-
- public void testConfigurationAction() {
- WSDLActivityContextualView view = new WSDLActivityContextualView(a, null, null, null, null, null, null, null);
- assertNull("WSDL has no configure action, so should be null",view.getConfigureAction(null));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-wsdl-activity-ui/src/test/java/org/apache/taverna/activities/wsdl/views/TestWSDLActivityContextualView.java
----------------------------------------------------------------------
diff --git a/taverna-wsdl-activity-ui/src/test/java/org/apache/taverna/activities/wsdl/views/TestWSDLActivityContextualView.java b/taverna-wsdl-activity-ui/src/test/java/org/apache/taverna/activities/wsdl/views/TestWSDLActivityContextualView.java
new file mode 100644
index 0000000..4ca3d72
--- /dev/null
+++ b/taverna-wsdl-activity-ui/src/test/java/org/apache/taverna/activities/wsdl/views/TestWSDLActivityContextualView.java
@@ -0,0 +1,52 @@
+/*
+* 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.
+*/
+
+package org.apache.taverna.activities.wsdl.views;
+
+import static org.junit.Assert.assertNull;
+
+import org.junit.Before;
+
+import org.apache.taverna.scufl2.api.activity.Activity;
+import org.apache.taverna.scufl2.api.configurations.Configuration;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+public class TestWSDLActivityContextualView {
+
+ Activity a;
+
+ @Before
+ public void setUp() throws Exception {
+ a=new Activity();
+ Configuration configuration = new Configuration();
+ ObjectNode json = (ObjectNode) configuration.getJson();
+ ObjectNode operation = json.objectNode();
+ operation.put("name", "getReport");
+ json.set("operation", operation);
+ String wsdlUrl=TestWSDLActivityContextualView.class.getResource("/GMService.wsdl").toExternalForm();
+ operation.put("wsdl", wsdlUrl);
+ configuration.setConfigures(a);
+ }
+
+ public void testConfigurationAction() {
+ WSDLActivityContextualView view = new WSDLActivityContextualView(a, null, null, null, null, null, null, null);
+ assertNull("WSDL has no configure action, so should be null",view.getConfigureAction(null));
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench-common-activities/blob/163747de/taverna-xpath-activity-ui/src/main/java/net/sf/taverna/t2/activities/xpath/ui/config/TwoFieldQueryPanel.java
----------------------------------------------------------------------
diff --git a/taverna-xpath-activity-ui/src/main/java/net/sf/taverna/t2/activities/xpath/ui/config/TwoFieldQueryPanel.java b/taverna-xpath-activity-ui/src/main/java/net/sf/taverna/t2/activities/xpath/ui/config/TwoFieldQueryPanel.java
deleted file mode 100644
index d0f131a..0000000
--- a/taverna-xpath-activity-ui/src/main/java/net/sf/taverna/t2/activities/xpath/ui/config/TwoFieldQueryPanel.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package net.sf.taverna.t2.activities.xpath.ui.config;
-
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-
-/**
- * Auxiliary class that creates a JPanel with two labels and two text fields.
- *
- * It can be used to be placed into a dialog made by JOptionPane to get two
- * input values, not just one.
- *
- * @author Sergejs Aleksejevs
- */
-public class TwoFieldQueryPanel extends JPanel {
- private JTextField tfFirstValue;
- private JTextField tfSecondValue;
-
- public TwoFieldQueryPanel(String firstFieldName, String secondFieldName) {
- this(null, firstFieldName, null, secondFieldName, null);
- }
-
- public TwoFieldQueryPanel(String message, String firstFieldName,
- String secondFieldName) {
- this(message, firstFieldName, null, secondFieldName, null);
- }
-
- public TwoFieldQueryPanel(String firstFieldName,
- String firstFieldDefaultValue, String secondFieldName,
- String secondFieldDefaultValue) {
- this(null, firstFieldName, firstFieldDefaultValue, secondFieldName,
- secondFieldDefaultValue);
- }
-
- public TwoFieldQueryPanel(String message, String firstFieldName,
- String firstFieldDefaultValue, String secondFieldName,
- String secondFieldDefaultValue) {
- super();
- this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
-
- this.setLayout(new GridBagLayout());
- GridBagConstraints c = new GridBagConstraints();
-
- c.gridx = 0;
- c.gridy = 0;
- c.weightx = 0;
- c.fill = GridBagConstraints.HORIZONTAL;
- c.anchor = GridBagConstraints.WEST;
- c.insets = new Insets(3, 5, 3, 5);
-
- if (message != null && message.length() > 0) {
- c.gridwidth = 2;
- c.insets = new Insets(5, 5, 15, 5);
- this.add(new JLabel(message), c);
-
- c.gridwidth = 1;
- c.gridx = 0;
- c.gridy++;
- c.insets = new Insets(3, 5, 3, 5);
- }
-
- this.add(new JLabel(firstFieldName), c);
-
- c.gridx++;
- c.weightx = 1.0;
- tfFirstValue = new JTextField(20);
- if (firstFieldDefaultValue != null) {
- tfFirstValue.setText(firstFieldDefaultValue);
- }
- tfFirstValue.selectAll();
- tfFirstValue.requestFocusInWindow();
- this.add(tfFirstValue, c);
-
- c.gridx = 0;
- c.gridy++;
- c.weightx = 0;
- this.add(new JLabel(secondFieldName), c);
-
- c.gridx++;
- c.weightx = 1.0;
- tfSecondValue = new JTextField(20);
- if (secondFieldDefaultValue != null) {
- tfSecondValue.setText(secondFieldDefaultValue);
- }
- tfSecondValue.selectAll();
- this.add(tfSecondValue, c);
- }
-
- /**
- * @return Trimmed value from the first text field. Guaranteed to be
- * non-null.
- */
- public String getFirstValue() {
- return (tfFirstValue.getText().trim());
- }
-
- /**
- * @return Trimmed value from the second text field. Guaranteed to be
- * non-null.
- */
- public String getSecondValue() {
- return (tfSecondValue.getText().trim());
- }
-
-}