1 5 package org.exoplatform.services.organization.hibernate; 6 7 import java.util.Iterator ; 8 import java.util.List ; 9 10 import org.exoplatform.commons.utils.PageList; 11 import org.exoplatform.container.configuration.ConfigurationManager; 12 import org.exoplatform.container.configuration.ServiceConfiguration; 13 import org.exoplatform.services.organization.Group; 14 import org.exoplatform.services.organization.Membership; 15 import org.exoplatform.services.organization.MembershipType; 16 import org.exoplatform.services.organization.OrganizationService; 17 import org.exoplatform.services.organization.OrganizationServiceListener; 18 import org.exoplatform.services.organization.User; 19 import org.picocontainer.Startable; 20 26 public class OrganizationServiceListenerImpl 27 extends OrganizationServiceListener implements Startable { 28 29 private OrganizationConfig config_ ; 30 31 public OrganizationServiceListenerImpl(OrganizationService orgService, 32 ConfigurationManager cService) throws Exception { 33 PageList users = orgService.getUserPageList(10); 34 if(users.getAvailable() > 0) return ; orgService.addListener(this); 36 ServiceConfiguration sconf = cService.getServiceConfiguration(getClass()) ; 37 config_ = (OrganizationConfig)sconf.getObjectParam("organization.configuration").getObject() ; 38 } 39 40 public void inititalize(OrganizationService service) { 41 try { 42 createGroups(service) ; 43 createMembershipTypes(service) ; 44 createUsers(service) ; 45 } catch (Exception ex) { 46 ex.printStackTrace() ; 47 } 48 } 49 50 private void createGroups(OrganizationService orgService) throws Exception { 51 List groups = config_.getGroup() ; 52 for(int i = 0 ; i < groups.size() ; i++) { 53 OrganizationConfig.Group data = (OrganizationConfig.Group) groups.get(i); 54 Group group = orgService.createGroupInstance(); 55 group.setGroupName(data.getName()); 56 group.setDescription(data.getDescription()) ; 57 String parentId = data.getParentId() ; 58 if(parentId == null || parentId.length() == 0) { 59 orgService.createGroup(group); 60 } else { 61 Group parentGroup = orgService.findGroupById(parentId) ; 62 orgService.addChild(parentGroup, group) ; 63 } 64 } 65 } 66 67 private void createMembershipTypes(OrganizationService orgService) throws Exception { 68 List types = config_.getMembershipType() ; 69 for(int i = 0 ; i < types.size() ; i++) { 70 OrganizationConfig.MembershipType data = (OrganizationConfig.MembershipType) types.get(i); 71 MembershipType type = orgService.createMembershipTypeInstance(); 72 type.setName(data.getType()) ; 73 type.setDescription(data.getDescription()) ; 74 orgService.createMembershipType(type) ; 75 } 76 } 77 78 private void createUsers(OrganizationService service) throws Exception { 79 List users = config_.getUser() ; 80 for(int i = 0 ; i < users.size() ; i++) { 81 OrganizationConfig.User data = (OrganizationConfig.User) users.get(i); 82 User user = service.createUserInstance() ; 83 user.setUserName(data.getUserName()) ; 84 user.setPassword(data.getPassword()) ; 85 user.setFirstName(data.getFirstName()) ; 86 user.setLastName(data.getLastName()) ; 87 user.setEmail(data.getEmail()) ; 88 service.createUser(user); 89 List groups = data.getGroups(); 90 for (Iterator iter = groups.iterator(); iter.hasNext();) { 91 String groupId = (String ) iter.next(); 92 Group group = service.findGroupById(groupId); 93 Membership m = service.createMembershipInstance(); 94 m.setMembershipType("member"); 95 service.linkMembership(data.getUserName(), group, m); 96 } 97 } 98 } 99 100 public void start() {} 101 public void stop() {} 102 } | Popular Tags |