Author: antelder
Date: Sat Jul 24 06:47:24 2010
New Revision: 978814
URL: http://svn.apache.org/viewvc?rev=978814&view=rev
Log:
Merge r966706,966708,966983 from trunk to beta1 branch for policy intent and
policyset updates
Modified:
tuscany/sca-java-2.x/branches/2.0-Beta1/ (props changed)
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
Propchange: tuscany/sca-java-2.x/branches/2.0-Beta1/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jul 24 06:47:24 2010
@@ -1 +1 @@
-/tuscany/sca-java-2.x/trunk:966568,966629,966650-966658,966714
+/tuscany/sca-java-2.x/trunk:966568,966629,966650-966658,966706,966708,966714,966983
Modified:
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
---
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
(original)
+++
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
Sat Jul 24 06:47:24 2010
@@ -1098,8 +1098,17 @@ public class CompositeProcessor extends
//now resolve the implementation so that even if there is
a shared instance
//for this that is resolved, the specified intents and
policysets are safe in the
//component and not lost
+ List<Intent> intents =
implementation.getRequiredIntents();
+ List<PolicySet> policySets =
implementation.getPolicySets();
+
+
implementation = resolveImplementation(implementation,
resolver, context);
+ implementation.getPolicySets().clear();
+ implementation.getPolicySets().addAll(policySets);
+ implementation.getRequiredIntents().clear();
+ implementation.getRequiredIntents().addAll(intents);
+
component.setImplementation(implementation);
}
Modified:
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
---
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
(original)
+++
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
Sat Jul 24 06:47:24 2010
@@ -145,7 +145,30 @@ public interface Constants {
String AUTHORIZATION_FINE_GRAIN = "authorization.fineGrain";
QName AUTHORIZATION_FINE_GRAIN_INTENT = new QName(SCA11_NS,
AUTHORIZATION_FINE_GRAIN);
- // TODO - add transaction intent constants
+ String MANAGED_TRANSACTION = "managedTransaction";
+ QName MANAGED_TRANSACTION_INTENT = new QName(SCA11_NS,
MANAGED_TRANSACTION);
+
+ String NO_MANAGED_TRANSACTION = "noManagedTransaction";
+ QName NO_MANAGED_TRANSACTION_INTENT = new QName(SCA11_NS,
NO_MANAGED_TRANSACTION);
+
+ String MANAGED_TRANSACTION_LOCAL = "managedTransaction.local";
+ QName MANAGED_TRANSACTION_LOCAL_INTENT = new QName(SCA11_NS,
MANAGED_TRANSACTION_LOCAL);
+
+ String MANAGED_TRANSACTION_GLOBAL = "managedTransaction.global";
+ QName MANAGED_TRANSACTION_GLOBAL_INTENT = new QName(SCA11_NS,
MANAGED_TRANSACTION_GLOBAL);
+
+ String PROPAGATES_TRANSACTION = "propagatesTransaction";
+ QName PROPAGATES_TRANSACTION_INTENT = new QName(SCA11_NS,
PROPAGATES_TRANSACTION);
+
+ String SUSPENDS_TRANSACTION = "suspendsTransaction";
+ QName SUSPENDS_TRANSACTION_INTENT = new QName(SCA11_NS,
SUSPENDS_TRANSACTION);
+
+ String TRANSACTED_ONE_WAY = "transactedOneWay";
+ QName TRANSACTED_ONE_WAY_INTENT = new QName(SCA11_NS, TRANSACTED_ONE_WAY);
+
+ String IMMEDIATE_ONE_WAY = "immediateOneWay";
+ QName IMMEDIATE_ONE_WAY_INTENT = new QName(SCA11_NS, IMMEDIATE_ONE_WAY);
+
String NOLISTENER = "noListener";
QName NOLISTENER_INTENT = new QName(SCA11_NS, NOLISTENER);
Modified:
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
---
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
(original)
+++
tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
Sat Jul 24 06:47:24 2010
@@ -49,6 +49,7 @@ import org.apache.tuscany.sca.interfaced
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.policy.BindingType;
+import org.apache.tuscany.sca.policy.ExtensionType;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.IntentMap;
import org.apache.tuscany.sca.policy.PolicySet;
@@ -559,8 +560,8 @@ public class EndpointReferenceBinderImpl
// this they must be satisfied by reference policy sets
// Failing this the intent is unresolved and the reference and
// service don't match
- List<Intent> eprIntents = new ArrayList<Intent>();
- eprIntents.addAll(endpointReference.getRequiredIntents());
+
+
// TODO - seems that we should do this loop on a binding by binding
basis
// rather than each time we do matching
@@ -573,6 +574,13 @@ public class EndpointReferenceBinderImpl
}
}
+ // Before we start examining intents, remove any whose constrained
+ // types don't include the binding type
+ removeConstrainedIntents(endpointReference, bindingType);
+
+ List<Intent> eprIntents = new ArrayList<Intent>();
+ eprIntents.addAll(endpointReference.getRequiredIntents());
+
// first check the binding type
for (Intent intent : endpointReference.getRequiredIntents()){
if (bindingType != null &&
@@ -703,7 +711,33 @@ public class EndpointReferenceBinderImpl
return match;
}
- protected boolean isQualifiedBy(Intent qualifiableIntent, Intent
qualifiedIntent){
+ // Copied from ComponentPolicyBuilder, should probably be refactored
+ protected void removeConstrainedIntents(EndpointReference subject,
BindingType bindingType) {
+ List<Intent> intents = subject.getRequiredIntents();
+
+ // Remove the intents whose @contrains do not include the current
element
+ if(bindingType != null){
+ List<Intent> copy = new ArrayList<Intent>(intents);
+ for (Intent i : copy) {
+ if (i.getConstrainedTypes().size() > 0){
+ boolean constraintFound = false;
+ for (ExtensionType constrainedType :
i.getConstrainedTypes()){
+ if
(constrainedType.getType().equals(bindingType.getType()) ||
+
constrainedType.getType().equals(bindingType.getBaseType())){
+ constraintFound = true;
+ break;
+ }
+ }
+ if(!constraintFound){
+ intents.remove(i);
+ }
+ }
+ }
+ }
+ }
+
+
+ protected boolean isQualifiedBy(Intent qualifiableIntent, Intent
qualifiedIntent){
if (qualifiedIntent.getQualifiableIntent() == qualifiableIntent){
return true;
} else {