You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/04/23 13:22:18 UTC

svn commit: r767892 - /geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java

Author: gnodet
Date: Thu Apr 23 11:22:18 2009
New Revision: 767892

URL: http://svn.apache.org/viewvc?rev=767892&view=rev
Log:
Clean a bit the NamespaceHandlerRegistryImpl class

Modified:
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java

Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java?rev=767892&r1=767891&r2=767892&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/NamespaceHandlerRegistryImpl.java Thu Apr 23 11:22:18 2009
@@ -19,16 +19,13 @@
 package org.apache.geronimo.blueprint.namespace;
 
 import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Collection;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Collections;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.Map;
 
 import org.apache.geronimo.blueprint.NamespaceHandlerRegistry;
 import org.osgi.framework.BundleContext;
@@ -36,8 +33,8 @@
 import org.osgi.service.blueprint.namespace.NamespaceHandler;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Default implementation of the NamespaceHandlerRegistry.
@@ -103,15 +100,9 @@
         for (URI uri : namespaces) {
             if (handlers.containsKey(uri)) {
                 LOGGER.warn("Ignoring NamespaceHandler for namespace {}, as another handler has already been registered for the same namespace", uri);
-                continue;
-            }
-            handlers.put(uri, handler);
-            for (Listener listener : listeners.keySet()) {
-                try {
-                    listener.namespaceHandlerRegistered(uri);
-                } catch (Throwable t) {
-                    LOGGER.debug("Unexpected exception when notifying a NamespaceHandler listener", t);
-                }
+            } else {
+                handlers.put(uri, handler);
+                callListeners(uri, true);
             }
         }
     }
@@ -123,12 +114,20 @@
                 continue;
             }
             handlers.remove(uri);
-            for (Listener listener : listeners.keySet()) {
-                try {
+            callListeners(uri, false);
+        }
+    }
+
+    private void callListeners(URI uri, boolean registered) {
+        for (Listener listener : listeners.keySet()) {
+            try {
+                if (registered) {
+                    listener.namespaceHandlerRegistered(uri);
+                } else {
                     listener.namespaceHandlerUnregistered(uri);
-                } catch (Throwable t) {
-                    LOGGER.debug("Unexpected exception when notifying a NamespaceHandler listener", t);
                 }
+            } catch (Throwable t) {
+                LOGGER.debug("Unexpected exception when notifying a NamespaceHandler listener", t);
             }
         }
     }
@@ -144,8 +143,8 @@
         } else if (ns instanceof String[]) {
             String[] strings = (String[]) ns;
             List<URI> namespaces = new ArrayList<URI>(strings.length);
-            for (int i = 0; i < strings.length; i++) {
-                namespaces.add(URI.create(strings[i]));
+            for (String string : strings) {
+                namespaces.add(URI.create(string));
             }
             return namespaces;
         } else if (ns instanceof Collection) {