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 06:47:52 UTC
svn commit: r665979 - in
/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl:
WSDLFactoryImpl.java WSDLInterfaceIntrospectorImpl.java
Author: lresende
Date: Mon Jun 9 21:47:51 2008
New Revision: 665979
URL: http://svn.apache.org/viewvc?rev=665979&view=rev
Log:
Adding support for wsdl policy annotations
Modified:
incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java
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/WSDLFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java?rev=665979&r1=665978&r2=665979&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLFactoryImpl.java Mon Jun 9 21:47:51 2008
@@ -27,8 +27,6 @@
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
-import org.apache.tuscany.sca.xsd.XSDefinition;
-import org.apache.tuscany.sca.xsd.XSDFactory;
/**
* A factory for the WSDL model.
@@ -40,8 +38,7 @@
private WSDLInterfaceIntrospectorImpl introspector;
public WSDLFactoryImpl(ModelFactoryExtensionPoint modelFactories) {
- XSDFactory factory = modelFactories.getFactory(XSDFactory.class);
- introspector = new WSDLInterfaceIntrospectorImpl(factory);
+ introspector = new WSDLInterfaceIntrospectorImpl(modelFactories);
}
public WSDLInterface createWSDLInterface() {
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=665979&r1=665978&r2=665979&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 21:47:51 2008
@@ -20,16 +20,20 @@
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.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.PolicyFactory;
import org.apache.tuscany.sca.xsd.XSDFactory;
/**
@@ -42,9 +46,11 @@
private static final QName POLICY_CONVERSATIONAL = new QName("http://www.osoa.org/xmlns/sca/1.0", "conversational");
private XSDFactory xsdFactory;
+ private PolicyFactory policyFactory;
- public WSDLInterfaceIntrospectorImpl(XSDFactory xsdFactory) {
- this.xsdFactory = xsdFactory;
+ public WSDLInterfaceIntrospectorImpl(ModelFactoryExtensionPoint modelFactories) {
+ this.xsdFactory = modelFactories.getFactory(XSDFactory.class);;
+ this.policyFactory = modelFactories.getFactory(PolicyFactory.class);;
}
// FIXME: Do we want to deal with document-literal wrapped style based on the JAX-WS Specification?
@@ -58,6 +64,7 @@
}
public void introspectPortType(WSDLInterface wsdlInterface, PortType portType, WSDLDefinition wsdlDefinition, ModelResolver resolver) throws InvalidWSDLException {
+ processIntents(wsdlInterface, portType);
wsdlInterface.setPortType(portType);
wsdlInterface.getOperations().addAll(introspectOperations(portType, wsdlDefinition, resolver));
wsdlInterface.setConversational(isConversational(portType));
@@ -71,6 +78,32 @@
return op.getOperation();
}
+ private void processIntents(WSDLInterface wsdlInterface, PortType portType) {
+ Object o = portType.getExtensionAttribute(POLICY_REQUIRES);
+ if(o != null && o instanceof Vector) {
+ Vector<QName> policyAttributes = (Vector<QName>) o;
+
+ Enumeration<QName> policyItents = policyAttributes.elements();
+ while(policyItents.hasMoreElements()) {
+ QName intentName = policyItents.nextElement();
+
+ //ignores conversational, as it will have it's own
+ //attribute in the wsdl interface model
+ if(! intentName.equals(POLICY_CONVERSATIONAL)) {
+ //process the intent
+ System.out.println(">>> Intent : " + intentName);
+
+ // Add each intent to the list
+ Intent intent = policyFactory.createIntent();
+ intent.setName(intentName);
+
+ wsdlInterface.getRequiredIntents().add(intent);
+ }
+ }
+
+ }
+ }
+
private boolean isConversational(PortType portType) {
boolean conversational = false;