From cbbb016910fb4b843db35d5a8000cc4fa13954b1 Mon Sep 17 00:00:00 2001 From: bdaniel Date: Thu, 15 Jul 2010 07:02:34 +0000 Subject: Validate that the noListener intent isn't specified on a service git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@964321 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/builder/impl/CompositePolicyBuilderImpl.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'sca-java-2.x/trunk/modules/builder/src/main/java/org/apache') diff --git a/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java b/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java index bb8ea62a87..8370db00df 100644 --- a/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java +++ b/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/CompositePolicyBuilderImpl.java @@ -36,11 +36,13 @@ import org.apache.tuscany.sca.assembly.builder.BuilderContext; 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 extends ComponentPolicyBuilderImpl imple // 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 extends ComponentPolicyBuilderImpl imple } } - 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() ) { -- cgit v1.2.3