diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-M5.1-RC1/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-M5.1-RC1/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/sca-java-2.x/tags/2.0-M5.1-RC1/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java b/sca-java-2.x/tags/2.0-M5.1-RC1/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java deleted file mode 100644 index dd19407abe..0000000000 --- a/sca-java-2.x/tags/2.0-M5.1-RC1/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * 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.tuscany.sca.interfacedef.wsdl.impl; - -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; -import java.util.Vector; - -import javax.wsdl.PortType; -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.core.FactoryExtensionPoint; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface; -import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLInterfaceProcessor; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.policy.Intent; -import org.apache.tuscany.sca.policy.PolicyFactory; -import org.apache.tuscany.sca.xsd.XSDFactory; - -/** - * Introspector for creating WSDLInterface definitions from WSDL PortTypes. - * - * @version $Rev$ $Date$ - */ -public class WSDLInterfaceIntrospectorImpl { - private static final QName POLICY_REQUIRES = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "requires"); - - private static final QName CALLBACK_ATTRIBUTE = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "callback" ); - - private WSDLFactory wsdlFactory; - private XSDFactory xsdFactory; - private PolicyFactory policyFactory; - - public WSDLInterfaceIntrospectorImpl(FactoryExtensionPoint modelFactories, WSDLFactory wsdlFactory) { - this.xsdFactory = modelFactories.getFactory(XSDFactory.class); - this.policyFactory = modelFactories.getFactory(PolicyFactory.class); - this.wsdlFactory = wsdlFactory; - } - - // FIXME: Do we want to deal with document-literal wrapped style based on the JAX-WS Specification? - private List<Operation> introspectOperations(PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver, Monitor monitor) throws InvalidWSDLException { - List<Operation> operations = new ArrayList<Operation>(); - for (Object o : portType.getOperations()) { - javax.wsdl.Operation wsdlOp = (javax.wsdl.Operation)o; - Operation operation = getOperation(wsdlOp, wsdlDefinition, resolver, xsdFactory, monitor); - operations.add(operation); - } - return operations; - } - - public void introspectPortType(WSDLInterface wsdlInterface, PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver, Monitor monitor) throws InvalidWSDLException { - processIntents(wsdlInterface, portType); - WSDLInterface callback = processCallbackAttribute( portType, resolver, monitor ); - wsdlInterface.setPortType(portType); - wsdlInterface.setCallbackInterface(callback); - wsdlInterface.getOperations().addAll(introspectOperations(portType, wsdlDefinition, resolver, monitor)); - } - - public static Operation getOperation(javax.wsdl.Operation wsdlOp, - WSDLDefinition wsdlDefinition, - ModelResolver resolver, - XSDFactory xsdFactory, - Monitor monitor) throws InvalidWSDLException { - WSDLOperationIntrospectorImpl op = new WSDLOperationIntrospectorImpl(xsdFactory, wsdlOp, wsdlDefinition, null, resolver, monitor); - return op.getOperation(); - } - - /** - * Process an extension @callback attribute on a WSDL portType declaration - * - the callback attribute must contain the QName of another portType - * @param portType the portType - * @return - */ - private WSDLInterface processCallbackAttribute( PortType portType, ModelResolver resolver, Monitor monitor ) { - Object o = portType.getExtensionAttribute(CALLBACK_ATTRIBUTE); - if(o != null && o instanceof QName) { - WSDLInterface wsdlInterface = wsdlFactory.createWSDLInterface(); - wsdlInterface.setUnresolved(true); - wsdlInterface.setName( (QName)o ); - wsdlInterface = WSDLInterfaceProcessor.resolveWSDLInterface( wsdlInterface, resolver, monitor, wsdlFactory ); - - return wsdlInterface; - } else { - return null; - } // end if - } // end method processCallbackAttribute - - private void processIntents(WSDLInterface wsdlInterface, PortType portType) { - Object o; - try { - o = portType.getExtensionAttribute(POLICY_REQUIRES); - } catch (NoSuchMethodError e) { - // That method does not exist on older WSDL4J levels - o = null; - } - if(o != null && o instanceof Vector) { - Vector<QName> policyAttributes = (Vector<QName>) o; - - Enumeration<QName> policyItents = policyAttributes.elements(); - while (policyItents.hasMoreElements()) { - QName intentName = policyItents.nextElement(); - - // Add each intent to the list - Intent intent = policyFactory.createIntent(); - intent.setName(intentName); - - wsdlInterface.getRequiredIntents().add(intent); - } - - } - } - -} |