You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2008/04/21 09:02:27 UTC
svn commit: r650030 - in
/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml:
PolicyConstants.java PolicyIntentProcessor.java
Author: svkrish
Date: Mon Apr 21 00:02:26 2008
New Revision: 650030
URL: http://svn.apache.org/viewvc?rev=650030&view=rev
Log:
https://issues.apache.org/jira/browse/TUSCANY-2239
Modified:
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java?rev=650030&r1=650029&r2=650030&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java (original)
+++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java Mon Apr 21 00:02:26 2008
@@ -44,6 +44,7 @@
String QUALIFIER = ".";
String INTENT_MAP_QUALIFIER = "qualifier";
String REQUIRES = "requires";
+ String EXCLUDES = "excludes";
String DEFAULT = "default";
String WS_POLICY_NS = "http://schemas.xmlsoap.org/ws/2004/09/policy";
Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java?rev=650030&r1=650029&r2=650030&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java Mon Apr 21 00:02:26 2008
@@ -82,9 +82,12 @@
if ( policyIntent instanceof ProfileIntent ) {
readRequiredIntents((ProfileIntent)policyIntent, reader);
}
+ else {
+ readExcludedIntents(policyIntent, reader);
+ }
readConstrainedArtifacts(policyIntent, reader);
-
+
int event = reader.getEventType();
QName name = null;
while (reader.hasNext()) {
@@ -128,6 +131,17 @@
writer.writeAttribute(PolicyConstants.REQUIRES, sb.toString());
}
}
+ else {
+ if (policyIntent.getExcludedIntents() != null &&
+ policyIntent.getExcludedIntents().size() > 0) {
+ StringBuffer sb = new StringBuffer();
+ for (Intent excludedIntents : policyIntent.getExcludedIntents()) {
+ sb.append(excludedIntents.getName());
+ sb.append(" ");
+ }
+ writer.writeAttribute(PolicyConstants.EXCLUDES, sb.toString());
+ }
+ }
if (!(policyIntent instanceof QualifiedIntent) ) {
if (policyIntent.getConstrains() != null &&
@@ -252,13 +266,16 @@
if (policyIntent instanceof ProfileIntent) {
resolveProfileIntent((ProfileIntent)policyIntent, resolver);
}
+ else {
+ resolveExcludedIntents(policyIntent, resolver);
+ }
if (policyIntent instanceof QualifiedIntent) {
resolveQualifiedIntent((QualifiedIntent)policyIntent, resolver);
}
resolveContrainedArtifacts(policyIntent, resolver);
-
+
if ( !policyIntent.isUnresolved() ) {
resolver.addModel(policyIntent);
}
@@ -298,5 +315,44 @@
}
}
}
-
+
+ private void readExcludedIntents(Intent policyIntent, XMLStreamReader reader) {
+ String value = reader.getAttributeValue(null, "excludes");
+ if (value != null) {
+ List<Intent> excludedIntents = policyIntent.getExcludedIntents();
+ for (StringTokenizer tokens = new StringTokenizer(value); tokens.hasMoreTokens();) {
+ QName qname = getQNameValue(reader, tokens.nextToken());
+ Intent intent = policyFactory.createIntent();
+ intent.setName(qname);
+ intent.setUnresolved(true);
+ excludedIntents.add(intent);
+ }
+ }
+ }
+
+ private void resolveExcludedIntents(Intent policyIntent, ModelResolver resolver)
+ throws ContributionResolveException {
+ if (policyIntent != null) {
+ // resolve all excluded intents
+ List<Intent> excludedIntents = new ArrayList<Intent>();
+ for (Intent excludedIntent : policyIntent.getExcludedIntents()) {
+ if (excludedIntent.isUnresolved()) {
+ Intent resolvedExcludedIntent = resolver.resolveModel(Intent.class, excludedIntent);
+ if (resolvedExcludedIntent != null) {
+ excludedIntents.add(resolvedExcludedIntent);
+ } else {
+ throw new ContributionResolveException(
+ "Excluded Intent " + excludedIntent
+ + " not found for intent " + policyIntent);
+
+ }
+ } else {
+ excludedIntents.add(excludedIntent);
+ }
+ }
+ policyIntent.getExcludedIntents().clear();
+ policyIntent.getExcludedIntents().addAll(excludedIntents);
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org