diff options
Diffstat (limited to '')
12 files changed, 319 insertions, 318 deletions
diff --git a/java/sca/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd02.xml b/java/sca/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd02.xml index c761266148..8efde2653f 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd02.xml +++ b/java/sca/modules/assembly-xsd/src/main/resources/sca-policy-1.1-intents-definitions-cd02.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. --> -<sca:definitions xmlns:xml="http://www.w3.org/XML/1998/namespace" - 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"> @@ -98,7 +99,7 @@ </description> </intent> - <intent name="ordered" appliesTo="sca:binding" + <intent name="ordered" constrains="sca:binding" intentType="interaction"> <description> This intent is used to indicate that all the messages are @@ -217,8 +218,8 @@ Specifies that the SOAP messaging model is used for delivering messages. </description> - <qualifier name="1_1" default="true"/> - <qualifier name="1_2"/> + <qualifier name="V1_1" default="true"/> + <qualifier name="V1_2"/> </intent> <intent name="JMS" constrains="sca:binding" intentType="interaction"> @@ -240,4 +241,4 @@ </description> </intent> -</sca:definitions> +</definitions> diff --git a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd index de7bc6bdd0..e21f249ecb 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd +++ b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-dwr.xsd @@ -25,7 +25,7 @@ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200903" schemaLocation="sca-1.1-cd04.xsd"/> - <element name="binding.dwr" type="t:DWRBinding"/> + <element name="binding.dwr" type="t:DWRBinding" substitutionGroup="sca:binding"/> <complexType name="DWRBinding"> <complexContent> diff --git a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd index ce8d47b575..4697382296 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd +++ b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-http.xsd @@ -25,7 +25,7 @@ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200903" schemaLocation="sca-1.1-cd04.xsd"/> - <element name="binding.http" type="t:HTTPBinding"/> + <element name="binding.http" type="t:HTTPBinding" substitutionGroup="sca:binding"/> <complexType name="HTTPBinding"> <complexContent> diff --git a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd index 92142d117d..98e0b32834 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd +++ b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-jsonrpc.xsd @@ -25,7 +25,7 @@ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200903" schemaLocation="sca-1.1-cd04.xsd"/> - <element name="binding.jsonrpc" type="t:JSONRPCBinding"/> + <element name="binding.jsonrpc" type="t:JSONRPCBinding" substitutionGroup="sca:binding"/> <complexType name="JSONRPCBinding"> <complexContent> diff --git a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd index 9b15010624..a0fa641670 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd +++ b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-binding-rmi.xsd @@ -25,7 +25,7 @@ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200903" schemaLocation="sca-1.1-cd04.xsd"/> - <element name="binding.rmi" type="t:RMIBinding"/> + <element name="binding.rmi" type="t:RMIBinding" substitutionGroup="sca:binding"/> <complexType name="RMIBinding"> <complexContent> diff --git a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd index 0e29a09e72..dfe819d97f 100644 --- a/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd +++ b/java/sca/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-implementation-osgi.xsd @@ -25,7 +25,7 @@ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200903" schemaLocation="sca-1.1-cd04.xsd"/> - <element name="implementation.osgi" type="t:OSGiImplementation"/> + <element name="implementation.osgi" type="t:OSGiImplementation" substitutionGroup="sca:implementation"/> <complexType name="OSGiImplementation"> <complexContent> diff --git a/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml b/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml index 57014ad1df..68f0372b61 100644 --- a/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml +++ b/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/definitions.xml @@ -25,7 +25,7 @@ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"> - <sca:bindingType type="sca:binding.ws" mayProvide="SOAP SOAP.1_1 SOAP.1_2 MTOM" alwaysProvides=""/> + <sca:bindingType type="sca:binding.ws" mayProvide="SOAP SOAP.V1_1 SOAP.V1_2 MTOM" alwaysProvides=""/> <!-- PolicyIntents defined by the SCA Runtime Extension for WS Binding Axis 2 --> diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java index 920afbef5a..8fa873d7c7 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/DefaultValidationSchemaExtensionPoint.java @@ -36,7 +36,7 @@ import org.apache.tuscany.sca.extensibility.ServiceDiscovery; * @version $Rev$ $Date$ */ public class DefaultValidationSchemaExtensionPoint implements ValidationSchemaExtensionPoint { - private boolean enabled; + private boolean enabled = true; private List<String> schemas = new ArrayList<String>(); private boolean loaded; diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java index 7882142eb4..5e88f08529 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/ValidatingXMLStreamReader.java @@ -24,7 +24,6 @@ import java.util.logging.Logger; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; import javax.xml.stream.Location; -import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.util.StreamReaderDelegate; @@ -154,77 +153,80 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea return super.next(); } - int event = super.next(); + int event = super.getEventType(); try { - switch (event) { - case XMLStreamConstants.START_DOCUMENT: - handler.startDocument(); - break; - case XMLStreamConstants.START_ELEMENT: - handleStartElement(); - break; - case XMLStreamConstants.PROCESSING_INSTRUCTION: - handler.processingInstruction(super.getPITarget(), super.getPIData()); - break; - case XMLStreamConstants.CHARACTERS: - case XMLStreamConstants.CDATA: - case XMLStreamConstants.SPACE: - case XMLStreamConstants.ENTITY_REFERENCE: - handler.characters(super.getTextCharacters(), super.getTextStart(), super.getTextLength()); - break; - case XMLStreamConstants.END_ELEMENT: - handleEndElement(); - break; - case XMLStreamConstants.END_DOCUMENT: - handler.endDocument(); - break; + if (event == START_DOCUMENT) { + // We need to trigger the startDocument() + handler.startDocument(); } + event = super.next(); + validate(event); } catch (SAXException e) { - XMLStreamException xse = new XMLStreamException(e.getMessage(), e); - error("XMLStreamException", handler, xse); + XMLStreamException xse = new XMLStreamException(e.getMessage(), e); + error("XMLStreamException", handler, xse); throw xse; } return event; } + + private void validate(int event) throws SAXException { + switch (event) { + case START_DOCUMENT: + handler.startDocument(); + break; + case START_ELEMENT: + handleStartElement(); + break; + case PROCESSING_INSTRUCTION: + handler.processingInstruction(super.getPITarget(), super.getPIData()); + break; + case CHARACTERS: + case CDATA: + case SPACE: + case ENTITY_REFERENCE: + handler.characters(super.getTextCharacters(), super.getTextStart(), super.getTextLength()); + break; + case END_ELEMENT: + handleEndElement(); + break; + case END_DOCUMENT: + handler.endDocument(); + break; + } + } @Override public int nextTag() throws XMLStreamException { if (handler == null) { return super.nextTag(); } - - for (;;) { + while (true) { int event = super.getEventType(); try { - switch (event) { - case XMLStreamConstants.START_DOCUMENT: - handler.startDocument(); - break; - case XMLStreamConstants.START_ELEMENT: - handleStartElement(); - return event; - case XMLStreamConstants.PROCESSING_INSTRUCTION: - handler.processingInstruction(super.getPITarget(), super.getPIData()); - break; - case XMLStreamConstants.CHARACTERS: - case XMLStreamConstants.CDATA: - case XMLStreamConstants.SPACE: - case XMLStreamConstants.ENTITY_REFERENCE: - handler.characters(super.getTextCharacters(), super.getTextStart(), super.getTextLength()); - break; - case XMLStreamConstants.END_ELEMENT: - handleEndElement(); - return event; - case XMLStreamConstants.END_DOCUMENT: - handler.endDocument(); - return event; + if (event == START_DOCUMENT) { + // We need to trigger the startDocument() + handler.startDocument(); } + event = super.next(); + validate(event); } catch (SAXException e) { - XMLStreamException xse = new XMLStreamException(e); - error("XMLStreamException", handler, xse); + XMLStreamException xse = new XMLStreamException(e); + error("XMLStreamException", handler, xse); throw xse; } - super.next(); + + if ((event == CHARACTERS && isWhiteSpace()) // skip whitespace + || (event == CDATA && isWhiteSpace()) + // skip whitespace + || event == SPACE + || event == PROCESSING_INSTRUCTION + || event == COMMENT) { + continue; + } + if (event != START_ELEMENT && event != END_ELEMENT) { + throw new XMLStreamException("expected start or end tag", getLocation()); + } + return event; } } @@ -234,7 +236,7 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea return super.getElementText(); } - if (getEventType() != XMLStreamConstants.START_ELEMENT) { + if (getEventType() != START_ELEMENT) { return super.getElementText(); } StringBuffer text = new StringBuffer(); @@ -242,11 +244,11 @@ class ValidatingXMLStreamReader extends StreamReaderDelegate implements XMLStrea for (;;) { int event = next(); switch (event) { - case XMLStreamConstants.END_ELEMENT: + case END_ELEMENT: return text.toString(); - case XMLStreamConstants.COMMENT: - case XMLStreamConstants.PROCESSING_INSTRUCTION: + case COMMENT: + case PROCESSING_INSTRUCTION: continue; case CHARACTERS: 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" |