Author: bdaniel
Date: Thu Jul 15 07:02:34 2010
New Revision: 964321

URL: http://svn.apache.org/viewvc?rev=964321&view=rev
Log:
Validate that the noListener intent isn't specified on a service

Modified:
    
tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java
    
tuscany/sca-java-2.x/trunk/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties

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=964321&r1=964320&r2=964321&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
 Thu Jul 15 07:02:34 2010
@@ -36,11 +36,13 @@ import org.apache.tuscany.sca.assembly.b
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.assembly.builder.PolicyBuilder;
+import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.PolicySet;
 import org.apache.tuscany.sca.policy.PolicySubject;
+import org.apache.tuscany.sca.policy.util.PolicyHelper;
 
 /**
  * A composite builder that computes policy sets based on attached intents and 
policy sets.
@@ -126,6 +128,9 @@ public class CompositePolicyBuilderImpl 
                                 // Remove any direct policy sets if an 
external one has been applied
                                 removeDirectPolicySetsIfExternalExists(ep, 
context);
                                 
+                                // Validate that noListener is not specified 
on a service endpoint
+                                checkForNoListenerIntent(ep, context);
+                                
                                 // check that all intents are resolved
                                 checkIntentsResolved(ep, context);
 
@@ -213,7 +218,18 @@ public class CompositePolicyBuilderImpl 
         }
     }
     
-    private void removeDirectPolicySetsIfExternalExists(PolicySubject subject,
+    private void checkForNoListenerIntent(Endpoint ep, BuilderContext context) 
{
+               PolicyHelper helper = new PolicyHelper();
+               if ( helper.getIntent(ep, Constants.NOLISTENER_INTENT) != null 
) {
+                         error(context.getMonitor(), 
+                      "NoListenerIntentSpecifiedOnService", 
+                      this,
+                      ep.toString());
+               }                               
+               
+       }
+
+       private void removeDirectPolicySetsIfExternalExists(PolicySubject 
subject,
                        BuilderContext context) {
        boolean foundExternalPolicySet = false;
                for (PolicySet ps : subject.getPolicySets() ) {

Modified: 
tuscany/sca-java-2.x/trunk/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties?rev=964321&r1=964320&r2=964321&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/builder/src/main/resources/org/apache/tuscany/sca/builder/builder-validation-messages.properties
 Thu Jul 15 07:02:34 2010
@@ -31,4 +31,5 @@ PolicySetNotFoundAtBuild = PolicySet {0}
 IntentNotSatisfiedAtBuild  = The intent {0} associated with policy subject {1} 
has no matching policy set
 MutuallyExclusiveIntentsAtBuild = 
[POL40009,ASM60009,ASM60010,JCA70001,JCA70003] Intent {0} and {1} are mutually 
exclusive
 IntentNotFoundAtBuild = Intent {0} is not defined in SCA definitions
+NoListenerIntentSpecifiedOnService = The noListener intent may only be 
specified on a reference.
 


Reply via email to