summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-10-19 08:37:03 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-10-19 08:37:03 +0000
commitcd0530f3d5222a020ac1ffae2956018402d36adf (patch)
tree27257b651ea8181166cf492f45380e8794fd720f /sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
parent3312769c458a55a8420566eff6936957a7c1e645 (diff)
Add code to read <requires> elements from WSDL and enable the test that ensure that mayProvides intents are matched between references and services. This has implications for existing tests in that we now have to ensure that any mayProvides intent that is considered to be the default (a concept that the spec doesn't consider) is present in the intent list for the policy subject in question.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1186027 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java b/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
index fdb562b1b7..354cca8392 100644
--- a/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
+++ b/sca-java-2.x/trunk/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
@@ -103,6 +103,7 @@ public class WSDLModelResolver implements ModelResolver {
// ---- SCA Policy WSDL Attachments
public static final QName Q_POLICY_ATTRIBUTE_EXTENSION = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "requires");
+ public static final QName Q_POLICY_ELEMENT_EXTENSION = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "requires");
public static final QName Q_POLICY_END_CONVERSATION_ATTRIBUTE_EXTENSION = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "endsConversation");
// ---- SCA Callback WSDL Extension
public static final QName Q_CALLBACK_ATTRIBUTE_EXTENSION = new QName("http://docs.oasis-open.org/ns/opencsa/sca/200912", "callback" );
@@ -134,6 +135,7 @@ public class WSDLModelResolver implements ModelResolver {
this.xsdFactory = modelFactories.getFactory(XSDFactory.class);
wsdlExtensionRegistry = this.wsdl4jFactory.newPopulatedExtensionRegistry();
+
// REVIEW: [rfeng] Disable the schema extension for WSDL4J to avoid aggressive loading
ExtensionDeserializer deserializer = new UnknownExtensionDeserializer();
ExtensionSerializer serializer = new UnknownExtensionSerializer();
@@ -141,11 +143,17 @@ public class WSDLModelResolver implements ModelResolver {
wsdlExtensionRegistry.registerSerializer(Types.class, schema, serializer);
wsdlExtensionRegistry.registerDeserializer(Types.class, schema, deserializer);
}
+
// ---- Policy WSDL Extensions
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);
wsdlExtensionRegistry.registerExtensionAttributeType(PortType.class, Q_CALLBACK_ATTRIBUTE_EXTENSION, AttributeExtensible.QNAME_TYPE);
+
+ serializer = new PolicyExtensionHandler();
+ deserializer = new PolicyExtensionHandler();
+ wsdlExtensionRegistry.registerSerializer(PortType.class, Q_POLICY_ELEMENT_EXTENSION, serializer);
+ wsdlExtensionRegistry.registerDeserializer(PortType.class, Q_POLICY_ELEMENT_EXTENSION, deserializer);
} catch (NoSuchMethodError e) {
// That method does not exist on older WSDL4J levels
}