You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/06/10 00:41:28 UTC
svn commit: r665926 -
/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
Author: lresende
Date: Mon Jun 9 15:41:27 2008
New Revision: 665926
URL: http://svn.apache.org/viewvc?rev=665926&view=rev
Log:
Set wsdl interface conversational attribute based on policy extensions to wsdl
Modified:
incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
Modified: incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java?rev=665926&r1=665925&r2=665926&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java Mon Jun 9 15:41:27 2008
@@ -21,8 +21,10 @@
import java.util.ArrayList;
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.interfacedef.Operation;
@@ -36,6 +38,8 @@
* @version $Rev$ $Date$
*/
public class WSDLInterfaceIntrospectorImpl {
+ private static final QName POLICY_REQUIRES = new QName("http://www.osoa.org/xmlns/sca/1.0", "requires");
+ private static final QName POLICY_CONVERSATIONAL = new QName("http://www.osoa.org/xmlns/sca/1.0", "conversational");
private XSDFactory xsdFactory;
@@ -56,8 +60,7 @@
public void introspectPortType(WSDLInterface wsdlInterface, PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidWSDLException {
wsdlInterface.setPortType(portType);
wsdlInterface.getOperations().addAll(introspectOperations(portType, wsdlDefinition, resolver));
- // FIXME: set to Non-conversational for now
- wsdlInterface.setConversational(false);
+ wsdlInterface.setConversational(isConversational(portType));
}
public static Operation getOperation(javax.wsdl.Operation wsdlOp,
@@ -68,4 +71,20 @@
return op.getOperation();
}
+ private boolean isConversational(PortType portType) {
+ boolean conversational = false;
+
+ Object o = portType.getExtensionAttribute(POLICY_REQUIRES);
+ if(o != null && o instanceof Vector) {
+ Vector<QName> policyAttributes = (Vector<QName>) o;
+
+ if(policyAttributes.contains(POLICY_CONVERSATIONAL)) {
+ return true;
+ }
+
+ }
+
+ return conversational;
+ }
+
}