You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/08/05 23:28:23 UTC
svn commit: r562968 - in /incubator/tuscany/java/sca/modules: ./
policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/
policy/src/main/java/org/apache/tuscany/sca/policy/
policy/src/main/java/org/apache/tuscany/sca/policy/impl/
Author: rfeng
Date: Sun Aug 5 14:28:20 2007
New Revision: 562968
URL: http://svn.apache.org/viewvc?view=rev&rev=562968
Log:
Fix the IntentImp.hashCode, toString and a few issues in SCADefinitionsBuilderImpl to not exclude resolved intents
Modified:
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyIntentProcessor.java
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
incubator/tuscany/java/sca/modules/pom.xml
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?view=diff&rev=562968&r1=562967&r2=562968
==============================================================================
--- 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 Sun Aug 5 14:28:20 2007
@@ -67,6 +67,7 @@
int qualifierIndex = policyIntentName.lastIndexOf(QUALIFIER);
Intent qualifiableIntent = policyFactory.createIntent();
+ qualifiableIntent.setUnresolved(true);
qualifiableIntent.setName(getQNameValue(reader,
policyIntentName.substring(0, qualifierIndex)));
@@ -245,6 +246,7 @@
QName qname = getQNameValue(reader, tokens.nextToken());
Intent intent = policyFactory.createIntent();
intent.setName(qname);
+ intent.setUnresolved(true);
requiredIntents.add(intent);
}
}
Modified: incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java?view=diff&rev=562968&r1=562967&r2=562968
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/SCADefinitionsBuilderImpl.java Sun Aug 5 14:28:20 2007
@@ -38,152 +38,171 @@
*
*/
public class SCADefinitionsBuilderImpl implements SCADefinitionsBuilder {
-
+
public void build(SCADefinitions scaDefns) throws SCADefinitionsBuilderException {
Map<QName, Intent> definedIntents = new HashMap<QName, Intent>();
- for ( Intent intent : scaDefns.getPolicyIntents() ) {
+ for (Intent intent : scaDefns.getPolicyIntents()) {
definedIntents.put(intent.getName(), intent);
}
-
+
Map<QName, PolicySet> definedPolicySets = new HashMap<QName, PolicySet>();
- for ( PolicySet policySet : scaDefns.getPolicySets() ) {
+ for (PolicySet policySet : scaDefns.getPolicySets()) {
definedPolicySets.put(policySet.getName(), policySet);
}
buildPolicyIntents(scaDefns, definedIntents);
buildPolicySets(scaDefns, definedPolicySets, definedIntents);
}
-
- private void buildPolicyIntents(SCADefinitions scaDefns, Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
+
+ private void buildPolicyIntents(SCADefinitions scaDefns, Map<QName, Intent> definedIntents)
+ throws SCADefinitionsBuilderException {
for (Intent policyIntent : scaDefns.getPolicyIntents()) {
- if ( policyIntent instanceof ProfileIntent ) {
+ if (policyIntent instanceof ProfileIntent) {
buildProfileIntent((ProfileIntent)policyIntent, definedIntents);
- }
-
- if ( policyIntent instanceof QualifiedIntent ) {
+ }
+
+ if (policyIntent instanceof QualifiedIntent) {
buildQualifiedIntent((QualifiedIntent)policyIntent, definedIntents);
}
}
}
-
- private void buildPolicySets(SCADefinitions scaDefns,
- Map<QName, PolicySet> definedPolicySets,
+
+ private void buildPolicySets(SCADefinitions scaDefns,
+ Map<QName, PolicySet> definedPolicySets,
Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
-
- for ( PolicySet policySet : scaDefns.getPolicySets() ) {
+
+ for (PolicySet policySet : scaDefns.getPolicySets()) {
buildProvidedIntents(policySet, definedIntents);
buildIntentsInMappedPolicies(policySet, definedIntents);
buildReferredPolicySets(policySet, definedPolicySets);
}
-
- for ( PolicySet policySet : scaDefns.getPolicySets() ) {
- for ( PolicySet referredPolicySet : policySet.getReferencedPolicySets() ) {
+
+ for (PolicySet policySet : scaDefns.getPolicySets()) {
+ for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) {
includeReferredPolicySets(policySet, referredPolicySet);
}
}
}
-
- private void buildProfileIntent(ProfileIntent policyIntent, Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
+
+ private void buildProfileIntent(ProfileIntent policyIntent, Map<QName, Intent> definedIntents)
+ throws SCADefinitionsBuilderException {
//FIXME: Need to check for cyclic references first i.e an A requiring B and then B requiring A...
- if (policyIntent != null ) {
+ if (policyIntent != null) {
//resolve all required intents
- List<Intent> requiredIntents = new ArrayList<Intent>();
+ List<Intent> requiredIntents = new ArrayList<Intent>();
for (Intent requiredIntent : policyIntent.getRequiredIntents()) {
- if ( requiredIntent.isUnresolved() ) {
+ if (requiredIntent.isUnresolved()) {
Intent resolvedRequiredIntent = definedIntents.get(requiredIntent.getName());
- if ( resolvedRequiredIntent != null ) {
- requiredIntents.add(resolvedRequiredIntent);
+ if (resolvedRequiredIntent != null) {
+ requiredIntents.add(resolvedRequiredIntent);
} else {
- throw new SCADefinitionsBuilderException("Required Intent - " + requiredIntent +
- " not found for ProfileIntent " + policyIntent);
-
+ throw new SCADefinitionsBuilderException("Required Intent - " + requiredIntent
+ + " not found for ProfileIntent "
+ + policyIntent);
+
}
+ } else {
+ requiredIntents.add(requiredIntent);
}
}
policyIntent.getRequiredIntents().clear();
policyIntent.getRequiredIntents().addAll(requiredIntents);
}
}
-
- private void buildQualifiedIntent(QualifiedIntent policyIntent, Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
+
+ private void buildQualifiedIntent(QualifiedIntent policyIntent, Map<QName, Intent> definedIntents)
+ throws SCADefinitionsBuilderException {
if (policyIntent != null) {
//resolve the qualifiable intent
Intent qualifiableIntent = policyIntent.getQualifiableIntent();
- if ( qualifiableIntent.isUnresolved() ) {
+ if (qualifiableIntent.isUnresolved()) {
Intent resolvedQualifiableIntent = definedIntents.get(qualifiableIntent.getName());
-
- if ( resolvedQualifiableIntent != null ) {
+
+ if (resolvedQualifiableIntent != null) {
policyIntent.setQualifiableIntent(resolvedQualifiableIntent);
} else {
- throw new SCADefinitionsBuilderException("Qualifiable Intent - " + qualifiableIntent +
- " not found for QualifiedIntent " + policyIntent);
+ throw new SCADefinitionsBuilderException("Qualifiable Intent - " + qualifiableIntent
+ + " not found for QualifiedIntent "
+ + policyIntent);
}
-
+
}
}
}
-
- private void buildProvidedIntents(PolicySet policySet, Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- if (policySet != null ) {
+
+ private void buildProvidedIntents(PolicySet policySet, Map<QName, Intent> definedIntents)
+ throws SCADefinitionsBuilderException {
+ if (policySet != null) {
//resolve all provided intents
- List<Intent> providedIntents = new ArrayList<Intent>();
+ List<Intent> providedIntents = new ArrayList<Intent>();
for (Intent providedIntent : policySet.getProvidedIntents()) {
- if ( providedIntent.isUnresolved() ) {
+ if (providedIntent.isUnresolved()) {
Intent resolvedProvidedIntent = definedIntents.get(providedIntent.getName());
- if ( resolvedProvidedIntent != null ) {
- providedIntents.add(resolvedProvidedIntent);
- } else {
- throw new SCADefinitionsBuilderException("Provided Intent - " + providedIntent +
- " not found for PolicySet " + policySet);
-
- }
+ if (resolvedProvidedIntent != null) {
+ providedIntents.add(resolvedProvidedIntent);
+ } else {
+ throw new SCADefinitionsBuilderException("Provided Intent - " + providedIntent
+ + " not found for PolicySet "
+ + policySet);
+
+ }
+ } else {
+ providedIntents.add(providedIntent);
}
}
policySet.getProvidedIntents().clear();
policySet.getProvidedIntents().addAll(providedIntents);
}
}
-
- private void buildIntentsInMappedPolicies(PolicySet policySet, Map<QName, Intent> definedIntents) throws SCADefinitionsBuilderException {
- Map<Intent, List<Policy>> mappedPolicies = new Hashtable<Intent, List<Policy>>();
- for ( Intent mappedIntent : policySet.getMappedPolicies().keySet() ) {
- if ( mappedIntent.isUnresolved() ) {
+
+ private void buildIntentsInMappedPolicies(PolicySet policySet, Map<QName, Intent> definedIntents)
+ throws SCADefinitionsBuilderException {
+ Map<Intent, List<Policy>> mappedPolicies = new Hashtable<Intent, List<Policy>>();
+ for (Map.Entry<Intent, List<Policy>> entry : policySet.getMappedPolicies().entrySet()) {
+ Intent mappedIntent = entry.getKey();
+ if (mappedIntent.isUnresolved()) {
Intent resolvedMappedIntent = definedIntents.get(mappedIntent.getName());
-
- if ( resolvedMappedIntent != null ) {
- mappedPolicies.put(resolvedMappedIntent, policySet.getMappedPolicies().get(mappedIntent));
+
+ if (resolvedMappedIntent != null) {
+ mappedPolicies.put(resolvedMappedIntent, entry.getValue());
} else {
- throw new SCADefinitionsBuilderException("Mapped Intent - " + mappedIntent +
- " not found for PolicySet " + policySet);
-
+ throw new SCADefinitionsBuilderException("Mapped Intent - " + mappedIntent
+ + " not found for PolicySet "
+ + policySet);
+
}
+ } else {
+ mappedPolicies.put(mappedIntent, entry.getValue());
}
}
-
+
policySet.getMappedPolicies().clear();
policySet.getMappedPolicies().putAll(mappedPolicies);
}
-
-
- private void buildReferredPolicySets(PolicySet policySet, Map<QName, PolicySet> definedPolicySets) throws SCADefinitionsBuilderException {
-
- List<PolicySet> referredPolicySets = new ArrayList<PolicySet>();
- for ( PolicySet referredPolicySet : policySet.getReferencedPolicySets() ) {
- if ( referredPolicySet.isUnresolved() ) {
+
+ private void buildReferredPolicySets(PolicySet policySet, Map<QName, PolicySet> definedPolicySets)
+ throws SCADefinitionsBuilderException {
+
+ List<PolicySet> referredPolicySets = new ArrayList<PolicySet>();
+ for (PolicySet referredPolicySet : policySet.getReferencedPolicySets()) {
+ if (referredPolicySet.isUnresolved()) {
PolicySet resolvedReferredPolicySet = definedPolicySets.get(referredPolicySet.getName());
- if ( resolvedReferredPolicySet != null ) {
+ if (resolvedReferredPolicySet != null) {
referredPolicySets.add(resolvedReferredPolicySet);
} else {
- throw new SCADefinitionsBuilderException("Referred PolicySet - " + referredPolicySet +
- "not found for PolicySet - " + policySet);
+ throw new SCADefinitionsBuilderException("Referred PolicySet - " + referredPolicySet
+ + "not found for PolicySet - "
+ + policySet);
}
+ } else {
+ referredPolicySets.add(referredPolicySet);
}
}
policySet.getReferencedPolicySets().clear();
policySet.getReferencedPolicySets().addAll(referredPolicySets);
}
-
+
private void includeReferredPolicySets(PolicySet policySet, PolicySet referredPolicySet) {
- for ( PolicySet furtherReferredPolicySet : referredPolicySet.getReferencedPolicySets() ) {
+ for (PolicySet furtherReferredPolicySet : referredPolicySet.getReferencedPolicySets()) {
includeReferredPolicySets(referredPolicySet, furtherReferredPolicySet);
}
policySet.getPolicies().addAll(referredPolicySet.getPolicies());
Modified: incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java?view=diff&rev=562968&r1=562967&r2=562968
==============================================================================
--- incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java (original)
+++ incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java Sun Aug 5 14:28:20 2007
@@ -72,13 +72,6 @@
List<QName> getConstrains();
/**
- * Returns the list of required intents.
- *
- * @return
- */
- List<Intent> getRequiredIntents();
-
- /**
* Returns the list of children qualified intents.
*
* @return the list of children qualified intents.
Modified: incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java?view=diff&rev=562968&r1=562967&r2=562968
==============================================================================
--- incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java (original)
+++ incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java Sun Aug 5 14:28:20 2007
@@ -37,11 +37,11 @@
private static final String DOMAIN_SEPARATOR = ".";
private QName name;
private List<Operation> operations = new ArrayList<Operation>();
- private List<QName> constrains;
+ private List<QName> constrains = new ArrayList<QName>();
private String description;
- private List<Intent> qualifiedIntents;
- private List<Intent> requiredIntents;
- private boolean unresolved;
+ private List<Intent> qualifiedIntents = new ArrayList<Intent>();;
+ // private List<Intent> requiredIntents = new ArrayList<Intent>();;
+ private boolean unresolved = true;
private String domain;
private String[] qualifiedNames;
@@ -95,10 +95,6 @@
return qualifiedIntents;
}
- public List<Intent> getRequiredIntents() {
- return requiredIntents;
- }
-
public boolean isUnresolved() {
return unresolved;
}
@@ -107,23 +103,44 @@
this.unresolved = unresolved;
}
+ /**
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ QName intentName = getName();
+ result = prime * result + ((intentName == null) ? 0 : intentName.hashCode());
+ return result;
+ }
+
+ /**
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
public boolean equals(Object obj) {
- if (obj == this) {
+ if (this == obj) {
return true;
- } else {
- if (obj instanceof IntentImpl) {
- if (getName() != null) {
- return getName().equals(((IntentImpl)obj).getName());
- } else {
- return ((IntentImpl)obj).getName() == null;
- }
- } else {
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof IntentImpl)) {
+ return false;
+ }
+ final IntentImpl other = (IntentImpl)obj;
+ if (getName() == null) {
+ if (other.getName() != null) {
return false;
}
+ } else if (!getName().equals(other.getName())) {
+ return false;
}
+ return true;
}
-
+
public String toString() {
- return name.toString();
+ return String.valueOf(getName());
}
}
Modified: incubator/tuscany/java/sca/modules/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/pom.xml?view=diff&rev=562968&r1=562967&r2=562968
==============================================================================
--- incubator/tuscany/java/sca/modules/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/pom.xml Sun Aug 5 14:28:20 2007
@@ -102,7 +102,7 @@
<module>maven-java2wsdl</module>
<module>maven-wsdl2java</module>
<module>policy</module>
- <!--module>policy-xml</module-->
+ <module>policy-xml</module>
<module>sca-api</module>
<module>topology</module>
<module>topology-xml</module>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org