summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/definitions-xml/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/definitions-xml/src/main')
-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
4 files changed, 63 insertions, 99 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 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