diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-11 20:50:34 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-11 20:50:34 +0000 |
commit | 02ae2d84328d90d9871e057089ab0a7d93b03f17 (patch) | |
tree | 9fbb2cc803c917899e2b12e400f378067b77a9ef /java/sca/modules/definitions-xml/src | |
parent | fc8f3f7d9af375bb06ac7d1f1f2ab7440ecb2d3e (diff) |
Fix the schema validation issue for definitions
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@803291 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
3 files changed, 246 insertions, 248 deletions
diff --git a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java index 699920dd6f..580f5a12d6 100644 --- a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java +++ b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java @@ -27,8 +27,6 @@ import java.net.URLConnection; import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; -import java.util.HashSet; -import java.util.Set; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; @@ -39,6 +37,7 @@ import org.apache.tuscany.sca.contribution.processor.ContributionReadException; import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; +import org.apache.tuscany.sca.contribution.processor.ValidatingXMLInputFactory; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.definitions.Definitions; @@ -47,10 +46,6 @@ import org.apache.tuscany.sca.definitions.util.DefinitionsUtil; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; -import org.apache.tuscany.sca.policy.BindingType; -import org.apache.tuscany.sca.policy.ImplementationType; -import org.apache.tuscany.sca.policy.Intent; -import org.apache.tuscany.sca.policy.PolicySet; /** * A SCA Definitions Document processor. @@ -89,7 +84,7 @@ public class DefinitionsDocumentProcessor implements URLArtifactProcessor<Defini StAXArtifactProcessor<Object> staxProcessor, Monitor monitor) { this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor; - this.inputFactory = modelFactories.getFactory(XMLInputFactory.class); + this.inputFactory = modelFactories.getFactory(ValidatingXMLInputFactory.class); this.definitionsFactory = modelFactories.getFactory(DefinitionsFactory.class); this.monitor = monitor; } diff --git a/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml b/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml index ade57b1ec0..c3b1115cbd 100644 --- a/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml +++ b/java/sca/modules/definitions-xml/src/main/resources/META-INF/sca-policy-1.1-intents-definitions-cd02.xml @@ -1,242 +1,245 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved. +<!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. --> -<sca:definitions xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903" +<definitions xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903" + xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200903"> - - <!-- Security related intents --> - <sca:intent name="serverAuthentication" constrains="sca:binding" - intentType="interaction"> - <sca:description> - Communication through the binding requires that the - server is authenticated by the client - </sca:description> - <sca:qualifier name="transport" default="true"/> - <sca:qualifier name="message"/> - </sca:intent> - - <sca:intent name="clientAuthentication" constrains="sca:binding" - intentType="interaction"> - <sca:description> - Communication through the binding requires that the - client is authenticated by the server - </sca:description> - <sca:qualifier name="transport" default="true"/> - <sca:qualifier name="message"/> - </sca:intent> - - <sca:intent name="authentication" requires="sca:clientAuthentication"> - <sca:description> - A convenience intent to help migration - </sca:description> - </sca:intent> - - <sca:intent name="mutualAuthentication" - requires="sca:clientAuthentication sca:serverAuthentication"> - <sca:description> - Communication through the binding requires that the - client and server to authenticate each other - </sca:description> - </sca:intent> - - <sca:intent name="confidentiality" constrains="sca:binding" - intentType="interaction"> - <sca:description> - Communication through the binding prevents unauthorized - users from reading the messages - </sca:description> - <sca:qualifier name="transport" default="true"/> - <sca:qualifier name="message"/> - </sca:intent> - - <sca:intent name="integrity" constrains="sca:binding" - intentType="interaction"> - <sca:description> - Communication through the binding prevents tampering - with the messages sent between the client and the service. - </sca:description> - <sca:qualifier name="transport" default="true"/> - <sca:qualifier name="message"/> - </sca:intent> - - <sca:intent name="authorization" constrains="sca:implementation" - intentType="implementation"> - <sca:description> - Ensures clients are authorized to use services. - </sca:description> - <sca:qualifier name="fineGrain" default="true"/> - </sca:intent> - - - <!-- Reliable messaging related intents --> - <sca:intent name="atLeastOnce" constrains="sca:binding" - intentType="interaction"> - <sca:description> - This intent is used to indicate that a message sent - by a client is always delivered to the component. - </sca:description> - </sca:intent> - - <sca:intent name="atMostOnce" constrains="sca:binding" - intentType="interaction"> - <sca:description> - This intent is used to indicate that a message that was - successfully sent by a client is not delivered more than - once to the component. - </sca:description> - </sca:intent> - - <sca:intent name="exactlyOnce" requires="sca:atLeastOnce sca:atMostOnce" - constrains="sca:binding" intentType="interaction"> - <sca:description> - This profile intent is used to indicate that a message sent - by a client is always delivered to the component. It also - indicates that duplicate messages are not delivered to the - component. - </sca:description> - </sca:intent> - - <sca:intent name="ordered" appliesTo="sca:binding" - intentType="interaction"> - <sca:description> - This intent is used to indicate that all the messages are - delivered to the component in the order they were sent by - the client. - </sca:description> - </sca:intent> - - <!-- Transaction related intents --> - <sca:intent name="managedTransaction" excludes="sca:noManagedTransaction" - mutuallyExclusive="true" constrains="sca:implementation" - intentType="implementation"> - <sca:description> - A managed transaction environment is necessary in order to - run the component. The specific type of managed transaction - needed is not constrained. - </sca:description> - <sca:qualifier name="global" default="true"> - <sca:description> - For a component marked with managedTransaction.global - a global transaction needs to be present before dispatching - any method on the component - using any transaction - propagated from the client or else beginning and completing - a new transaction. - </sca:description> - </sca:qualifier> - <sca:qualifier name="local"> - <sca:description> - A component marked with managedTransaction.local needs to - run within a local transaction containment (LTC) that - is started and ended by the SCA runtime. - </sca:description> - </sca:qualifier> - </sca:intent> - - <sca:intent name="noManagedTransaction" excludes="sca:managedTransaction" - constrains="sca:implementation" intentType="implementation"> - <sca:description> - A component marked with noManagedTransaction needs to run without - a managed transaction, under neither a global transaction nor - an LTC. A transaction propagated to the hosting SCA runtime - is not joined by the hosting runtime on behalf of a - component marked with noManagedtransaction. - </sca:description> - </sca:intent> - - <sca:intent name="transactedOneWay" excludes="sca:immediateOneWay" - constrains="sca:binding" intentType="implementation"> - <sca:description> - For a reference marked as transactedOneWay any OneWay invocation - messages are transacted as part of a client global - transaction. - For a service marked as transactedOneWay any OneWay invocation - message are received from the transport binding in a - transacted fashion, under the service’s global transaction. - </sca:description> - </sca:intent> - - <sca:intent name="immediateOneWay" excludes="sca:transactedOneWay" - constrains="sca:binding" intentType="implementation"> - <sca:description> - For a reference indicates that any OneWay invocation messages - are sent immediately regardless of any client transaction. - For a service indicates that any OneWay invocation is - received immediately regardless of any target service - transaction. - </sca:description> - </sca:intent> - - <sca:intent name="propagatesTransaction" excludes="sca:suspendsTransaction" - constrains="sca:binding" intentType="interaction"> - <sca:description> - A service marked with propagatesTransaction is dispatched - under any propagated (client) transaction and the service binding - needs to be capable of receiving a transaction context. - A reference marked with propagatesTransaction propagates any - transaction context under which the client runs when the - reference is used for a request-response interaction and the - binding of a reference marked with propagatesTransaction needs to - be capable of propagating a transaction context. - </sca:description> - </sca:intent> - - <sca:intent name="suspendsTransaction" excludes="sca:propagatesTransaction" - constrains="sca:binding" intentType="interaction"> - <sca:description> - A service marked with suspendsTransaction is not dispatched - under any propagated (client) transaction. - A reference marked with suspendsTransaction does not propagate - any transaction context under which the client runs when the - reference is used. - </sca:description> - </sca:intent> - - <sca:intent name="managedSharedTransaction" - requires="sca:managedTransaction.global sca:propagatesTransaction"> - <sca:description> - Used to indicate that the component requires both the - managedTransaction.global and the propagatesTransactions - intents - </sca:description> - </sca:intent> - - <!-- Miscellaneous intents --> - <sca:intent name="asyncInvocation" constrains="sca:binding" - intentType="interaction"> - <sca:description> - Indicates that request/response operations for the - interface of this wire are "long running" and must be - treated as two separate message transmissions - </sca:description> - </sca:intent> - - <sca:intent name="SOAP" constrains="sca:binding" intentType="interaction"> - <sca:description> - Specifies that the SOAP messaging model is used for delivering - messages. - </sca:description> - <sca:qualifier name="1_1" default="true"/> - <sca:qualifier name="1_2"/> - </sca:intent> - - <sca:intent name="JMS" constrains="sca:binding" intentType="interaction"> - <sca:description> - Requires that the messages are delivered and received via the - JMS API. - </sca:description> - </sca:intent> - - <sca:intent name="noListener" constrains="sca:binding" - intentType="interaction"> - <sca:description> - This intent can only be used on a reference. Indicates that the - client is not able to handle new inbound connections. The binding - and callback binding are configured so that any - response or callback comes either through a back channel of the - connection from the client to the server or by having the client - poll the server for messages. - </sca:description> - </sca:intent> - -</sca:definitions> + + <!-- Security related intents --> + <intent name="serverAuthentication" constrains="sca:binding" + intentType="interaction"> + <description> + Communication through the binding requires that the + server is authenticated by the client + </description> + <qualifier name="transport" default="true"/> + <qualifier name="message"/> + </intent> + + <intent name="clientAuthentication" constrains="sca:binding" + intentType="interaction"> + <description> + Communication through the binding requires that the + client is authenticated by the server + </description> + <qualifier name="transport" default="true"/> + <qualifier name="message"/> + </intent> + + <intent name="authentication" requires="clientAuthentication"> + <description> + A convenience intent to help migration + </description> + </intent> + + <intent name="mutualAuthentication" + requires="clientAuthentication serverAuthentication"> + <description> + Communication through the binding requires that the + client and server to authenticate each other + </description> + </intent> + + <intent name="confidentiality" constrains="sca:binding" + intentType="interaction"> + <description> + Communication through the binding prevents unauthorized + users from reading the messages + </description> + <qualifier name="transport" default="true"/> + <qualifier name="message"/> + </intent> + + <intent name="integrity" constrains="sca:binding" + intentType="interaction"> + <description> + Communication through the binding prevents tampering + with the messages sent between the client and the service. + </description> + <qualifier name="transport" default="true"/> + <qualifier name="message"/> + </intent> + + <intent name="authorization" constrains="sca:implementation" + intentType="implementation"> + <description> + Ensures clients are authorized to use services. + </description> + <qualifier name="fineGrain" default="true"/> + </intent> + + + <!-- Reliable messaging related intents --> + <intent name="atLeastOnce" constrains="sca:binding" + intentType="interaction"> + <description> + This intent is used to indicate that a message sent + by a client is always delivered to the component. + </description> + </intent> + + <intent name="atMostOnce" constrains="sca:binding" + intentType="interaction"> + <description> + This intent is used to indicate that a message that was + successfully sent by a client is not delivered more than + once to the component. + </description> + </intent> + + <intent name="exactlyOnce" requires="atLeastOnce atMostOnce" + constrains="sca:binding" intentType="interaction"> + <description> + This profile intent is used to indicate that a message sent + by a client is always delivered to the component. It also + indicates that duplicate messages are not delivered to the + component. + </description> + </intent> + + <intent name="ordered" constrains="sca:binding" + intentType="interaction"> + <description> + This intent is used to indicate that all the messages are + delivered to the component in the order they were sent by + the client. + </description> + </intent> + + <!-- Transaction related intents --> + <intent name="managedTransaction" excludes="sca:noManagedTransaction" + mutuallyExclusive="true" constrains="sca:implementation" + intentType="implementation"> + <description> + A managed transaction environment is necessary in order to + run the component. The specific type of managed transaction + needed is not constrained. + </description> + <qualifier name="global" default="true"> + <description> + For a component marked with managedTransaction.global + a global transaction needs to be present before dispatching + any method on the component - using any transaction + propagated from the client or else beginning and completing + a new transaction. + </description> + </qualifier> + <qualifier name="local"> + <description> + A component marked with managedTransaction.local needs to + run within a local transaction containment (LTC) that + is started and ended by the SCA runtime. + </description> + </qualifier> + </intent> + + <intent name="noManagedTransaction" excludes="sca:managedTransaction" + constrains="sca:implementation" intentType="implementation"> + <description> + A component marked with noManagedTransaction needs to run without + a managed transaction, under neither a global transaction nor + an LTC. A transaction propagated to the hosting SCA runtime + is not joined by the hosting runtime on behalf of a + component marked with noManagedtransaction. + </description> + </intent> + + <intent name="transactedOneWay" excludes="sca:immediateOneWay" + constrains="sca:binding" intentType="implementation"> + <description> + For a reference marked as transactedOneWay any OneWay invocation + messages are transacted as part of a client global + transaction. + For a service marked as transactedOneWay any OneWay invocation + message are received from the transport binding in a + transacted fashion, under the service’s global transaction. + </description> + </intent> + + <intent name="immediateOneWay" excludes="transactedOneWay" + constrains="sca:binding" intentType="implementation"> + <description> + For a reference indicates that any OneWay invocation messages + are sent immediately regardless of any client transaction. + For a service indicates that any OneWay invocation is + received immediately regardless of any target service + transaction. + </description> + </intent> + + <intent name="propagatesTransaction" excludes="suspendsTransaction" + constrains="sca:binding" intentType="interaction"> + <description> + A service marked with propagatesTransaction is dispatched + under any propagated (client) transaction and the service binding + needs to be capable of receiving a transaction context. + A reference marked with propagatesTransaction propagates any + transaction context under which the client runs when the + reference is used for a request-response interaction and the + binding of a reference marked with propagatesTransaction needs to + be capable of propagating a transaction context. + </description> + </intent> + + <intent name="suspendsTransaction" excludes="propagatesTransaction" + constrains="sca:binding" intentType="interaction"> + <description> + A service marked with suspendsTransaction is not dispatched + under any propagated (client) transaction. + A reference marked with suspendsTransaction does not propagate + any transaction context under which the client runs when the + reference is used. + </description> + </intent> + + <intent name="managedSharedTransaction" + requires="managedTransaction.global propagatesTransaction"> + <description> + Used to indicate that the component requires both the + managedTransaction.global and the propagatesTransactions + intents + </description> + </intent> + + <!-- Miscellaneous intents --> + <intent name="asyncInvocation" constrains="sca:binding" + intentType="interaction"> + <description> + Indicates that request/response operations for the + interface of this wire are "long running" and must be + treated as two separate message transmissions + </description> + </intent> + + <intent name="SOAP" constrains="sca:binding" intentType="interaction" mutuallyExclusive="true"> + <description> + Specifies that the SOAP messaging model is used for delivering + messages. + </description> + <!-- [rfeng] 1_1 and 1_2 are not valid NCNames --> + <qualifier name="V1_1" default="true"/> + <qualifier name="V1_2"/> + </intent> + + <intent name="JMS" constrains="sca:binding" intentType="interaction"> + <description> + Requires that the messages are delivered and received via the + JMS API. + </description> + </intent> + + <intent name="noListener" constrains="sca:binding" + intentType="interaction"> + <description> + This intent can only be used on a reference. Indicates that the + client is not able to handle new inbound connections. The binding + and callback binding are configured so that any + response or callback comes either through a back channel of the + connection from the client to the server or by having the client + poll the server for messages. + </description> + </intent> + +</definitions> diff --git a/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml b/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml index 9de5be3212..4325309463 100644 --- a/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml +++ b/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml @@ -64,7 +64,7 @@ <policySet name="SecureMessagingPolicies" provides="test:confidentiality" appliesTo="binding.ws" xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <intentMap provides="test:confidentiality" default="transport"> + <intentMap provides="test:confidentiality"> <qualifier name="transport"> <wsp:PolicyAttachment> <!-- policy expression and policy subject for "transport" alternative --> @@ -81,7 +81,7 @@ <policySet name="SecurityPolicy" provides="test:confidentiality" appliesTo="binding.ws" xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <intentMap provides="test:confidentiality" default="message"> + <intentMap provides="test:confidentiality"> <qualifier name="message"> <wsp:PolicyAttachment> <!-- policy attachment for body encryption --> @@ -114,7 +114,7 @@ <policySet name="ConfidentialityPolicies" provides="test:confidentiality" appliesTo="binding.ws" xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> - <intentMap provides="test:confidentiality" default="transport"> + <intentMap provides="test:confidentiality"> <qualifier name="transport"> <wsp:PolicyAttachment> <!-- policy expression and policy subject for "transport" |