[jbpm-commits] JBoss JBPM SVN: r4844 - in jbpm4/branches/idm: modules/pvm and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue May 19 06:08:29 EDT 2009


Author: jeff.yuchang
Date: 2009-05-19 06:08:29 -0400 (Tue, 19 May 2009)
New Revision: 4844

Modified:
   jbpm4/branches/idm/modules/pvm/pom.xml
   jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionResource.java
   jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JBossIdmIdentitySessionImpl.java
   jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JbpmIdentityStore.java
   jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionDescriptor.java
   jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionFactoryDescriptor.java
   jbpm4/branches/idm/pom.xml
Log:
[JBPM-2172] update the jboss identity. 


Modified: jbpm4/branches/idm/modules/pvm/pom.xml
===================================================================
--- jbpm4/branches/idm/modules/pvm/pom.xml	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/pom.xml	2009-05-19 10:08:29 UTC (rev 4844)
@@ -85,8 +85,12 @@
       <artifactId>slf4j-jdk14</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.jboss.identity</groupId>
-      <artifactId>idm</artifactId>
+      <groupId>org.jboss.identity.idm</groupId>
+      <artifactId>idm-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.identity.idm</groupId>
+      <artifactId>idm-hibernate</artifactId>
       <exclusions>
         <exclusion>
           <groupId>javax.persistence</groupId>
@@ -209,4 +213,4 @@
     </profile>
   </profiles>
   
-</project>
\ No newline at end of file
+</project>

Modified: jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionResource.java
===================================================================
--- jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionResource.java	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/IdentitySessionResource.java	2009-05-19 10:08:29 UTC (rev 4844)
@@ -23,7 +23,7 @@
 
 import org.jboss.identity.idm.api.IdentitySession;
 import org.jboss.identity.idm.api.Transaction;
-import org.jboss.identity.idm.exception.IdentityException;
+import org.jboss.identity.idm.common.exception.IdentityException;
 import org.jbpm.api.JbpmException;
 import org.jbpm.pvm.internal.tx.StandardResource;
 

Modified: jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JBossIdmIdentitySessionImpl.java
===================================================================
--- jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JBossIdmIdentitySessionImpl.java	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JBossIdmIdentitySessionImpl.java	2009-05-19 10:08:29 UTC (rev 4844)
@@ -23,21 +23,17 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 
 import org.jboss.identity.idm.api.Attribute;
 import org.jboss.identity.idm.api.AttributesManager;
-import org.jboss.identity.idm.api.GroupType;
-import org.jboss.identity.idm.api.Identity;
-import org.jboss.identity.idm.api.IdentitySearchControl;
+import org.jboss.identity.idm.api.IdentitySearchCriteria;
 import org.jboss.identity.idm.api.IdentitySession;
 import org.jboss.identity.idm.api.RoleType;
-import org.jboss.identity.idm.exception.IdentityException;
-import org.jboss.identity.idm.impl.api.NameFilterSearchControl;
+import org.jboss.identity.idm.common.exception.IdentityException;
 import org.jboss.identity.idm.impl.api.SimpleAttribute;
-import org.jboss.identity.idm.impl.api.model.SimpleGroupType;
-import org.jboss.identity.idm.p3p.P3PConstants;
+import org.jboss.identity.idm.impl.api.model.SimpleUser;
+import org.jboss.identity.idm.common.p3p.P3PConstants;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.env.Environment;
 import org.jbpm.api.identity.Group;
@@ -46,6 +42,7 @@
 
 /**
  * @author Tom Baeyens
+ * @author Jeff Yu
  */
 public class JBossIdmIdentitySessionImpl implements org.jbpm.pvm.internal.identity.spi.IdentitySession {
 
@@ -61,37 +58,34 @@
 
   public String createUser(String userName, String givenName, String familyName, String businessEmail) {
     try {
-      Identity identity = identitySession.getPersistenceManager().createIdentity(userName);
+    	
+      org.jboss.identity.idm.api.User idUser= identitySession.getPersistenceManager().createUser(userName);
       
-      // TODO add the password
-      // identitySession.getAttributesManager().updateCredential(identity, new PasswordCredential(password));
-
-      Attribute[] attributes = new Attribute[] { 
+      Attribute[] attributes = new Attribute[] {
         new SimpleAttribute(P3PConstants.INFO_USER_NAME_GIVEN, givenName),
         new SimpleAttribute(P3PConstants.INFO_USER_NAME_FAMILY, familyName), 
         new SimpleAttribute(P3PConstants.INFO_USER_BUSINESS_INFO_ONLINE_EMAIL, businessEmail)
       };
-      identitySession.getAttributesManager().addAttributes(identity, attributes);
+      identitySession.getAttributesManager().addAttributes(idUser, attributes);
+      return idUser.getId();
+      
     } catch (IdentityException e) {
       throw new JbpmException("couldn't create user "+userName, e);
     }
 
-    throw new RuntimeException("Not yet implemented");
-    // TODO: create and return user
   }
   
 
   public List<User> findUsers() {
     try {
-      Collection<Identity> identities = identitySession
-          .getPersistenceManager()
-          .findIdentity((IdentitySearchControl[])null);
-    
+      Collection<org.jboss.identity.idm.api.User> idUsers = 
+    	  identitySession.getPersistenceManager().findUser((IdentitySearchCriteria)null);    
+      
       List<User> users = new ArrayList<User>();
-      for (Identity identity : identities) {
-        String name = identity.getName();
-        String givenName = getAttributeString(identity, null, P3PConstants.INFO_USER_NAME_GIVEN);
-        String familyName = getAttributeString(identity, P3PConstants.INFO_USER_NAME_FAMILY);
+      for (org.jboss.identity.idm.api.User idUser : idUsers) {
+    	String name = idUser.getId();
+        String givenName = getAttributeString(idUser, P3PConstants.INFO_USER_NAME_GIVEN);
+        String familyName = getAttributeString(idUser, P3PConstants.INFO_USER_NAME_FAMILY);
         
         UserImpl user = new UserImpl(name, givenName, familyName);
         users.add(user);
@@ -105,43 +99,64 @@
   }
 
   public User findUserById(String userId) {
-    throw new UnsupportedOperationException("please implement me");
+	  try {
+		org.jboss.identity.idm.api.User idUser = identitySession.getPersistenceManager().findUser(userId);
+		if (idUser != null) {
+	    	String name = idUser.getId();
+	        String givenName = getAttributeString(idUser, P3PConstants.INFO_USER_NAME_GIVEN);
+	        String familyName = getAttributeString(idUser, P3PConstants.INFO_USER_NAME_FAMILY);			
+			
+			User user = new UserImpl(name, givenName, familyName);
+			return user;
+		}
+		return null;
+	} catch (IdentityException e) {
+		throw new JbpmException("couldn't get user from id of " + userId, e);
+	}
   }
 
   public List<User> findUsersById(String... userIds) {
-    // TODO Auto-generated method stub
-    return null;
+    List<User> users = new ArrayList<User>();
+	for (String userId : userIds){
+		User user = findUserById(userId);
+		if (user != null) {
+			users.add(user);
+		}
+	}
+	  
+    return users;
   }
 
   public List<User> findUsersByGroup(String groupId) {
-  	// TODO Auto-generated method stub
-  	return null;
+	try {
+		Collection<org.jboss.identity.idm.api.User> idusers = 
+				identitySession.getRelationshipManager().findAssociatedUsers(groupId, false, null);
+		List<User> users = new ArrayList<User>();
+		
+		for (org.jboss.identity.idm.api.User iduser : idusers) {
+			users.add(findUserById(iduser.getId()));
+		}
+		
+		return users;
+	} catch (IdentityException e) {
+		throw new JbpmException("couldn't find users by groupid: " + groupId, e);
+	}
+	  
   }
 
   public void deleteUser(String userName) {
-    try {
-      org.jboss.identity.idm.api.Identity identity = findIdentity(userName);
-      
-      if (identity==null) {
-        return;
-      }
-      
-      identitySession
-          .getPersistenceManager()
-          .removeIdentity(identity, true);
-    
+    try {    	
+      identitySession.getPersistenceManager().removeUser(userName, true);    
     } catch (IdentityException e) {
-      throw new JbpmException("couldn't delete group "+userName, e);
+      throw new JbpmException("couldn't delete user ["+userName + "]", e);
     }
   }
 
   public String createGroup(String groupName, String groupType, String parentGroupId) {
-    String groupId = null;
     
     try {
-      GroupType simpleGroupType = new SimpleGroupType(groupType);
-      org.jboss.identity.idm.api.Group group = identitySession.getPersistenceManager().createGroup(groupName, simpleGroupType);
-      groupId = group.getId();
+      org.jboss.identity.idm.api.Group group = identitySession.getPersistenceManager().createGroup(groupName, groupType);
+      String groupId = group.getId();
       
       if (parentGroupId!=null) {
         org.jboss.identity.idm.api.Group parentGroup = findIdmGroupById(parentGroupId);
@@ -150,66 +165,77 @@
         }
         identitySession.getRelationshipManager().associateGroups(parentGroup, group);
       }
-      
+     return groupId;
+     
     } catch (IdentityException e) {
       throw new JbpmException("couldn't create group "+groupName, e);
     }
     
-    return groupId;
   }
   
   public Group findGroupById(String groupId) {
-    throw new UnsupportedOperationException("please implement me");
+	try {
+		org.jboss.identity.idm.api.Group idGroup = identitySession.getPersistenceManager().
+													findGroupById(groupId);
+		GroupImpl group = new GroupImpl();
+		group.setId(idGroup.getId());
+		group.setType(idGroup.getGroupType());
+		group.setName(idGroup.getName());
+		
+		//TODO add parent group if necessary.
+		
+		return group;
+		
+	} catch (IdentityException e) {
+		throw new JbpmException("couldn't find group by id [" + groupId + "]", e);
+	}  
   }
 
   public List<Group> findGroupsByGroupType(String groupType) {
     try {
-      GroupType simpleGroupType = new SimpleGroupType(groupType);
-      Collection<org.jboss.identity.idm.api.Group> idGroups = identitySession
-          .getPersistenceManager()
-          .findGroup(simpleGroupType);
+     Collection<org.jboss.identity.idm.api.Group> idGroups = identitySession.getPersistenceManager().
+     															findGroup(groupType);	
     
       List<Group> groups = new ArrayList<Group>();
       for (org.jboss.identity.idm.api.Group idGroup: idGroups) {
-        String groupName = idGroup.getName();
-
-        GroupImpl group = new GroupImpl(groupName);
-        groups.add(group);
+        groups.add(findGroupById(idGroup.getId()));
       }
       
       return groups;
       
     } catch (IdentityException e) {
-      throw new JbpmException("couldn't get users from identity component", e);
+      throw new JbpmException("couldn't get groups from identity component, groupType [" + groupType + "]", e);
     }
   }
   
   public List<Group> findGroupsByUser(String userId) {
-    throw new UnsupportedOperationException("please implement me");
+	  
+    try {
+		Collection<org.jboss.identity.idm.api.Group> idGroups = identitySession.getRelationshipManager().
+																	findAssociatedGroups(userId, null);
+		
+		List<Group> groups = new ArrayList<Group>();
+		for (org.jboss.identity.idm.api.Group idGroup : idGroups) {
+			groups.add(findGroupById(idGroup.getId()));
+		}
+		return groups;
+	} catch (IdentityException e) {
+		throw new JbpmException("Couldn't get Groups by userId [" + userId + "]", e);
+		
+	}
   }
 
   public List<Group> findGroupsByUserAndGroupType(String userName, String groupType) {
     try {
-      org.jboss.identity.idm.api.Identity identity = findIdentity(userName);
-      if (identity==null) {
-        return Collections.emptyList();
-      }
-      
+      org.jboss.identity.idm.api.User idUser = new SimpleUser(userName);
+      Collection<org.jboss.identity.idm.api.Group> idGroups = identitySession.getRelationshipManager()
+      													.findAssociatedGroups(idUser, groupType);
       List<Group> groups = new ArrayList<Group>();
-  
-      GroupType identityGroupType = new SimpleGroupType(groupType);
-      Collection<org.jboss.identity.idm.api.Group> identityGroups = identitySession
-        .getRoleManager()
-        .findGroupsWithRelatedRole(identity, identityGroupType, null);
       
-      for (org.jboss.identity.idm.api.Group identityGroup: identityGroups) {
-        String groupName = identityGroup.getName();
-        GroupImpl group = new GroupImpl(groupName);
-        groups.add(group);
+      for (org.jboss.identity.idm.api.Group idGroup : idGroups) {
+    	  groups.add(findGroupById(idGroup.getId()));
       }
-  
       return groups;
-  
     } catch (Exception e) {
       throw new JbpmException("couldn't get groups for user "+userName+" and groupType "+groupType, e);
     }
@@ -223,9 +249,7 @@
         return;
       }
 
-      identitySession
-          .getPersistenceManager()
-          .removeGroup(group, true);
+      identitySession.getPersistenceManager().removeGroup(group, true);
     
     } catch (IdentityException e) {
       throw new JbpmException("couldn't delete group "+groupId, e);
@@ -239,8 +263,8 @@
         throw new JbpmException("group "+groupId+" doesn't exist");
       }
   
-      org.jboss.identity.idm.api.Identity identity = findIdentity(userId);
-      if (identity==null) {
+      org.jboss.identity.idm.api.User idUser = identitySession.getPersistenceManager().findUser(userId);
+      if (idUser==null) {
         throw new JbpmException("user "+userId+" doesn't exist");
       }
       
@@ -251,10 +275,10 @@
           roleType = identitySession.getRoleManager().createRoleType(role);
         }
         
-        identitySession.getRoleManager().createRole(roleType, identity, group);
+        identitySession.getRoleManager().createRole(roleType, idUser, group);
         
       } else {
-        identitySession.getRelationshipManager().associateIdentities(group, identity);
+        identitySession.getRelationshipManager().associateUser(group, idUser);
       }
       
     } catch (Exception e) {
@@ -263,40 +287,36 @@
   }
   
   public void deleteMembership(String userId, String groupId, String role) {
-    throw new UnsupportedOperationException("please implement me");
+	try {
+		RoleType rtype = identitySession.getRoleManager().getRoleType(role);
+		identitySession.getRoleManager().removeRole(rtype.getName(), userId, groupId);
+	} catch (Exception e) {
+		throw new JbpmException("couldn't delete the membership [" + userId + "," + groupId + "," + role + "]", e);
+	}  
+	
   }
-  
-  protected org.jboss.identity.idm.api.Identity findIdentity(String userName) throws IdentityException {
-    Collection<org.jboss.identity.idm.api.Identity> identities = identitySession
-      .getPersistenceManager()
-      .findIdentity(new IdentitySearchControl[]{
-              new NameFilterSearchControl(userName)
-      } );
-    
-    if ( (identities==null) || (identities.size()==0) ) {
-      return null;
-    }
-    
-    return identities.iterator().next();
-  }
 
   protected org.jboss.identity.idm.api.Group findIdmGroupById(String groupId) {
-    throw new UnsupportedOperationException("please implement me");
+	try {
+		return identitySession.getPersistenceManager().findGroupById(groupId);
+	} catch (IdentityException e) {
+		throw new JbpmException("couldn't find the group by groupId: " + groupId, e);
+	}  
   }
 
-  protected String getAttributeString(Identity identity, String attributeName) throws IdentityException {
-    return getAttributeString(identity, null, attributeName);
+  protected String getAttributeString(org.jboss.identity.idm.api.User idUser, String attributeName) throws IdentityException {
+    return getAttributeString(idUser, null, attributeName);
   }
 
   protected String getAttributeString(org.jboss.identity.idm.api.Group idGroup, String attributeName) throws IdentityException {
     return getAttributeString(null, idGroup, attributeName);
   }
 
-  protected String getAttributeString(Identity identity, org.jboss.identity.idm.api.Group idGroup, String attributeName) throws IdentityException {
+  protected String getAttributeString(org.jboss.identity.idm.api.User idUser, org.jboss.identity.idm.api.Group idGroup, String attributeName) throws IdentityException {
     AttributesManager attributesManager = identitySession.getAttributesManager();
     Attribute attribute = null;
-    if (identity!=null) {
-      attribute = attributesManager.getAttribute(identity, attributeName);
+    if (idUser !=null) {
+      attribute = attributesManager.getAttribute(idUser, attributeName);
     } else {
       attribute = attributesManager.getAttribute(idGroup, attributeName);
     }
@@ -316,5 +336,4 @@
   }
 
 
-
 }

Modified: jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JbpmIdentityStore.java
===================================================================
--- jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JbpmIdentityStore.java	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/identity/impl/JbpmIdentityStore.java	2009-05-19 10:08:29 UTC (rev 4844)
@@ -22,7 +22,7 @@
 package org.jbpm.pvm.internal.identity.impl;
 
 import org.hibernate.ejb.HibernateEntityManager;
-import org.jboss.identity.idm.exception.IdentityException;
+import org.jboss.identity.idm.common.exception.IdentityException;
 import org.jboss.identity.idm.impl.store.hibernate.HibernateIdentityStoreImpl;
 import org.jboss.identity.idm.spi.store.IdentityStoreInvocationContext;
 import org.jbpm.api.env.Environment;

Modified: jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionDescriptor.java
===================================================================
--- jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionDescriptor.java	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionDescriptor.java	2009-05-19 10:08:29 UTC (rev 4844)
@@ -22,6 +22,8 @@
 package org.jbpm.pvm.internal.wire.descriptor;
 
 import org.jboss.identity.idm.api.IdentitySessionFactory;
+import org.jboss.identity.idm.common.exception.IdentityException;
+import org.jbpm.api.JbpmException;
 import org.jbpm.api.env.Environment;
 import org.jbpm.pvm.internal.identity.impl.JBossIdmIdentitySessionImpl;
 import org.jbpm.pvm.internal.wire.WireContext;
@@ -39,7 +41,11 @@
 
   public Object construct(WireContext wireContext) {
     IdentitySessionFactory identitySessionFactory = Environment.getFromCurrent(IdentitySessionFactory.class);
-    return new JBossIdmIdentitySessionImpl(identitySessionFactory.createIdentitySession(realmName));
+    try {
+		return new JBossIdmIdentitySessionImpl(identitySessionFactory.createIdentitySession(realmName));
+	} catch (IdentityException e) {
+		throw new JbpmException("couldn't create the identity session for realm [" + realmName + "]");
+	}
   }
 
   public Class< ? > getType(WireDefinition wireDefinition) {

Modified: jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionFactoryDescriptor.java
===================================================================
--- jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionFactoryDescriptor.java	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/JbossIdmIdentitySessionFactoryDescriptor.java	2009-05-19 10:08:29 UTC (rev 4844)
@@ -24,7 +24,7 @@
 import javax.naming.InitialContext;
 
 import org.jboss.identity.idm.api.IdentitySessionFactory;
-import org.jboss.identity.idm.impl.api.IdentitySessionFactoryImpl;
+import org.jboss.identity.idm.impl.configuration.IdentityConfigurationImpl;
 import org.jbpm.api.JbpmException;
 import org.jbpm.pvm.internal.wire.WireContext;
 import org.jbpm.pvm.internal.wire.WireDefinition;
@@ -32,6 +32,7 @@
 
 /**
  * @author Tom Baeyens
+ * @author Jeff Yu
  */
 public class JbossIdmIdentitySessionFactoryDescriptor extends AbstractDescriptor {
 
@@ -52,7 +53,7 @@
     }
     
     try {
-      return new IdentitySessionFactoryImpl(resource);
+      return new IdentityConfigurationImpl().configure(resource).buildIdentitySessionFactory();
     } catch (Exception e) {
       throw new JbpmException("couldn't instanatiate identity session factory: "+e.getMessage(), e);
     }

Modified: jbpm4/branches/idm/pom.xml
===================================================================
--- jbpm4/branches/idm/pom.xml	2009-05-19 09:58:15 UTC (rev 4843)
+++ jbpm4/branches/idm/pom.xml	2009-05-19 10:08:29 UTC (rev 4844)
@@ -53,7 +53,7 @@
     <slf4j.version>1.5.2</slf4j.version>
     <hsqldb.version>1.8.0.7</hsqldb.version>
     <izpack.version>4.2.1</izpack.version>
-    <jboss.identity.version>1.0.0.Alpha2</jboss.identity.version>
+    <jboss.identity.version>1.0.0.Alpha5</jboss.identity.version>
     <jboss.j2ee.version>4.2.2.GA</jboss.j2ee.version>
     <jbossesb.version>4.4.0.GA</jbossesb.version>
     <jboss.client.version>5.0.1.GA</jboss.client.version>
@@ -218,11 +218,16 @@
         <version>${slf4j.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.jboss.identity</groupId>
-        <artifactId>idm</artifactId>
+        <groupId>org.jboss.identity.idm</groupId>
+        <artifactId>idm-core</artifactId>
         <version>${jboss.identity.version}</version>
       </dependency>
       <dependency>
+        <groupId>org.jboss.identity.idm</groupId>
+        <artifactId>idm-hibernate</artifactId>
+        <version>${jboss.identity.version}</version>
+      </dependency>
+      <dependency>
         <groupId>hsqldb</groupId>
         <artifactId>hsqldb</artifactId>
         <version>${hsqldb.version}</version>




More information about the jbpm-commits mailing list