public Map<String, TypeDescriptor> getTypeDescriptorsForInputPorts() throws UnknownOperationException, IOException { Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>(); List<TypeDescriptor> inputDescriptors = parser .getOperationInputParameters(configurationBean.getOperation().getOperationName()); for (TypeDescriptor descriptor : inputDescriptors) { descriptors.put(descriptor.getName(), descriptor); } return descriptors; }
public TypeDescriptor getTypeDescriptorForInputPort(String portName) throws UnknownOperationException, IOException { List<TypeDescriptor> inputDescriptors = parser .getOperationInputParameters(configurationBean.getOperation().getOperationName()); TypeDescriptor result = null; for (TypeDescriptor descriptor : inputDescriptors) { if (descriptor.getName().equals(portName)) { result = descriptor; break; } } return result; }
protected BodyBuilder createBuilder(String wsdl, String operation) throws Exception { WSDLParser parser = new WSDLParser(wsdl); return BodyBuilderFactory.instance().create(parser, operation, parser.getOperationInputParameters(operation)); } }
@Test public void testNillable() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("VSOi.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("Query").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"version","block"},new String[]{"text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); // Magic string meaning insert xsi:nil=true inputMap.put("version", "xsi:nil"); Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); System.out.println(xml); // empty string as <block> as it is not nillable assertTrue(xml.contains("<block xmlns=\"\"></block>")); // FIXME: Should not really allow nil=true here, as version is not nillable! assertTrue(xml.contains("<version xmlns=\"\" " + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " + "xsi:nil=\"true\" />")); }
protected BodyBuilder createBuilder(String wsdl, String operation) throws Exception { WSDLParser parser = new WSDLParser(wsdl); return BodyBuilderFactory.instance().create(parser, operation, parser.getOperationInputParameters(operation)); } }
@Test public void testExecute() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("eutils/eutils_lite.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("run_eInfo").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"db","tool","email"},new String[]{"text/plain","text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); inputMap.put("db", "pubmed"); inputMap.put("email", "bob.monkhouse@itv.com"); Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); assertTrue(xml.startsWith("<parameters xmlns=\"http://www.ncbi.nlm.nih.gov/soap/eutils/einfo\">")); assertTrue(xml.contains("<db>pubmed</db>")); assertTrue(! xml.contains("<tool")); assertTrue(xml.contains("<email>bob.monkhouse@itv.com</email>")); }
@Test public void testOptional() throws Exception { WSDLParser parser = new WSDLParser(WSDLTestHelper.wsdlResourcePath("VSOi.wsdl")); TypeDescriptor descriptor = parser.getOperationInputParameters("Query").get(0); XMLInputSplitter splitter = new XMLInputSplitter(descriptor,new String[]{"version","block"},new String[]{"text/plain","text/plain"},new String[]{"output"}); Map<String,Object> inputMap = new HashMap<String, Object>(); // connect none of the inputs Map<String,String> outputMap = splitter.execute(inputMap); assertNotNull("there should be an output named 'output'",outputMap.containsKey("output")); String xml = outputMap.get("output"); // empty string as <block> as it is not nillable assertTrue(xml.contains("<block xmlns=\"\"></block>")); // minOccurs=0 - so it should not be there assertTrue(! xml.contains("<version>")); }
List inputs = parser.getOperationInputParameters(proc .getOperationName()); for (Iterator it = inputs.iterator(); it.hasNext();) {
@Test public void testBaseTypes() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("bind.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("BIVGetRecord"); assertEquals("wrong number of inputs", 1, inputs.size()); assertTrue("should not be base type", inputs.get(0) instanceof BaseTypeDescriptor); assertEquals("wrong name", "bid", (inputs.get(0)) .getName()); assertEquals("wrong type", "int", (inputs.get(0)) .getType()); }
private void configurePorts() throws UnknownOperationException, IOException { List<TypeDescriptor> inputDescriptors = parser .getOperationInputParameters(configurationBean.getOperation().getOperationName()); List<TypeDescriptor> outputDescriptors = parser .getOperationOutputParameters(configurationBean.getOperation().getOperationName()); for (TypeDescriptor descriptor : inputDescriptors) { addInput(descriptor.getName(), descriptor.getDepth(), true, null, String.class); } isWsrfService = parser.isWsrfService(); if (isWsrfService) { // Make sure the port name is unique endpointReferenceInputPortName = ENDPOINT_REFERENCE; int counter = 0; while (Tools.getActivityInputPort(this, endpointReferenceInputPortName) != null) { endpointReferenceInputPortName = ENDPOINT_REFERENCE + counter++; } addInput(endpointReferenceInputPortName, 0, true, null, String.class); } for (TypeDescriptor descriptor : outputDescriptors) { addOutput(descriptor.getName(), descriptor.getDepth()); outputDepth.put(descriptor.getName(), Integer.valueOf(descriptor .getDepth())); } // add output for attachment list addOutput("attachmentList", 1); outputDepth.put("attachmentList", Integer.valueOf(1)); }
@Test public void testGoVizNoOutputs() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("GoViz.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("destroySession"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("destroySession"); assertEquals("wrong number of inputs", 1, inputs.size()); assertEquals("wrong number of outputs", 0, outputs.size()); TypeDescriptor typeDesc = inputs.get(0); assertTrue("input should be BaseType", typeDesc instanceof BaseTypeDescriptor); assertEquals("wrong name", "sessionID", typeDesc.getName()); assertEquals("wrong type", "string", typeDesc.getType()); }
List inputs = parser.getOperationInputParameters(operationName); List outputs = parser.getOperationOutputParameters(operationName); setDescription(parser.getOperationDocumentation(operationName));
@Test public void testArrayType() throws Exception { WSDLParser parser = new WSDLParser(wsdlResourcePath("bind.wsdl")); List<TypeDescriptor> inputs = parser .getOperationInputParameters("BIVGetRecords"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("BIVGetRecords"); assertEquals("wrong number of inputs", 1, inputs.size()); assertTrue("input should be of AArrayTypeDescriptor", inputs.get(0) instanceof ArrayTypeDescriptor); ArrayTypeDescriptor arrayTypeDesc = (ArrayTypeDescriptor) inputs.get(0); assertEquals("wrong name", "ids", arrayTypeDesc.getName()); assertEquals("wrong type", "ArrayOf_xsd_int", arrayTypeDesc.getType()); TypeDescriptor typeDesc = arrayTypeDesc.getElementType(); assertTrue("element should be of type BaseTypeDescriptor", typeDesc instanceof BaseTypeDescriptor); assertEquals("wrong type", "int", typeDesc.getType()); assertEquals("wrong number of outputs", 1, outputs.size()); assertTrue("output should be of ArrayTypeDescriptor", outputs.get(0) instanceof ArrayTypeDescriptor); arrayTypeDesc = (ArrayTypeDescriptor) outputs.get(0); assertEquals("wrong name", "BIVRecords", arrayTypeDesc.getName()); assertEquals("wrong type", "ArrayOfBIVRecord", arrayTypeDesc.getType()); typeDesc = arrayTypeDesc.getElementType(); assertEquals("wrong type", "BIVRecord", typeDesc.getType()); }
.getOperationInputParameters("BIVGetComplexRecord"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("BIVGetComplexRecord");
.getOperationInputParameters("run_eInfo"); List<TypeDescriptor> outputs = parser .getOperationOutputParameters("run_eInfo");