Added a service.pid to the UserAdmin service, because it did not have one and the spec requires the user admin to send its pid as part of each event. Because this pid was missing, user admin was trying to send invalid events and failed to work (but only if event admin is actually present). Furthermore, fixed a typo in a class name.

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@919614 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java b/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
index 3486beb..1ad0754 100644
--- a/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
+++ b/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
@@ -16,11 +16,14 @@
  */

 package org.apache.felix.useradmin.impl;

 

+import java.util.Properties;

+

+import org.apache.felix.useradmin.UserAdminEventDispatcher;

 import org.apache.felix.useradmin.UserAdminRepository;

 import org.apache.felix.useradmin.UserAdminRepositoryManager;

-import org.apache.felix.useradmin.UserAdminEventDispatcher;

 import org.osgi.framework.BundleActivator;

 import org.osgi.framework.BundleContext;

+import org.osgi.framework.Constants;

 import org.osgi.framework.ServiceRegistration;

 import org.osgi.service.useradmin.UserAdmin;

 

@@ -34,6 +37,7 @@
  */

 public class Activator implements BundleActivator

 {

+    private static final String PID = "org.apache.felix.useradmin";

     private Logger logger;

     private ServiceRegistration registration;

     private UserAdminServiceImpl userAdmin;

@@ -51,11 +55,13 @@
         //Creating manager for roles repository

         UserAdminRepositoryManager repositoryManager = new UserAdminRepositoryManagerImpl(logger, repository);

         //Creating dispatcher for UserAdmin events

-        UserAdminEventDispatcher eventDispatcher = new UserAdminEventDipatcherImpl(context);

+        UserAdminEventDispatcher eventDispatcher = new UserAdminEventDispatcherImpl(context);

         userAdmin = new UserAdminServiceImpl(context, repositoryManager, logger, eventDispatcher);

         repositoryManager.initialize(userAdmin);

 

-        registration = context.registerService(UserAdmin.class.getName(), userAdmin, null);

+        Properties props = new Properties();

+        props.put(Constants.SERVICE_PID, PID);

+        registration = context.registerService(UserAdmin.class.getName(), userAdmin, props);

         userAdmin.setServiceRef(registration.getReference());

     }

 

diff --git a/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java b/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
similarity index 97%
rename from useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java
rename to useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
index 72bc04c..fcd1757 100644
--- a/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java
+++ b/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
@@ -36,7 +36,7 @@
  * 

  * @version $Rev$ $Date$

  */

-public class UserAdminEventDipatcherImpl extends Thread implements UserAdminEventDispatcher

+public class UserAdminEventDispatcherImpl extends Thread implements UserAdminEventDispatcher

 {

     private Vector queue;

     private ServiceTracker userAdminTrackerListener;

@@ -50,7 +50,7 @@
      * Setting thread as a daemon.

      * @param context bundle context

      */

-    public UserAdminEventDipatcherImpl(BundleContext context)

+    public UserAdminEventDispatcherImpl(BundleContext context)

     {

         super();

         this.queue = new Vector();