Add the support of complex data for a specific WPS
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/commit/e7cb22cc Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/tree/e7cb22cc Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/diff/e7cb22cc Branch: refs/heads/taverna2 Commit: e7cb22cc128a60a37041194144481d70b17aa190 Parents: acda22a Author: edikaradumi <[email protected]> Authored: Wed Jul 20 23:46:26 2016 +0100 Committer: edikaradumi <[email protected]> Committed: Wed Jul 20 23:46:26 2016 +0100 ---------------------------------------------------------------------- .../ui/serviceprovider/GisServiceProvider.java | 41 +++++++---------- .../org/apache/taverna/gis/GisActivity.java | 47 +++++++++++++++++++- 2 files changed, 62 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/e7cb22cc/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java index a241b00..24e8604 100644 --- a/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java +++ b/apache-taverna-plugin-gis-activity-ui/src/main/java/org/apache/taverna/gis/ui/serviceprovider/GisServiceProvider.java @@ -1,6 +1,5 @@ package org.apache.taverna.gis.ui.serviceprovider; -import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.Arrays; @@ -8,15 +7,12 @@ import java.util.List; import javax.swing.Icon; -import org.n52.wps.client.WPSClientSession; +import org.apache.taverna.gis.client.*; +import org.apache.taverna.gis.client.impl.TypeDescriptor; -import net.opengis.wps.x100.InputDescriptionType; -import net.opengis.wps.x100.OutputDescriptionType; -import net.opengis.wps.x100.ProcessDescriptionType; import net.sf.taverna.t2.servicedescriptions.AbstractConfigurableServiceProvider; import net.sf.taverna.t2.servicedescriptions.ConfigurableServiceProvider; import net.sf.taverna.t2.servicedescriptions.ServiceDescription; -import net.sf.taverna.t2.servicedescriptions.ServiceDescriptionProvider; import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean; import net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean; @@ -51,28 +47,23 @@ public class GisServiceProvider extends AbstractConfigurableServiceProvider<GisS // TODO: Optional: set description (Set a better description service.setDescription(getConfiguration().getProcessIdentifier()); - // TODO: Exctract in a separate method // Get input ports - WPSClientSession wpsClient = WPSClientSession.getInstance(); - - ProcessDescriptionType processDescription; + IGisClient gisServiceClient = GisClientFactory.getInstance().getGisClient(getConfiguration().getOgcServiceUri().toASCIIString()); + try { - processDescription = wpsClient - .getProcessDescription(getConfiguration().getOgcServiceUri().toString(), getConfiguration().getProcessIdentifier()); - - InputDescriptionType[] inputList = processDescription.getDataInputs() - .getInputArray(); + + List<TypeDescriptor> inputList = gisServiceClient.getTaverna2InputPorts(getConfiguration().getProcessIdentifier()); List<ActivityInputPortDefinitionBean> inputPortDefinitions = new ArrayList<ActivityInputPortDefinitionBean>(); - for (InputDescriptionType input : inputList) { + for (TypeDescriptor input : inputList) { ActivityInputPortDefinitionBean newInputPort = new ActivityInputPortDefinitionBean(); - newInputPort.setName(input.getIdentifier().getStringValue()); - newInputPort.setDepth(0); - newInputPort.setAllowsLiteralValues(true); + newInputPort.setName(input.getName()); + newInputPort.setDepth(input.getDepth()); + newInputPort.setAllowsLiteralValues(input.isAllowLiteralValues()); newInputPort.setHandledReferenceSchemes(null); - newInputPort.setTranslatedElementType(String.class); + newInputPort.setTranslatedElementType(input.getTranslatedElementType()); inputPortDefinitions.add(newInputPort); @@ -83,14 +74,14 @@ public class GisServiceProvider extends AbstractConfigurableServiceProvider<GisS // Get output ports - OutputDescriptionType[] outputList = processDescription.getProcessOutputs().getOutputArray(); + List<TypeDescriptor> outputList = gisServiceClient.getTaverna2OutputPorts(getConfiguration().getProcessIdentifier()); List<ActivityOutputPortDefinitionBean> outputPortDefinitions = new ArrayList<ActivityOutputPortDefinitionBean>(); - for( OutputDescriptionType output : outputList ) + for( TypeDescriptor output : outputList ) { ActivityOutputPortDefinitionBean newOutputPort = new ActivityOutputPortDefinitionBean(); - newOutputPort.setName(output.getIdentifier().getStringValue()); - newOutputPort.setDepth(0); + newOutputPort.setName(output.getName()); + newOutputPort.setDepth(output.getDepth()); outputPortDefinitions.add(newOutputPort); @@ -98,7 +89,7 @@ public class GisServiceProvider extends AbstractConfigurableServiceProvider<GisS service.setOutputPortDefinitions(outputPortDefinitions); - } catch (IOException e) { + } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-plugin-gis/blob/e7cb22cc/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java ---------------------------------------------------------------------- diff --git a/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java index a6bc792..b0ad827 100644 --- a/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java +++ b/apache-taverna-plugin-gis-activity/src/main/java/org/apache/taverna/gis/GisActivity.java @@ -59,6 +59,21 @@ public class GisActivity extends AbstractAsynchronousActivity<GisActivityConfigu // Add input ports for(ActivityInputPortDefinitionBean inputPort : configBean.getInputPortDefinitions()) { + if (inputPort.getName()=="polygon") + { + addInput("polygon_schema",0,true, null, null); + addInput("polygon_encoding",0,true, null, null); + addInput("polygon_mimetype",0,true, null, null); + + } + + if (inputPort.getName()=="line") + { + addInput("line_schema",0,true, null, null); + addInput("line_encoding",0,true, null, null); + addInput("line_mimetype",0,true, null, null); + } + addInput(inputPort.getName(),inputPort.getDepth(),inputPort.getAllowsLiteralValues(),inputPort.getHandledReferenceSchemes(), inputPort.getTranslatedElementType()); } @@ -66,6 +81,14 @@ public class GisActivity extends AbstractAsynchronousActivity<GisActivityConfigu for(ActivityOutputPortDefinitionBean outputPort : configBean.getOutputPortDefinitions()) { addOutput(outputPort.getName(),outputPort.getDepth()); + + if (outputPort.getName()=="result") + { + addOutput("result_schema",0); + addOutput("result_encoding",0); + addOutput("result_mimetype",0); + } + } } @@ -94,7 +117,21 @@ public class GisActivity extends AbstractAsynchronousActivity<GisActivityConfigu for (ActivityInputPortDefinitionBean activityInputPort : configBean.getInputPortDefinitions()) { String portValue = (String) referenceService.renderIdentifier(inputs.get(activityInputPort.getName()), String.class, context); - executeBuilder.addLiteralData(activityInputPort.getName(), portValue); + + if (activityInputPort.getName().equals("polygon") || activityInputPort.getName().equals("line")) + { + String schema = "application/wkt"; + String encoding = null; + String mimeType = "application/wkt"; + + executeBuilder.addComplexData(activityInputPort.getName(), + portValue, schema, encoding, mimeType); + + }else + { + executeBuilder.addLiteralData(activityInputPort.getName(), portValue); + } + } ExecuteDocument execute = executeBuilder.getExecute(); @@ -132,6 +169,14 @@ public class GisActivity extends AbstractAsynchronousActivity<GisActivityConfigu outputs.put(output.getIdentifier().getStringValue(), simpleRef); } + else + { + + simpleRef = referenceService.register(data.getComplexData().toString(), 0, true, context); + + outputs.put(output.getIdentifier().getStringValue(), simpleRef); + + } }
