diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-01 20:40:23 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-01 20:40:23 +0000 |
commit | 3eed74bfd74934ffd8c859b69b1a64d1cc073ccc (patch) | |
tree | 5918abc2035e2e00c2fb56973cc255fff0de5663 /java/sca/modules | |
parent | f1dc976167fcaf5f51909db1adadca98c0612f9c (diff) |
Enable interface-wsdl to work with older WSDL4J implementations like wsdl4j 1.4 (as well as the latest wsdl4j 1.6.x). That's what's included in some application servers like WebSphere 6.1 for example, and 1.4 doesn't have WSDLElement or extension attributes.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@691052 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules')
4 files changed, 33 insertions, 9 deletions
diff --git a/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java b/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java index 0004774afa..9c23458743 100644 --- a/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java +++ b/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java @@ -128,8 +128,12 @@ public class WSDLModelResolver implements ModelResolver { wsdlExtensionRegistry.registerDeserializer(Types.class, schema, deserializer); } // ---- Policy WSDL Extensions - wsdlExtensionRegistry.registerExtensionAttributeType(PortType.class, Q_POLICY_ATTRIBUTE_EXTENSION, AttributeExtensible.LIST_OF_QNAMES_TYPE); - wsdlExtensionRegistry.registerExtensionAttributeType(Operation.class, Q_POLICY_END_CONVERSATION_ATTRIBUTE_EXTENSION, AttributeExtensible.STRING_TYPE); + try { + wsdlExtensionRegistry.registerExtensionAttributeType(PortType.class, Q_POLICY_ATTRIBUTE_EXTENSION, AttributeExtensible.LIST_OF_QNAMES_TYPE); + wsdlExtensionRegistry.registerExtensionAttributeType(Operation.class, Q_POLICY_END_CONVERSATION_ATTRIBUTE_EXTENSION, AttributeExtensible.STRING_TYPE); + } catch (NoSuchMethodError e) { + // That method does not exist on older WSDL4J levels + } // ---- BPEL additions serializer = new BPELExtensionHandler(); diff --git a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java index 9253f58702..0b707163da 100644 --- a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java +++ b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/WSDLObject.java @@ -19,14 +19,15 @@ package org.apache.tuscany.sca.interfacedef.wsdl; +import java.io.Serializable; + import javax.wsdl.Definition; -import javax.wsdl.WSDLElement; /** * Model for objects in a WSDL definition * @version $Rev$ $Date$ */ -public interface WSDLObject<T extends WSDLElement> { +public interface WSDLObject<T extends Serializable> { /** * Get the owning definition where the element is declared * @return The owning definition diff --git a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java index 5b0d95ac46..18fce72f90 100644 --- a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java +++ b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLInterfaceIntrospectorImpl.java @@ -85,7 +85,13 @@ public class WSDLInterfaceIntrospectorImpl { } private void processIntents(WSDLInterface wsdlInterface, PortType portType) { - Object o = portType.getExtensionAttribute(POLICY_REQUIRES); + 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; @@ -113,7 +119,13 @@ public class WSDLInterfaceIntrospectorImpl { private boolean isConversational(PortType portType) { boolean conversational = false; - Object o = portType.getExtensionAttribute(POLICY_REQUIRES); + 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; @@ -129,7 +141,13 @@ public class WSDLInterfaceIntrospectorImpl { private boolean isEndConversation(javax.wsdl.Operation operation) { boolean endConversation = false; - Object o = operation.getExtensionAttribute(POLICY_END_CONVERSATION); + Object o; + try { + o = operation.getExtensionAttribute(POLICY_END_CONVERSATION); + } catch (NoSuchMethodError e) { + // That method does not exist on older WSDL4J levels + o = null; + } if(o != null && o instanceof String) { endConversation = Boolean.valueOf((String)o); } diff --git a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java index b41d79c3ba..f18eaef27b 100644 --- a/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java +++ b/java/sca/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLObjectImpl.java @@ -19,15 +19,16 @@ package org.apache.tuscany.sca.interfacedef.wsdl.impl; +import java.io.Serializable; + import javax.wsdl.Definition; -import javax.wsdl.WSDLElement; import org.apache.tuscany.sca.interfacedef.wsdl.WSDLObject; /** * @version $Rev$ $Date$ */ -public class WSDLObjectImpl<T extends WSDLElement> implements WSDLObject<T> { +public class WSDLObjectImpl<T extends Serializable> implements WSDLObject<T> { private Definition definition; private T element; |