Author: slaws
Date: Mon Jan 18 20:48:27 2010
New Revision: 900548
URL: http://svn.apache.org/viewvc?rev=900548&view=rev
Log:
Check that the policy sets for a particular endpoint, endpointreference or
implementation are expressed in one language.
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=900548&r1=900547&r2=900548&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 Jan 18 20:48:27 2010
@@ -19,6 +19,8 @@
package org.apache.tuscany.sca.builder.impl;
+import java.util.Set;
+
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.Component;
@@ -178,10 +180,22 @@
for (ComponentService componentService : component.getServices()) {
for (Endpoint ep : componentService.getEndpoints()) {
- for (QName policyType : getPolicyNames(ep)) {
- PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
- if (builder != null) {
- builder.build(ep, context);
+ Set<QName> policyNames = getPolicyNames(ep);
+
+ // check that only one policy language is present in the
endpoint's policy sets
+ if (policyNames.size() > 1){
+ Monitor.error(context.getMonitor(),
+ this,
+ "builder-validation-messages",
+ "MultiplePolicyLanguagesInEP",
+ ep.toString(),
+ policyNames.toString());
+ } else {
+ for (QName policyType : policyNames) {
+ PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
+ if (builder != null) {
+ builder.build(ep, context);
+ }
}
}
}
@@ -189,10 +203,22 @@
for (ComponentReference componentReference :
component.getReferences()) {
for (EndpointReference epr :
componentReference.getEndpointReferences()) {
- for (QName policyType : getPolicyNames(epr)) {
- PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
- if (builder != null) {
- builder.build(epr, context);
+ Set<QName> policyNames = getPolicyNames(epr);
+
+ // check that only one policy language is present in the
endpoint references's policy sets
+ if (policyNames.size() > 1){
+ Monitor.error(context.getMonitor(),
+ this,
+ "builder-validation-messages",
+ "MultiplePolicyLanguagesInEPR",
+ epr.toString(),
+ policyNames.toString());
+ } else {
+ for (QName policyType : policyNames) {
+ PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
+ if (builder != null) {
+ builder.build(epr, context);
+ }
}
}
}
@@ -200,10 +226,22 @@
Implementation implementation = component.getImplementation();
if (implementation != null) {
- for (QName policyType : getPolicyNames(implementation)) {
- PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
- if (builder != null) {
- builder.build(component, implementation, context);
+ Set<QName> policyNames = getPolicyNames(implementation);
+
+ // check that only one policy language is present in the
implementations's policy sets
+ if (policyNames.size() > 1){
+ Monitor.error(context.getMonitor(),
+ this,
+ "builder-validation-messages",
+ "MultiplePolicyLanguagesInImplementation",
+ component.toString(),
+ policyNames.toString());
+ } else {
+ for (QName policyType : policyNames) {
+ PolicyBuilder builder =
builders.getPolicyBuilder(policyType);
+ if (builder != null) {
+ builder.build(component, implementation, context);
+ }
}
}
}
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=900548&r1=900547&r2=900548&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
Mon Jan 18 20:48:27 2010
@@ -22,4 +22,7 @@
# there are a whole stack of builder related messages that
# are still yet to be moved here from assembly-validation-messages.properties
PolicyAttachedToProperty = [POL40002] The policy {0} has been attached to a
property or one of its children. This is not allowed.
-PolicyDOMModelMissmatch = The DOM node which has been found as a result of
evaluating the XPath attachment of policy {0} cannot be mapped back to an
element in the SCA model. The structural URI of the node is {1}
+PolicyDOMModelMissmatch = The DOM node which has been found as a result of
evaluating the XPath attachment of policy {0} cannot be mapped back to an
element in the SCA model. The structural URI of the node is {1}
+MultiplePolicyLanguagesInEP = The policy sets for endpoint {0} contain
policies specified in more than one language {1}
+MultiplePolicyLanguagesInEPR = The policy sets for endpoint reference {0}
contain policies specified in more than one language {1}
+MultiplePolicyLanguagesInImpl = The policy sets for component {0}
implementation contain policies specified in more than one language {1}