Author: djencks Date: Tue Mar 1 23:23:33 2005 New Revision: 155896 URL: http://svn.apache.org/viewcvs?view=rev&rev=155896 Log: use reference map
Modified: geronimo/trunk/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java Modified: geronimo/trunk/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java?view=diff&r1=155895&r2=155896 ============================================================================== --- geronimo/trunk/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java (original) +++ geronimo/trunk/modules/service-builder/src/java/org/apache/geronimo/deployment/service/ServiceConfigBuilder.java Tue Mar 1 23:23:33 2005 @@ -55,6 +55,7 @@ import org.apache.geronimo.gbean.ReferenceCollection; import org.apache.geronimo.gbean.ReferenceCollectionListener; import org.apache.geronimo.gbean.ReferenceCollectionEvent; +import org.apache.geronimo.gbean.ReferenceMap; import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext; import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContextImpl; import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; @@ -75,6 +76,7 @@ //TODO this being static is a really good argument that all other builders should have a reference to this gbean, not use static methods on it. private static final Map xmlAttributeBuilderMap = new HashMap(); + private Map refMap; public ServiceConfigBuilder(URI defaultParentId, Repository repository) { this(defaultParentId, repository, null, null); @@ -85,27 +87,13 @@ this.repository = repository; this.kernel = kernel; if (xmlAttributeBuilders != null) { - ReferenceCollection builders = (ReferenceCollection)xmlAttributeBuilders; - ReferenceCollectionListener listener = new ReferenceCollectionListener() { + ReferenceMap.Key key = new ReferenceMap.Key() { - public void memberAdded(ReferenceCollectionEvent event) { - XmlAttributeBuilder attributeBuilder = (XmlAttributeBuilder) event.getMember(); - String namespace = attributeBuilder.getNamespace(); - xmlAttributeBuilderMap.put(namespace, attributeBuilder); - } - - public void memberRemoved(ReferenceCollectionEvent event) { - XmlAttributeBuilder attributeBuilder = (XmlAttributeBuilder) event.getMember(); - String namespace = attributeBuilder.getNamespace(); - xmlAttributeBuilderMap.remove(namespace); + public Object getKey(Object object) { + return ((XmlAttributeBuilder)object).getNamespace(); } }; - builders.addReferenceCollectionListener(listener); - for (Iterator iterator = builders.iterator(); iterator.hasNext();) { - Object o = iterator.next(); - ReferenceCollectionEvent e = new ReferenceCollectionEvent(null, o); - listener.memberAdded(e); - } + refMap = new ReferenceMap(xmlAttributeBuilders, xmlAttributeBuilderMap, key); } }