Author: bdaniel
Date: Mon Jul 26 06:23:13 2010
New Revision: 979166
URL: http://svn.apache.org/viewvc?rev=979166&view=rev
Log:
Ensure constrained intents are removed from Composite objects
Modified:
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java
Modified:
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java?rev=979166&r1=979165&r2=979166&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentPolicyBuilderImpl.java
Mon Jul 26 06:23:13 2010
@@ -33,6 +33,7 @@ import org.apache.tuscany.sca.assembly.B
import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeReference;
import org.apache.tuscany.sca.assembly.CompositeService;
import org.apache.tuscany.sca.assembly.Contract;
@@ -42,6 +43,7 @@ import org.apache.tuscany.sca.assembly.S
import org.apache.tuscany.sca.assembly.builder.BuilderContext;
import org.apache.tuscany.sca.assembly.builder.BuilderExtensionPoint;
import org.apache.tuscany.sca.assembly.builder.Messages;
+import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.monitor.Monitor;
@@ -463,10 +465,23 @@ public class ComponentPolicyBuilderImpl
protected void removeConstrainedIntents(PolicySubject subject,
BuilderContext context) {
List<Intent> intents = subject.getRequiredIntents();
+ QName baseType = null;
+ QName type = null;
// Remove the intents whose @contrains do not include the current
element
ExtensionType extensionType = subject.getExtensionType();
- if(extensionType != null){
+
+ // Need to check elements that don't have an extension type, like
Composites
+ // References don't have an extension type, but they're checked at
wiring time
+ if ( extensionType == null ) {
+ if ( subject instanceof Composite )
+ type = Constants.COMPOSITE_QNAME;
+ } else {
+ type = extensionType.getType();
+ baseType = extensionType.getBaseType();
+ }
+
+ if(type != null){
List<Intent> copy = new ArrayList<Intent>(intents);
for (Intent i : copy) {
List<ExtensionType> constrainedTypes = i.getConstrainedTypes();
@@ -476,8 +491,8 @@ public class ComponentPolicyBuilderImpl
if (constrainedTypes.size() > 0){
boolean constraintFound = false;
for (ExtensionType constrainedType :
i.getConstrainedTypes()){
- if
(constrainedType.getType().equals(extensionType.getType()) ||
-
constrainedType.getType().equals(extensionType.getBaseType())){
+ if (constrainedType.getType().equals(type) ||
+ constrainedType.getType().equals(baseType)){
constraintFound = true;
break;
}
Modified:
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java?rev=979166&r1=979165&r2=979166&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java
Mon Jul 26 06:23:13 2010
@@ -208,6 +208,7 @@ public class CompositePolicyBuilderImpl
resolveAndCheck(implementation, context);
inherit(implementation, Intent.Type.implementation,
true, component, composite);
computePolicies((Composite)implementation, context);
+ removeConstrainedIntents(implementation, context);
expandDefaultIntents(implementation,context);
checkIntentsResolved(implementation,context);
} else {