Author: bdaw
Date: 2007-02-06 20:38:37 -0500 (Tue, 06 Feb 2007)
New Revision: 6181
Modified:
trunk/identity/build.xml
trunk/identity/src/main/org/jboss/portal/identity/IdentityContext.java
trunk/identity/src/main/org/jboss/portal/identity/IdentityServiceControllerImpl.java
trunk/identity/src/main/org/jboss/portal/identity/db/HibernateUserModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/service/IdentityModuleService.java
trunk/identity/src/main/org/jboss/portal/identity/service/UserModuleService.java
Log:
- Integrate IdentityEventService and fireEvent() invocations into UserModule
implementations
Modified: trunk/identity/build.xml
===================================================================
--- trunk/identity/build.xml 2007-02-07 00:24:23 UTC (rev 6180)
+++ trunk/identity/build.xml 2007-02-07 01:38:37 UTC (rev 6181)
@@ -454,8 +454,8 @@
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.db.DBIdentityTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.UserProtoTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ConfigurationTestCase"/>-->
- <!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPSimpleUserModuleTestCase"/>-->
- <test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPSimpleRoleModuleTestCase"/>
+ <test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPSimpleUserModuleTestCase"/>
+ <!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPSimpleRoleModuleTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPStaticGroupMembershipModuleTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPStaticRoleMembershipModuleTestCase"/>-->
<!--<test todir="${test.reports}"
name="org.jboss.portal.test.identity.ldap.LDAPUserProfileModuleTestCase"/>-->
Modified: trunk/identity/src/main/org/jboss/portal/identity/IdentityContext.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/identity/IdentityContext.java 2007-02-07
00:24:23 UTC (rev 6180)
+++ trunk/identity/src/main/org/jboss/portal/identity/IdentityContext.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -41,7 +41,9 @@
public static final String TYPE_IDENTITY_CONFIGURATION =
"IdentityConfiguration";
+ public static final String TYPE_IDENTITY_EVENT_BROADCASTER =
"IdentityEventBroadcaster";
+
public void register(Object object, String name) throws IdentityException;
public void unregister(String name);
Modified:
trunk/identity/src/main/org/jboss/portal/identity/IdentityServiceControllerImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/IdentityServiceControllerImpl.java 2007-02-07
00:24:23 UTC (rev 6180)
+++
trunk/identity/src/main/org/jboss/portal/identity/IdentityServiceControllerImpl.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -28,6 +28,7 @@
import org.jboss.portal.identity.IdentityContext;
import org.jboss.portal.identity.IdentityContextImpl;
import org.jboss.portal.identity.IdentityServiceController;
+import org.jboss.portal.identity.event.IdentityEventBroadcaster;
import org.jboss.portal.identity.config.metadata.IdentityConfigurationMetaData;
import org.jboss.portal.identity.config.metadata.ModuleMetaData;
import org.jboss.portal.identity.config.metadata.ConfigOptionMetaData;
@@ -38,6 +39,7 @@
import org.jboss.portal.identity.config.metadata.ConfigurationParser;
import org.jboss.portal.identity.service.IdentityModuleService;
import org.jboss.portal.identity.service.IdentityConfigurationService;
+import org.jboss.portal.identity.service.IdentityEventService;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.kernel.plugins.bootstrap.basic.BasicBootstrap;
@@ -70,6 +72,8 @@
private String defaultConfigFile;
+ private IdentityEventBroadcaster identityEventBroadcaster;
+
/**
* .
*/
@@ -122,9 +126,30 @@
}
catch (Throwable throwable)
{
- throw new IdentityException(throwable);
+ throw new IdentityException("Unable to install
IdentityContext",throwable);
}
+
+ //IdentityEventBroadcaster
+ IdentityEventBroadcaster broadcaster = null;
+ try
+ {
+ broadcaster = instantiateIdentityEventBroadcaster();
+ if(broadcaster != null)
+ {
+ identityContext.register(broadcaster,
IdentityContext.TYPE_IDENTITY_EVENT_BROADCASTER);
+ }
+ else
+ {
+ throw new NullPointerException();
+ }
+ }
+ catch (Throwable throwable)
+ {
+ throw new IdentityException("Unable to install
IdentityEventBroadcaster", throwable);
+ }
+
+
//TODO:update meta options using defaultMeta options
//create detault modules set
@@ -489,7 +514,7 @@
* @param config
* @param defaults
*/
- public void updateOptionsWithDefaults(IdentityConfigurationService config,
OptionsMetaData defaults)
+ private void updateOptionsWithDefaults(IdentityConfigurationService config,
OptionsMetaData defaults)
{
//Map newGroups = new HashMap();
Map groups = defaults.getGroups();
@@ -525,7 +550,18 @@
}
+ /**
+ * Instantiates IdentityEventBroadcaster and register proper events in it
+ * @return
+ */
+ private IdentityEventBroadcaster instantiateIdentityEventBroadcaster()
+ {
+ return new IdentityEventService();
+ }
+
+
+
public IdentityContext getIdentityContext()
{
return identityContext;
@@ -581,4 +617,14 @@
{
this.registerMBeans = registerMBeans;
}
+
+ public IdentityEventBroadcaster getIdentityEventBroadcaster()
+ {
+ return identityEventBroadcaster;
+ }
+
+ public void setIdentityEventBroadcaster(IdentityEventBroadcaster
identityEventBroadcaster)
+ {
+ this.identityEventBroadcaster = identityEventBroadcaster;
+ }
}
Modified:
trunk/identity/src/main/org/jboss/portal/identity/db/HibernateUserModuleImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/db/HibernateUserModuleImpl.java 2007-02-07
00:24:23 UTC (rev 6180)
+++
trunk/identity/src/main/org/jboss/portal/identity/db/HibernateUserModuleImpl.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -166,6 +166,10 @@
//user.setRealEmail(realEmail);
Session session = getCurrentSession();
session.save(user);
+
+ //fire events
+ fireUserCreatedEvent(user.getId(), user.getUserName());
+
return user;
}
catch (HibernateException e)
@@ -189,12 +193,17 @@
{
Session session = getCurrentSession();
HibernateUserImpl user =
(HibernateUserImpl)session.load(HibernateUserImpl.class, (Serializable)id);
+
+ String userName = user.getUserName();
if (user == null)
{
throw new NoSuchUserException("No such user " + id);
}
session.delete(user);
session.flush();
+
+ //fire events
+ fireUserDestroyedEvent(id, userName);
}
catch (HibernateException e)
{
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-07
00:24:23 UTC (rev 6180)
+++
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -177,16 +177,13 @@
log.debug("creating ldap entry for: " + dn + "; " + attrs);
ctx.createSubcontext(dn, attrs);
}
-// catch (NoSuchAlgorithmException e)
-// {
-// throw new IdentityException("Failed to create user", e);
-// }
catch (Exception e)
{
throw new IdentityException("Failed to create user", e);
}
-
- return findUserByUserName(userName);
+ User u = findUserByUserName(userName);
+ fireUserCreatedEvent(u.getId(), u.getUserName());
+ return u;
}
//TODO: remove user assignments before?
@@ -195,6 +192,8 @@
LDAPUserImpl ldapu = (LDAPUserImpl)findUserById(id);
+ String userName = ldapu.getUserName();
+
if (ldapu == null)
{
throw new IdentityException("Cannot find user for removal");
@@ -216,7 +215,8 @@
throw new IdentityException("Failed to remove user: ", e);
}
-
+ //user was successfull removed so fire events
+ fireUserDestroyedEvent(id, userName);
}
Modified:
trunk/identity/src/main/org/jboss/portal/identity/service/IdentityModuleService.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/service/IdentityModuleService.java 2007-02-07
00:24:23 UTC (rev 6180)
+++
trunk/identity/src/main/org/jboss/portal/identity/service/IdentityModuleService.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -25,6 +25,7 @@
import org.jboss.portal.identity.IdentityConfiguration;
import org.jboss.portal.common.util.JNDI;
import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.event.IdentityEventBroadcaster;
import org.jboss.portal.jems.as.system.AbstractJBossService;
import java.util.Map;
@@ -126,6 +127,11 @@
}
}
+ protected IdentityEventBroadcaster getIdentityEventBroadcaster() throws
IdentityException
+ {
+ return
(IdentityEventBroadcaster)getIdentityContext().getObject(IdentityContext.TYPE_IDENTITY_EVENT_BROADCASTER);
+ }
+
public IdentityContext getIdentityContext()
{
return identityContext;
Modified:
trunk/identity/src/main/org/jboss/portal/identity/service/UserModuleService.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/service/UserModuleService.java 2007-02-07
00:24:23 UTC (rev 6180)
+++
trunk/identity/src/main/org/jboss/portal/identity/service/UserModuleService.java 2007-02-07
01:38:37 UTC (rev 6181)
@@ -23,6 +23,10 @@
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.IdentityContext;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.event.IdentityEvent;
+import org.jboss.portal.identity.event.UserCreatedEvent;
+import org.jboss.portal.identity.event.UserDestroyedEvent;
/**
* @author <a href="mailto:boleslaw dot dawidowicz at jboss.org">Boleslaw
Dawidowicz</a>
@@ -36,4 +40,17 @@
{
super(IdentityContext.TYPE_USER_MODULE);
}
+
+ protected void fireUserCreatedEvent(Object userId, String userName) throws
IdentityException
+ {
+ IdentityEvent event = new UserCreatedEvent(userId, userName);
+ getIdentityEventBroadcaster().fireEvent(event);
+ }
+
+ protected void fireUserDestroyedEvent(Object userId, String userName) throws
IdentityException
+ {
+ IdentityEvent event = new UserDestroyedEvent(userId, userName);
+ getIdentityEventBroadcaster().fireEvent(event);
+ }
+
}