You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/12/02 01:53:01 UTC
svn commit: r481464 -
/geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java
Author: djencks
Date: Fri Dec 1 16:53:00 2006
New Revision: 481464
URL: http://svn.apache.org/viewvc?view=rev&rev=481464
Log:
GERONIMO-2611 Remove duplicates from allServiceParents
Modified:
geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java
Modified: geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java?view=diff&rev=481464&r1=481463&r2=481464
==============================================================================
--- geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java (original)
+++ geronimo/server/trunk/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/Configuration.java Fri Dec 1 16:53:00 2006
@@ -31,6 +31,7 @@
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
+import java.util.HashSet;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
@@ -269,7 +270,8 @@
//
// Get all service parents in depth first order
//
- addDepthFirstServiceParents(this, allServiceParents);
+
+ addDepthFirstServiceParents(this, allServiceParents, new HashSet());
//
// Deserialize the GBeans in the configurationData
@@ -382,11 +384,14 @@
}
}
- private void addDepthFirstServiceParents(Configuration configuration, List ancestors) {
- ancestors.add(configuration);
- for (Iterator parents = configuration.getServiceParents().iterator(); parents.hasNext();) {
- Configuration parent = (Configuration) parents.next();
- addDepthFirstServiceParents(parent, ancestors);
+ private void addDepthFirstServiceParents(Configuration configuration, List ancestors, Set ids) {
+ if (!ids.contains(configuration.getId())) {
+ ancestors.add(configuration);
+ ids.add(configuration.getId());
+ for (Iterator parents = configuration.getServiceParents().iterator(); parents.hasNext();) {
+ Configuration parent = (Configuration) parents.next();
+ addDepthFirstServiceParents(parent, ancestors, ids);
+ }
}
}
@@ -708,6 +713,13 @@
return datas;
}
+ /**
+ * Find the gbeanDatas matching the patterns in this configuration only, ignoring parents.
+ *
+ * @param configuration
+ * @param patterns
+ * @return set of gbeandatas matching one of the patterns from this configuration only, not including parents.
+ */
private LinkedHashSet findGBeanDatas(Configuration configuration, Set patterns) {
LinkedHashSet result = new LinkedHashSet();