summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/definitions-xml
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/definitions-xml')
-rw-r--r--java/sca/modules/definitions-xml/pom.xml1
-rw-r--r--java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsDocumentProcessor.java53
-rw-r--r--java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java105
-rw-r--r--java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor2
-rw-r--r--java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor2
-rw-r--r--java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java162
-rw-r--r--java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java1
-rw-r--r--java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml415
8 files changed, 342 insertions, 399 deletions
diff --git a/java/sca/modules/definitions-xml/pom.xml b/java/sca/modules/definitions-xml/pom.xml
index f44236e304..9ba6587631 100644
--- a/java/sca/modules/definitions-xml/pom.xml
+++ b/java/sca/modules/definitions-xml/pom.xml
@@ -39,6 +39,7 @@
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-policy-xml</artifactId>
<version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
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 6c3dca7bab..2f9c5d3379 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,8 @@ import java.net.URLConnection;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.HashSet;
+import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
@@ -48,8 +48,9 @@ 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.IntentAttachPointType;
import org.apache.tuscany.sca.policy.PolicySet;
/**
@@ -73,9 +74,9 @@ public class DefinitionsDocumentProcessor implements URLArtifactProcessor<Defini
* @param staxProcessor
*/
public DefinitionsDocumentProcessor(StAXArtifactProcessor<Object> staxProcessor,
- XMLInputFactory inputFactory,
- DefinitionsFactory definitionsFactory,
- Monitor monitor) {
+ XMLInputFactory inputFactory,
+ DefinitionsFactory definitionsFactory,
+ Monitor monitor) {
this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
this.inputFactory = inputFactory;
this.definitionsFactory = definitionsFactory;
@@ -89,8 +90,8 @@ public class DefinitionsDocumentProcessor implements URLArtifactProcessor<Defini
* @param staxProcessor
*/
public DefinitionsDocumentProcessor(FactoryExtensionPoint modelFactories,
- StAXArtifactProcessor<Object> staxProcessor,
- Monitor monitor) {
+ StAXArtifactProcessor<Object> staxProcessor,
+ Monitor monitor) {
this.extensionProcessor = (StAXArtifactProcessor<Object>)staxProcessor;
this.inputFactory = modelFactories.getFactory(XMLInputFactory.class);
this.definitionsFactory = modelFactories.getFactory(DefinitionsFactory.class);
@@ -198,36 +199,22 @@ public class DefinitionsDocumentProcessor implements URLArtifactProcessor<Defini
}
}
}
-
+
private static void stripDuplicates(Definitions scaDefns) {
- Map<QName, Intent> definedIntents = new HashMap<QName, Intent>();
- for (Intent intent : scaDefns.getIntents()) {
- definedIntents.put(intent.getName(), intent);
- }
+ Set<Intent> definedIntents = new HashSet<Intent>(scaDefns.getIntents());
+ Set<PolicySet> definedPolicySets = new HashSet<PolicySet>(scaDefns.getPolicySets());
+
+ Set<BindingType> definedBindingTypes = new HashSet<BindingType>(scaDefns.getBindingTypes());
+ Set<ImplementationType> definedImplTypes = new HashSet<ImplementationType>(scaDefns.getImplementationTypes());
- Map<QName, PolicySet> definedPolicySets = new HashMap<QName, PolicySet>();
- for (PolicySet policySet : scaDefns.getPolicySets()) {
- definedPolicySets.put(policySet.getName(), policySet);
- }
-
- Map<QName, IntentAttachPointType> definedBindingTypes = new HashMap<QName, IntentAttachPointType>();
- for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
- definedBindingTypes.put(bindingType.getName(), bindingType);
- }
-
- Map<QName, IntentAttachPointType> definedImplTypes = new HashMap<QName, IntentAttachPointType>();
- for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
- definedImplTypes.put(implType.getName(), implType);
- }
-
scaDefns.getIntents().clear();
- scaDefns.getIntents().addAll(definedIntents.values());
+ scaDefns.getIntents().addAll(definedIntents);
scaDefns.getPolicySets().clear();
- scaDefns.getPolicySets().addAll(definedPolicySets.values());
+ scaDefns.getPolicySets().addAll(definedPolicySets);
scaDefns.getBindingTypes().clear();
- scaDefns.getBindingTypes().addAll(definedBindingTypes.values());
+ scaDefns.getBindingTypes().addAll(definedBindingTypes);
scaDefns.getImplementationTypes().clear();
- scaDefns.getImplementationTypes().addAll(definedImplTypes.values());
+ scaDefns.getImplementationTypes().addAll(definedImplTypes);
}
public void resolve(Definitions scaDefinitions, ModelResolver resolver) throws ContributionResolveException {
@@ -236,7 +223,7 @@ public class DefinitionsDocumentProcessor implements URLArtifactProcessor<Defini
}
public String getArtifactType() {
- return "definitions.xml";
+ return "META-INF/definitions.xml";
}
public Class<Definitions> getModelType() {
diff --git a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
index c65a9626ab..701d80711c 100644
--- a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
+++ b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
@@ -39,14 +39,13 @@ import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
-import org.apache.tuscany.sca.definitions.DefinitionsFactory;
import org.apache.tuscany.sca.definitions.Definitions;
+import org.apache.tuscany.sca.definitions.DefinitionsFactory;
import org.apache.tuscany.sca.monitor.Monitor;
+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.IntentAttachPointType;
import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.ProfileIntent;
-import org.apache.tuscany.sca.policy.QualifiedIntent;
/**
* Processor for SCA Definitions
@@ -59,17 +58,17 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
private DefinitionsFactory definitionsFactory;
private Monitor monitor;
+ public static final String SCA11_NS = "http://docs.oasis-open.org/ns/opencsa/sca/200712";
public static final String BINDING = "binding";
public static final String IMPLEMENTATION = "implementation";
- public static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
- public static final String SCA_DEFINITIONS = "definitions";
- public static final QName SCA_DEFINITIONS_QNAME = new QName(SCA10_NS, SCA_DEFINITIONS);
+ public static final String DEFINITIONS = "definitions";
+ public static final QName DEFINITIONS_QNAME = new QName(SCA11_NS, DEFINITIONS);
public static final String TARGET_NAMESPACE = "targetNamespace";
public static final String NAME = "name";
public DefinitionsProcessor(FactoryExtensionPoint factoryExtensionPoint,
- StAXArtifactProcessor<Object> extensionProcessor,
- Monitor monitor) {
+ StAXArtifactProcessor<Object> extensionProcessor,
+ Monitor monitor) {
this.extensionProcessor = extensionProcessor;
this.monitor = monitor;
this.definitionsFactory = factoryExtensionPoint.getFactory(DefinitionsFactory.class);
@@ -85,7 +84,7 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
switch (event) {
case START_ELEMENT: {
name = reader.getName();
- if (SCA_DEFINITIONS_QNAME.equals(name)) {
+ if (DEFINITIONS_QNAME.equals(name)) {
definitions = definitionsFactory.createDefinitions();
targetNamespace = reader.getAttributeValue(null, TARGET_NAMESPACE);
definitions.setTargetNamespace(targetNamespace);
@@ -95,17 +94,10 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
if (extension instanceof Intent) {
Intent intent = (Intent)extension;
intent.setName(new QName(targetNamespace, intent.getName().getLocalPart()));
- if (intent instanceof QualifiedIntent) {
- QualifiedIntent qualifiedIntent = (QualifiedIntent)intent;
- qualifiedIntent.getQualifiableIntent()
- .setName(new QName(targetNamespace, qualifiedIntent.getQualifiableIntent()
- .getName().getLocalPart()));
- }
-
- // FIXME: Workaround for TUSCANY-2499
- intent.setUnresolved(false);
-
definitions.getIntents().add(intent);
+ for (Intent i : intent.getQualifiedIntents()) {
+ i.setName(new QName(targetNamespace, i.getName().getLocalPart()));
+ }
} else if (extension instanceof PolicySet) {
PolicySet policySet = (PolicySet)extension;
policySet.setName(new QName(targetNamespace, policySet.getName().getLocalPart()));
@@ -113,13 +105,10 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
} else if (extension instanceof Binding) {
Binding binding = (Binding)extension;
definitions.getBindings().add(binding);
- } else if (extension instanceof IntentAttachPointType) {
- IntentAttachPointType type = (IntentAttachPointType)extension;
- if (type.getName().getLocalPart().startsWith(BINDING)) {
- definitions.getBindingTypes().add((IntentAttachPointType)extension);
- } else if (type.getName().getLocalPart().startsWith(IMPLEMENTATION)) {
- definitions.getImplementationTypes().add((IntentAttachPointType)extension);
- }
+ } else if (extension instanceof BindingType) {
+ definitions.getBindingTypes().add((BindingType)extension);
+ } else if (extension instanceof ImplementationType) {
+ definitions.getImplementationTypes().add((ImplementationType)extension);
}
}
break;
@@ -131,7 +120,7 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
case END_ELEMENT:
name = reader.getName();
- if (SCA_DEFINITIONS_QNAME.equals(name)) {
+ if (DEFINITIONS_QNAME.equals(name)) {
return definitions;
}
break;
@@ -148,8 +137,7 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
public void write(Definitions definitions, XMLStreamWriter writer) throws ContributionWriteException,
XMLStreamException {
- writeStartDocument(writer, SCA10_NS, SCA_DEFINITIONS, new XAttr(TARGET_NAMESPACE, definitions
- .getTargetNamespace()));
+ writeStartDocument(writer, SCA11_NS, DEFINITIONS, new XAttr(TARGET_NAMESPACE, definitions.getTargetNamespace()));
for (Intent policyIntent : definitions.getIntents()) {
extensionProcessor.write(policyIntent, writer);
@@ -159,11 +147,11 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
extensionProcessor.write(policySet, writer);
}
- for (IntentAttachPointType bindingType : definitions.getBindingTypes()) {
+ for (BindingType bindingType : definitions.getBindingTypes()) {
extensionProcessor.write(bindingType, writer);
}
- for (IntentAttachPointType implType : definitions.getImplementationTypes()) {
+ for (ImplementationType implType : definitions.getImplementationTypes()) {
extensionProcessor.write(implType, writer);
}
@@ -175,71 +163,60 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
// are many cross artifact references in a definitions file and we don't want
// to be dependent on the order things appear
- List<Intent> simpleIntents = new ArrayList<Intent>();
- List<ProfileIntent> profileIntents = new ArrayList<ProfileIntent>();
- List<QualifiedIntent> qualifiedIntents = new ArrayList<QualifiedIntent>();
- List<PolicySet> simplePolicySets = new ArrayList<PolicySet>();
+ List<Intent> intents = new ArrayList<Intent>();
+ List<PolicySet> policySets = new ArrayList<PolicySet>();
List<PolicySet> referredPolicySets = new ArrayList<PolicySet>();
- for (Intent policyIntent : scaDefns.getIntents()) {
- if (policyIntent instanceof ProfileIntent)
- profileIntents.add((ProfileIntent)policyIntent);
- else if (policyIntent instanceof QualifiedIntent)
- qualifiedIntents.add((QualifiedIntent)policyIntent);
- else
- simpleIntents.add(policyIntent);
-
- resolver.addModel(policyIntent);
+ for (Intent intent : scaDefns.getIntents()) {
+ intents.add(intent);
+ resolver.addModel(intent);
+ for (Intent i : intent.getQualifiedIntents()) {
+ intents.add(i);
+ resolver.addModel(i);
+ }
}
for (PolicySet policySet : scaDefns.getPolicySets()) {
- if (policySet.getReferencedPolicySets().isEmpty())
- simplePolicySets.add(policySet);
- else
+ if (policySet.getReferencedPolicySets().isEmpty()) {
+ policySets.add(policySet);
+ } else {
referredPolicySets.add(policySet);
+ }
resolver.addModel(policySet);
}
- for (IntentAttachPointType bindingType : scaDefns.getBindingTypes()) {
+ for (BindingType bindingType : scaDefns.getBindingTypes()) {
resolver.addModel(bindingType);
}
- for (IntentAttachPointType implType : scaDefns.getImplementationTypes()) {
+ for (ImplementationType implType : scaDefns.getImplementationTypes()) {
resolver.addModel(implType);
}
// now resolve everything to ensure that any references between
// artifacts are satisfied
- for (Intent policyIntent : simpleIntents)
- extensionProcessor.resolve(policyIntent, resolver);
-
- for (ProfileIntent policyIntent : profileIntents)
- extensionProcessor.resolve(policyIntent, resolver);
-
- for (QualifiedIntent policyIntent : qualifiedIntents)
+ for (Intent policyIntent : intents)
extensionProcessor.resolve(policyIntent, resolver);
- for (PolicySet policySet : simplePolicySets)
+ for (PolicySet policySet : policySets)
extensionProcessor.resolve(policySet, resolver);
for (PolicySet policySet : referredPolicySets)
extensionProcessor.resolve(policySet, resolver);
- for (int count = 0, size = scaDefns.getBindingTypes().size(); count < size; count++) {
- IntentAttachPointType bindingType = scaDefns.getBindingTypes().get(count);
+ for (BindingType bindingType : scaDefns.getBindingTypes()) {
extensionProcessor.resolve(bindingType, resolver);
}
- for (int count = 0, size = scaDefns.getImplementationTypes().size(); count < size; count++) {
- IntentAttachPointType implType = scaDefns.getImplementationTypes().get(count);
- extensionProcessor.resolve(implType, resolver);
+ for (ImplementationType implementationType : scaDefns.getImplementationTypes()) {
+ extensionProcessor.resolve(implementationType, resolver);
}
}
public QName getArtifactType() {
- return SCA_DEFINITIONS_QNAME;
+ return DEFINITIONS_QNAME;
}
public Class<Definitions> getModelType() {
diff --git a/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
index fa33150e87..7768f11565 100644
--- a/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ b/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
@@ -16,4 +16,4 @@
# under the License.
# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.definitions.xml.DefinitionsProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#definitions,model=org.apache.tuscany.sca.definitions.Definitions
+org.apache.tuscany.sca.definitions.xml.DefinitionsProcessor;qname=http://docs.oasis-open.org/ns/opencsa/sca/200712#definitions,model=org.apache.tuscany.sca.definitions.Definitions
diff --git a/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor b/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor
index 677aff9918..78cba6e6ab 100644
--- a/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor
+++ b/java/sca/modules/definitions-xml/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor
@@ -16,4 +16,4 @@
# under the License.
# Implementation class for the artifact processor extension
-org.apache.tuscany.sca.definitions.xml.DefinitionsDocumentProcessor;type=definitions.xml,model=org.apache.tuscany.sca.definitions.Definitions
+org.apache.tuscany.sca.definitions.xml.DefinitionsDocumentProcessor;type=META-INF/definitions.xml,model=org.apache.tuscany.sca.definitions.Definitions
diff --git a/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java b/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
index 2614bbacb4..69dedd2076 100644
--- a/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
+++ b/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/ReadDocumentTestCase.java
@@ -38,11 +38,12 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensi
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+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.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.IntentMap;
import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.ProfileIntent;
-import org.apache.tuscany.sca.policy.QualifiedIntent;
+import org.apache.tuscany.sca.policy.Qualifier;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -57,16 +58,16 @@ public class ReadDocumentTestCase {
private static Definitions definitions;
private static Map<QName, Intent> intentTable = new Hashtable<QName, Intent>();
private static Map<QName, PolicySet> policySetTable = new Hashtable<QName, PolicySet>();
- private static Map<QName, IntentAttachPointType> bindingTypesTable = new Hashtable<QName, IntentAttachPointType>();
- private static Map<QName, IntentAttachPointType> implTypesTable = new Hashtable<QName, IntentAttachPointType>();
- public static final String scaNamespace = "http://www.osoa.org/xmlns/sca/1.0";
+ private static Map<QName, BindingType> bindingTypesTable = new Hashtable<QName, BindingType>();
+ private static Map<QName, ImplementationType> implTypesTable = new Hashtable<QName, ImplementationType>();
+ public static final String scaNamespace = "http://docs.oasis-open.org/ns/opencsa/sca/200712";
public static final String namespace = "http://test";
-
+
private static final QName secureWsPolicy = new QName(namespace, "SecureWSPolicy");
private static final QName confidentiality = new QName(namespace, "confidentiality");
private static final QName integrity = new QName(namespace, "integrity");
private static final QName messageProtection = new QName(namespace, "messageProtection");
- private static final QName confidentiality_transport = new QName(namespace, "confidentiality.transport");
+ private static final QName confidentiality_transport = new QName(namespace, "confidentiality.transport");
private static final QName confidentiality_message = new QName(namespace, "confidentiality.message");
private static final QName secureReliablePolicy = new QName(namespace, "SecureReliablePolicy");
private static final QName secureMessagingPolicies = new QName(namespace, "SecureMessagingPolicies");
@@ -74,125 +75,152 @@ public class ReadDocumentTestCase {
private static final QName basicAuthMsgProtSecurity = new QName(namespace, "BasicAuthMsgProtSecurity");
private static final QName wsBinding = new QName(scaNamespace, "binding.ws");
private static final QName javaImpl = new QName(scaNamespace, "implementation.java");
-
@BeforeClass
public static void setUp() throws Exception {
DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
-
+
// Create StAX processors
- StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+ StAXArtifactProcessorExtensionPoint staxProcessors =
+ extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
staxProcessors.addArtifactProcessor(new TestPolicyProcessor());
-
- URLArtifactProcessorExtensionPoint documentProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
- policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class);
-
+
+ URLArtifactProcessorExtensionPoint documentProcessors =
+ extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
+ policyDefinitionsProcessor = documentProcessors.getProcessor(Definitions.class);
+
URL url = ReadDocumentTestCase.class.getResource("test_definitions.xml");
URI uri = URI.create("test_definitions.xml");
definitions = policyDefinitionsProcessor.read(null, uri, url);
-
- for ( Intent intent : definitions.getIntents() ) {
+
+ for (Intent intent : definitions.getIntents()) {
intentTable.put(intent.getName(), intent);
+ for (Intent i : intent.getQualifiedIntents()) {
+ intentTable.put(i.getName(), i);
+ }
}
-
- for ( PolicySet policySet : definitions.getPolicySets() ) {
+
+ for (PolicySet policySet : definitions.getPolicySets()) {
policySetTable.put(policySet.getName(), policySet);
}
-
- for ( IntentAttachPointType bindingType : definitions.getBindingTypes() ) {
- bindingTypesTable.put(bindingType.getName(), bindingType);
+
+ for (BindingType bindingType : definitions.getBindingTypes()) {
+ bindingTypesTable.put(bindingType.getType(), bindingType);
}
-
- for ( IntentAttachPointType implType : definitions.getImplementationTypes() ) {
- implTypesTable.put(implType.getName(), implType);
+
+ for (ImplementationType implType : definitions.getImplementationTypes()) {
+ implTypesTable.put(implType.getType(), implType);
}
}
@Test
public void testReadSCADefinitions() throws Exception {
assertNotNull(definitions);
-
+
assertNotNull(intentTable.get(confidentiality));
assertNotNull(intentTable.get(messageProtection));
assertNotNull(intentTable.get(confidentiality_transport));
- assertTrue(intentTable.get(confidentiality).getDescription().length() > 0 );
-
+ assertTrue(intentTable.get(confidentiality).getDescription().length() > 0);
+
assertNotNull(policySetTable.get(secureReliablePolicy));
assertTrue(policySetTable.get(secureReliablePolicy).getProvidedIntents().size() == 2);
assertTrue(policySetTable.get(secureReliablePolicy).getPolicies().size() == 2);
-
+
assertNotNull(policySetTable.get(secureMessagingPolicies));
- assertEquals(policySetTable.get(secureMessagingPolicies).getMappedPolicies().size(), 3);
+ assertEquals(2, policySetTable.get(secureMessagingPolicies).getIntentMaps().get(0).getQualifiers().size());
//assertTrue(policySetTable.get(secureWsPolicy).getPolicies().get(0) instanceof org.apache.neethi.Policy);
-
+
assertEquals(bindingTypesTable.size(), 1);
assertNotNull(bindingTypesTable.get(wsBinding));
assertEquals(implTypesTable.size(), 1);
assertNotNull(implTypesTable.get(javaImpl));
}
+
+ private boolean isRealizedBy(PolicySet policySet, Intent intent) {
+ if (intent.getName().getLocalPart().indexOf('.') == -1) {
+ return policySet.getProvidedIntents().contains(intent);
+ }
+ for (IntentMap map : policySet.getIntentMaps()) {
+ for (Qualifier q : map.getQualifiers()) {
+ if (q.getIntent().equals(intent)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ private int getNumberOfQualifiedPolicies(PolicySet policySet) {
+ int count = 0;
+ for(IntentMap intentMap: policySet.getIntentMaps()) {
+ for(Qualifier q: intentMap.getQualifiers()) {
+ count += q.getPolicies().size();
+ }
+ }
+ return count;
+ }
+
@Test
public void testResolveSCADefinitions() throws Exception {
- assertTrue(intentTable.get(messageProtection) instanceof ProfileIntent);
- ProfileIntent profileIntent = (ProfileIntent)intentTable.get(new QName(namespace, "messageProtection"));
- assertNull(profileIntent.getRequiredIntents().get(0).getDescription());
-
- QName confidentiality_transport = new QName(namespace, "confidentiality.transport");
- assertTrue(intentTable.get(confidentiality_transport) instanceof QualifiedIntent);
- QualifiedIntent qualifiedIntent = (QualifiedIntent)intentTable.get(new QName(namespace, "confidentiality.transport"));
- assertNull(qualifiedIntent.getQualifiableIntent().getDescription());
-
+ Intent i1 = intentTable.get(messageProtection);
+ assertTrue(!i1.getRequiredIntents().isEmpty());
+ assertNull(i1.getRequiredIntents().get(0).getDescription());
+
+ QName confidentiality_transport = new QName(namespace, "confidentiality.transport");
+ Intent i2 = intentTable.get(confidentiality_transport);
+ assertNotNull(i2.getParent());
+
PolicySet secureReliablePolicySet = policySetTable.get(secureReliablePolicy);
PolicySet secureMessagingPolicySet = policySetTable.get(secureMessagingPolicies);
PolicySet securityPolicySet = policySetTable.get(securityPolicy);
-
+
assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity);
assertNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription());
assertTrue(secureMessagingPolicySet.isUnresolved());
- assertEquals(securityPolicySet.getMappedPolicies().size(), 5);
-
+ assertEquals(3, getNumberOfQualifiedPolicies(securityPolicySet));
+
//testing to ensure that inclusion of referred policy sets has not happened
PolicySet basicAuthMsgProtSecurityPolicySet = policySetTable.get(basicAuthMsgProtSecurity);
assertTrue(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty());
- assertTrue(basicAuthMsgProtSecurityPolicySet.getMappedPolicies().isEmpty());
-
- IntentAttachPointType wsBindingType = bindingTypesTable.get(wsBinding);
+ assertTrue(basicAuthMsgProtSecurityPolicySet.getIntentMaps().isEmpty());
+
+ BindingType wsBindingType = bindingTypesTable.get(wsBinding);
assertNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription());
- assertNull(wsBindingType.getMayProvideIntents().get(0).getDescription());
-
- IntentAttachPointType javaImplType = implTypesTable.get(javaImpl);
+ assertNull(wsBindingType.getMayProvidedIntents().get(0).getDescription());
+
+ ImplementationType javaImplType = implTypesTable.get(javaImpl);
assertNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription());
- assertNull(javaImplType.getMayProvideIntents().get(0).getDescription());
-
+ assertNull(javaImplType.getMayProvidedIntents().get(0).getDescription());
+
ModelResolver resolver = new DefaultModelResolver();
policyDefinitionsProcessor.resolve(definitions, resolver);
//builder.build(scaDefinitions);
-
+
//testing if policy intents have been linked have property been linked up
- assertNotNull(profileIntent.getRequiredIntents().get(0).getDescription());
- assertNotNull(qualifiedIntent.getQualifiableIntent().getDescription());
+ assertNotNull(i1.getRequiredIntents().get(0).getDescription());
+ // assertNotNull(i2.getQualifiableIntent().getDescription());
assertEquals(secureReliablePolicySet.getProvidedIntents().get(1).getName(), integrity);
assertNotNull(secureReliablePolicySet.getProvidedIntents().get(1).getDescription());
-
+
//testing if policysets have been properly linked up with intents
assertFalse(secureMessagingPolicySet.isUnresolved());
- assertNotNull(secureMessagingPolicySet.getMappedPolicies().get(intentTable.get(confidentiality)));
- assertNotNull(secureMessagingPolicySet.getMappedPolicies().get(intentTable.get(confidentiality_transport)));
-
+ assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality)));
+ assertTrue(isRealizedBy(secureMessagingPolicySet, intentTable.get(confidentiality_transport)));
+
//testing if intent maps have been properly mapped to policies
assertFalse(securityPolicySet.isUnresolved());
- assertNotNull(securityPolicySet.getMappedPolicies().get(intentTable.get(confidentiality)));
- assertNotNull(securityPolicySet.getMappedPolicies().get(intentTable.get(confidentiality_message)));
-
+ assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality)));
+ assertTrue(isRealizedBy(securityPolicySet, intentTable.get(confidentiality_message)));
+
//testing for inclusion of referred policysets
assertFalse(basicAuthMsgProtSecurityPolicySet.getPolicies().isEmpty());
- assertFalse(basicAuthMsgProtSecurityPolicySet.getMappedPolicies().isEmpty());
- assertNotNull(basicAuthMsgProtSecurityPolicySet.getMappedPolicies().get(intentTable.get(confidentiality_transport)));
-
+ assertFalse(basicAuthMsgProtSecurityPolicySet.getIntentMaps().get(0).getQualifiers().isEmpty());
+ assertTrue(isRealizedBy(basicAuthMsgProtSecurityPolicySet, intentTable.get(confidentiality_transport)));
+
assertNotNull(wsBindingType.getAlwaysProvidedIntents().get(0).getDescription());
- assertNotNull(wsBindingType.getMayProvideIntents().get(0).getDescription());
-
+ assertNotNull(wsBindingType.getMayProvidedIntents().get(0).getDescription());
+
assertNotNull(javaImplType.getAlwaysProvidedIntents().get(0).getDescription());
- assertNotNull(javaImplType.getMayProvideIntents().get(0).getDescription());
+ assertNotNull(javaImplType.getMayProvidedIntents().get(0).getDescription());
}
}
diff --git a/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java b/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java
index 3ff8f294f8..270aed0f90 100644
--- a/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java
+++ b/java/sca/modules/definitions-xml/src/test/java/org/apache/tuscany/sca/definitions/TestPolicyProcessor.java
@@ -28,7 +28,6 @@ import org.apache.tuscany.sca.contribution.processor.ContributionResolveExceptio
import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.policy.Policy;
/**
* A PolicyProcessor used for testing.
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 f60047e769..216cb29b0a 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
@@ -17,239 +17,190 @@
* specific language governing permissions and limitations
* under the License.
-->
-<definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
- targetNamespace="http://test"
- xmlns:test="http://test"
- xmlns:sca="http://www.osoa.org/xmlns/sca/1.0">
-
-<!-- Extension Types Metadata -->
-<implementationType type="sca:implementation.java" alwaysProvides="test:logging"
- mayProvide="test:tracing"/>
-<bindingType type="sca:binding.ws" alwaysProvides="test:confidentiality"
- mayProvide="test:integrity"/>
-
-<!-- Intents and Policysets to assume targetnamespace -->
-<intent name="TestIntentOne"
- constrains="sca:binding">
- <description>
- Test Intent
- </description>
- </intent>
-
- <intent name="TestIntentTwo"
- constrains="sca:binding"
- requires="test:TestIntentOne">
- <description>
- Protect messages from unauthorized reading or modification
- </description>
- </intent>
-
- <policySet name="TestPolicySetOne"
- provides="test:TestIntentOne"
- appliesTo="sca:binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for
- "basic authentication" -->
- </wsp:PolicyAttachment>
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for
- "reliability" -->
- </wsp:PolicyAttachment>
- </policySet>
-
-
- <!-- qualified intents -->
- <intent name="confidentiality.transport" />
- <intent name="confidentiality.message" />
- <intent name="confidentiality.message.whole" />
- <intent name="confidentiality.message.body" />
-
- <!-- POLICY SETS -->
- <policySet name="SecureReliablePolicy"
- provides="test:confidentiality.transport test:integrity"
- appliesTo="sca:binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for
- "basic authentication" -->
- </wsp:PolicyAttachment>
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for
- "reliability" -->
- </wsp:PolicyAttachment>
- </policySet>
-
- <policySet name="SecureMessagingPolicies"
- provides="test:confidentiality"
- appliesTo="binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <intentMap provides="test:confidentiality" default="transport">
- <qualifier name="transport">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for "transport" alternative -->
+<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" targetNamespace="http://test"
+ xmlns:test="http://test" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200712">
+
+ <!-- Extension Types Metadata -->
+ <implementationType type="sca:implementation.java" alwaysProvides="test:logging" mayProvide="test:tracing" />
+ <bindingType type="sca:binding.ws" alwaysProvides="test:confidentiality" mayProvide="test:integrity" />
+
+ <!-- Intents and Policysets to assume targetnamespace -->
+ <intent name="TestIntentOne" constrains="sca:binding">
+ <description>
+ Test Intent
+ </description>
+ </intent>
+
+ <intent name="TestIntentTwo" constrains="sca:binding" requires="test:TestIntentOne">
+ <description>
+ Protect messages from unauthorized reading or modification
+ </description>
+ </intent>
+
+ <policySet name="TestPolicySetOne" provides="test:TestIntentOne" appliesTo="sca:binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for
+ "basic authentication" -->
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for
+ "reliability" -->
+ </wsp:PolicyAttachment>
+ </policySet>
+
+ <!-- POLICY SETS -->
+ <policySet name="SecureReliablePolicy" provides="test:confidentiality.transport test:integrity" appliesTo="sca:binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for
+ "basic authentication" -->
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for
+ "reliability" -->
+ </wsp:PolicyAttachment>
+ </policySet>
+
+ <policySet name="SecureMessagingPolicies" provides="test:confidentiality" appliesTo="binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <intentMap provides="test:confidentiality" default="transport">
+ <qualifier name="transport">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for "transport" alternative -->
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment>...</wsp:PolicyAttachment>
+ </qualifier>
+ <qualifier name="message">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for "message" alternative" -->
</wsp:PolicyAttachment>
- <wsp:PolicyAttachment>...</wsp:PolicyAttachment>
- </qualifier>
- <qualifier name="message">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for "message" alternative" -->
- </wsp:PolicyAttachment>
- </qualifier>
- </intentMap>
-</policySet>
-
-<policySet name="SecurityPolicy"
- provides="test:confidentiality"
- appliesTo="binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" >
- <intentMap provides="test:confidentiality" default="message">
- <qualifier name="message">
- <intentMap provides="message" default="whole">
- <qualifier name="body">
- <wsp:PolicyAttachment>
- <!-- policy attachment for body encryption -->
- </wsp:PolicyAttachment>
- </qualifier>
- <qualifier name="whole">
- <wsp:PolicyAttachment>
- <!-- policy attachment for whole message encryption -->
- </wsp:PolicyAttachment>
- </qualifier>
- </intentMap>
- </qualifier>
- <qualifier name="transport">
- <wsp:PolicyAttachment>
- <!-- policy attachment for transport encryption -->
- </wsp:PolicyAttachment>
- </qualifier>
- </intentMap>
-</policySet>
-
-<policySet name="BasicAuthMsgProtSecurity"
- provides="test:authentication test:confidentiality"
- appliesTo="binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0">
- <policySetReference name="test:AuthenticationPolicies"/>
- <policySetReference name="test:ConfidentialityPolicies"/>
-</policySet>
-
-<policySet name="AuthenticationPolicies"
- provides="test:authentication"
- appliesTo="binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for "basic
+ </qualifier>
+ </intentMap>
+ </policySet>
+
+ <policySet name="SecurityPolicy" provides="test:confidentiality" appliesTo="binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <intentMap provides="test:confidentiality" default="message">
+ <qualifier name="message">
+ <wsp:PolicyAttachment>
+ <!-- policy attachment for body encryption -->
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment>
+ <!-- policy attachment for whole message encryption -->
+ </wsp:PolicyAttachment>
+ </qualifier>
+ <qualifier name="transport">
+ <wsp:PolicyAttachment>
+ <!-- policy attachment for transport encryption -->
+ </wsp:PolicyAttachment>
+ </qualifier>
+ </intentMap>
+ </policySet>
+
+ <policySet name="BasicAuthMsgProtSecurity" provides="test:authentication test:confidentiality" appliesTo="binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712">
+ <policySetReference name="test:AuthenticationPolicies" />
+ <policySetReference name="test:ConfidentialityPolicies" />
+ </policySet>
+
+ <policySet name="AuthenticationPolicies" provides="test:authentication" appliesTo="binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for "basic
authentication" -->
- </wsp:PolicyAttachment>
-</policySet>
-
-<policySet name="ConfidentialityPolicies"
- provides="test:confidentiality"
- appliesTo="binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <intentMap provides="test:confidentiality" default="transport">
- <qualifier name="transport">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for "transport"
+ </wsp:PolicyAttachment>
+ </policySet>
+
+ <policySet name="ConfidentialityPolicies" provides="test:confidentiality" appliesTo="binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <intentMap provides="test:confidentiality" default="transport">
+ <qualifier name="transport">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for "transport"
alternative -->
- </wsp:PolicyAttachment>
- <wsp:PolicyAttachment>...</wsp:PolicyAttachment>
- </qualifier>
- <qualifier name="message">
- <wsp:PolicyAttachment>
- <!-- policy expression and policy subject for "message"
- alternative" -->...
- </wsp:PolicyAttachment>
- </qualifier>
- </intentMap>
-</policySet>
-
-<policySet name="SecureWSPolicy"
- provides="test:confidentiality"
- appliesTo="sca:binding.ws"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext"
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
- <wsp:Policy>
- <wsp:ExactlyOne>
- <wsp:All>
- <sp:SecurityToken>
- <sp:TokenType>sp:X509v3</sp:TokenType>
- </sp:SecurityToken>
- <sp:UsernameToken />
- <sp:SignedParts />
- <sp:EncryptedParts>
- <sp:Body />
- </sp:EncryptedParts>
- <sp:TransportBinding>
- <sp:IncludeTimeStamp />
- </sp:TransportBinding>
- </wsp:All>
- </wsp:ExactlyOne>
- </wsp:Policy>
- </policySet>
-
-<!-- profile intent -->
- <intent name="reliableMessageProtection"
- constrains="sca:binding"
- requires="test:messageProtection">
- <description>
- Protect messages from unauthorized reading or modification
- </description>
- </intent>
-
- <intent name="messageProtection"
- constrains="sca:binding"
- requires="test:confidentiality test:integrity">
- <description>
- Protect messages from unauthorized reading or modification
- </description>
- </intent>
-
-<!-- simple intent -->
- <intent name="confidentiality"
- constrains="sca:binding">
- <description>
- Communitcation thro this binding must prevent
- unauthorized users from reading the messages.
- </description>
- </intent>
-
- <intent name="integrity"
- constrains="sca:binding">
- <description>
- Communitcation thro this binding must prevent
- unauthorized modification of the messages.
- </description>
- </intent>
-
- <intent name="authentication"
- constrains="sca:binding">
- <description>
- Communitcation thro this binding required
- Authentication.
- </description>
- </intent>
-
- <intent name="logging"
- constrains="sca:implementation">
- <description>
- All messages to and from this implementation must be logged
- </description>
- </intent>
-
- <intent name="tracing"
- constrains="sca:implementation.java">
- <description>
- Need to figure out some description for this
- </description>
- </intent>
-
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment>...</wsp:PolicyAttachment>
+ </qualifier>
+ <qualifier name="message">
+ <wsp:PolicyAttachment>
+ <!-- policy expression and policy subject for "message"
+ alternative" -->
+ ...
+ </wsp:PolicyAttachment>
+ </qualifier>
+ </intentMap>
+ </policySet>
+
+ <policySet name="SecureWSPolicy" provides="test:confidentiality" appliesTo="sca:binding.ws"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200712" xmlns:sp="http://schemas.xmlsoap.org/ws/2002/12/secext"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:Policy>
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SecurityToken>
+ <sp:TokenType>sp:X509v3</sp:TokenType>
+ </sp:SecurityToken>
+ <sp:UsernameToken />
+ <sp:SignedParts />
+ <sp:EncryptedParts>
+ <sp:Body />
+ </sp:EncryptedParts>
+ <sp:TransportBinding>
+ <sp:IncludeTimeStamp />
+ </sp:TransportBinding>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </policySet>
+
+ <!-- profile intent -->
+ <intent name="reliableMessageProtection" constrains="sca:binding" requires="test:messageProtection">
+ <description>
+ Protect messages from unauthorized reading or modification
+ </description>
+ </intent>
+
+ <intent name="messageProtection" constrains="sca:binding" requires="test:confidentiality test:integrity">
+ <description>
+ Protect messages from unauthorized reading or modification
+ </description>
+ </intent>
+
+ <!-- simple intent -->
+ <intent name="confidentiality" constrains="sca:binding">
+ <description>
+ Communitcation thro this binding must prevent
+ unauthorized users from reading the messages.
+ </description>
+ <qualifier name="transport" />
+ <qualifier name="message" default="true" />
+ </intent>
+
+ <intent name="integrity" constrains="sca:binding">
+ <description>
+ Communitcation thro this binding must prevent
+ unauthorized modification of the messages.
+ </description>
+ </intent>
+
+ <intent name="authentication" constrains="sca:binding">
+ <description>
+ Communitcation thro this binding required
+ Authentication.
+ </description>
+ </intent>
+
+ <intent name="logging" constrains="sca:implementation">
+ <description>
+ All messages to and from this implementation must be logged
+ </description>
+ </intent>
+
+ <intent name="tracing" constrains="sca:implementation.java">
+ <description>
+ Need to figure out some description for this
+ </description>
+ </intent>
+
</definitions> \ No newline at end of file