Author: bdaw
Date: 2011-05-18 07:42:27 -0400 (Wed, 18 May 2011)
New Revision: 6480
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IDMUserListAccess.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/MembershipDAOImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/UserDAOImpl.java
portal/trunk/pom.xml
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/organization/webui/component/UIUserInGroup.java
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObject.hbm.xml
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObjectAttribute.hbm.xml
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObject.hbm.xml
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObjectAttribute.hbm.xml
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
Log:
Performance optimizations for :
GTNPORTAL-1891
GTNPORTAL-1890
GTNPORTAL-1887
GTNPORTAL-1880
Some of those are more related to changes in picketlink idm
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -235,6 +235,9 @@
try
{
+
+ orgService.commitTransaction();
+
jbidGroup =
getIdentitySession().getPersistenceManager().
findGroup(plGroupName,
orgService.getConfiguration().getGroupType(group.getParentId()));
@@ -253,6 +256,8 @@
try
{
+ orgService.commitTransaction();
+
Collection<org.picketlink.idm.api.Group> oneLevelChilds =
getIdentitySession().getRelationshipManager().findAssociatedGroups(jbidGroup,
null, true, false);
@@ -308,6 +313,8 @@
try
{
+ orgService.commitTransaction();
+
allRoles = getIdentitySession().getRoleManager().findRoles(userName,
membershipType);
}
catch (Exception e)
@@ -333,6 +340,8 @@
try
{
+ orgService.commitTransaction();
+
groups =
getIdentitySession().getRelationshipManager().findAssociatedGroups(userName, null);
}
catch (Exception e)
@@ -462,6 +471,8 @@
try
{
+ orgService.commitTransaction();
+
plGroups.addAll(getIdentitySession().getRelationshipManager().
findAssociatedGroups(jbidGroup, null, true, false));
}
@@ -591,6 +602,8 @@
try
{
+ orgService.commitTransaction();
+
allGroups =
getIdentitySession().getRelationshipManager().findRelatedGroups(user, null, null);
}
catch (Exception e)
@@ -638,6 +651,9 @@
try
{
+
+ orgService.commitTransaction();
+
plGroups
.addAll(getIdentitySession().getRelationshipManager().findAssociatedGroups(getRootGroup(),
null, true, true));
}
@@ -746,6 +762,8 @@
try
{
+ orgService.commitTransaction();
+
attrs = getIdentitySession().getAttributesManager().getAttributes(jbidGroup);
}
catch (Exception e)
@@ -869,6 +887,8 @@
try
{
+ orgService.commitTransaction();
+
parents =
getIdentitySession().getRelationshipManager().findAssociatedGroups(jbidGroup, null, false,
false);
}
catch (Exception e)
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IDMUserListAccess.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IDMUserListAccess.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IDMUserListAccess.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -21,6 +21,8 @@
import org.exoplatform.commons.utils.ListAccess;
import org.exoplatform.services.organization.User;
+import org.exoplatform.services.organization.impl.UserImpl;
+
import org.gatein.common.logging.LogLevel;
import org.gatein.common.logging.Logger;
import org.gatein.common.logging.LoggerFactory;
@@ -29,12 +31,13 @@
import org.picketlink.idm.api.query.UserQueryBuilder;
+import java.io.Serializable;
import java.util.List;
/*
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
*/
-public class IDMUserListAccess implements ListAccess<User>
+public class IDMUserListAccess implements ListAccess<User>, Serializable
{
private static Logger log = LoggerFactory.getLogger(IDMUserListAccess.class);
@@ -48,6 +51,10 @@
private final boolean countAll;
+ private List<org.picketlink.idm.api.User> fullResults;
+
+ private int size = -1;
+
public IDMUserListAccess(UserDAOImpl userDAO, PicketLinkIDMService idmService,
UserQueryBuilder userQueryBuilder,
int pageSize, boolean countAll)
{
@@ -73,17 +80,30 @@
);
}
- userQueryBuilder.page(index, length);
- UserQuery query = userQueryBuilder.sort(SortOrder.ASCENDING).createQuery();
- List<org.picketlink.idm.api.User> users =
idmService.getIdentitySession().list(query);
+ List<org.picketlink.idm.api.User> users = null;
+ if (fullResults == null)
+ {
+ userDAO.getOrgService().commitTransaction();
+
+ userQueryBuilder.page(index, length);
+ UserQuery query = userQueryBuilder.sort(SortOrder.ASCENDING).createQuery();
+ users = idmService.getIdentitySession().list(query);
+ }
+ else
+ {
+ users = fullResults.subList(index, index + length);
+ }
+
User[] exoUsers = new User[users.size()];
for (int i = 0; i < users.size(); i++)
{
org.picketlink.idm.api.User user = users.get(i);
- exoUsers[i] = UserDAOImpl.getPopulatedUser(user.getId(),
idmService.getIdentitySession());
+ User gtnUser = new UserImpl(user.getId());
+ userDAO.populateUser(gtnUser, idmService.getIdentitySession());
+ exoUsers[i] = gtnUser;
}
if (log.isTraceEnabled())
@@ -111,22 +131,39 @@
);
}
+ userDAO.getOrgService().commitTransaction();
+
int result;
- if (countAll)
+ if (size < 0)
{
- result =
idmService.getIdentitySession().getPersistenceManager().getUserCount();
+
+ if (fullResults != null)
+ {
+ result = fullResults.size();
+ }
+ else if (countAll)
+ {
+ result =
idmService.getIdentitySession().getPersistenceManager().getUserCount();
+ }
+ else
+ {
+ userQueryBuilder.page(0, 0);
+ UserQuery query = userQueryBuilder.sort(SortOrder.ASCENDING).createQuery();
+ fullResults = idmService.getIdentitySession().list(query);
+ result = fullResults.size();
+ }
+
+ size = result;
}
else
{
- userQueryBuilder.page(0, 0);
- UserQuery query = userQueryBuilder.sort(SortOrder.ASCENDING).createQuery();
- result = idmService.getIdentitySession().execute(query).size();
+ result = size;
}
if (log.isTraceEnabled())
{
- Tools.logMethodOut(
+ Tools.logMethodOut(
log,
LogLevel.TRACE,
"getSize",
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/IntegrationCache.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -1,5 +1,8 @@
package org.exoplatform.services.organization.idm;
+import org.exoplatform.commons.utils.LazyPageList;
+import org.exoplatform.services.organization.Query;
+
import org.jboss.cache.Cache;
import org.jboss.cache.CacheFactory;
import org.jboss.cache.CacheStatus;
@@ -54,6 +57,8 @@
public static final String NULL_NS_NODE = "GTN_IC_COMMON_NS";
+ public static final String USER_QUERY_NODE = "GTN_USER_QUERY_LAZY_LIST";
+
public static final String MAIN_ROOT =
"NODE_GTN_ORG_SERVICE_INT_CACHE_MAIN_ROOT";
public static final String NODE_OBJECT_KEY = "object";
@@ -198,7 +203,61 @@
}
+ /**
+ * Store IDMUserListAccess
+ * @param ns
+ * @param query
+ * @param list
+ */
+ void putGtnUserLazyPageList(String ns, Query query, IDMUserListAccess list)
+ {
+ Fqn nodeFqn = getFqn(ns, USER_QUERY_NODE, getQueryKey(query));
+
+ Node ioNode = getCache().getRoot().addChild(nodeFqn);
+
+ if (ioNode != null)
+ {
+ ioNode.put(NODE_OBJECT_KEY, list);
+ setExpiration(ioNode);
+
+ if (log.isLoggable(Level.FINER))
+ {
+
+ log.finer(this.toString() + "GateIn user query list cached. Query:
" + getQueryKey(query) + ";namespace=" + ns);
+ }
+ }
+ }
+
/**
+ * Retrieve IDMUserListAccess
+ * @param ns
+ * @param query
+ * @return LazyPageList
+ */
+ IDMUserListAccess getGtnUserLazyPageList(String ns, Query query)
+ {
+
+ Fqn nodeFqn = getFqn(ns, USER_QUERY_NODE, getQueryKey(query));
+
+ Node node = getCache().getRoot().getChild(nodeFqn);
+
+ if (node != null)
+ {
+ IDMUserListAccess list = (IDMUserListAccess)node.get(NODE_OBJECT_KEY);
+
+ if (log.isLoggable(Level.FINER) && list != null)
+ {
+ log.finer(this.toString() + "GateIn user query list found in cache.
Query: " + getQueryKey(query) + ";namespace=" + ns);
+ }
+
+ return list;
+ }
+
+ return null;
+
+ }
+
+ /**
* Store PLIDM root group
* @param ns
* @param rootGroup
@@ -267,4 +326,19 @@
{
this.expiration = expiration;
}
+
+ String getQueryKey(Query query)
+ {
+ StringBuilder sb = new StringBuilder();
+ String SEP = ":::";
+
+ sb.append(query.getEmail()).append(SEP)
+ .append(query.getFirstName()).append(SEP)
+ .append(query.getLastName()).append(SEP)
+ .append(query.getUserName()).append(SEP)
+ .append(query.getFromLoginDate()).append(SEP)
+ .append(query.getToLoginDate()).append(SEP);
+
+ return sb.toString();
+ }
}
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/MembershipDAOImpl.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/MembershipDAOImpl.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/MembershipDAOImpl.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -120,6 +120,8 @@
);
}
+ orgService.commitTransaction();
+
if (g == null)
{
throw new InvalidNameException("Can not create membership record for "
+ user.getUserName()
@@ -197,6 +199,7 @@
);
}
+ orgService.commitTransaction();
String plGroupName = getPLIDMGroupName(getGroupNameFromId(m.getGroupId()));
@@ -278,6 +281,7 @@
);
}
+ orgService.commitTransaction();
Membership m = new MembershipImpl(id);
@@ -377,6 +381,7 @@
);
}
+ orgService.commitTransaction();
Collection<Role> roles = new HashSet();
@@ -473,6 +478,7 @@
);
}
+ orgService.commitTransaction();
String plGroupName = getPLIDMGroupName(getGroupNameFromId(groupId));
@@ -565,6 +571,8 @@
);
}
+ orgService.commitTransaction();
+
if (userName == null)
{
// julien fix : if user name is null, need to check if we do need to return a
special group
@@ -667,6 +675,7 @@
);
}
+ orgService.commitTransaction();
Collection<Role> roles = new HashSet();
@@ -759,6 +768,8 @@
);
}
+ orgService.commitTransaction();
+
String plGroupName = getPLIDMGroupName(getGroupNameFromId(groupId));
String gid =
@@ -780,12 +791,13 @@
HashSet<MembershipImpl> memberships = new HashSet<MembershipImpl>();
+ Group g = orgService.getGroupHandler().findGroupById(groupId);
+
for (Role role : roles)
{
if (isCreateMembership(role.getRoleType().getName()))
{
MembershipImpl m = new MembershipImpl();
- Group g =
((GroupDAOImpl)orgService.getGroupHandler()).convertGroup(role.getGroup());
m.setGroupId(g.getId());
m.setUserName(role.getUser().getId());
m.setMembershipType(role.getRoleType().getName());
@@ -856,6 +868,8 @@
);
}
+ orgService.commitTransaction();
+
Membership m = new MembershipImpl(id);
String plGroupName = getPLIDMGroupName(getGroupNameFromId(m.getGroupId()));
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMOrganizationServiceImpl.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -45,7 +45,7 @@
// We may have several portal containers thus we need one PicketLinkIDMService per
portal container
// private static PicketLinkIDMService jbidmService_;
- private PicketLinkIDMService idmService_;
+ private PicketLinkIDMServiceImpl idmService_;
public static final String CONFIGURATION_OPTION = "configuration";
@@ -60,7 +60,7 @@
membershipDAO_ = new MembershipDAOImpl(this, idmService);
membershipTypeDAO_ = new MembershipTypeDAOImpl(this, idmService);
- idmService_ = idmService;
+ idmService_ = (PicketLinkIDMServiceImpl)idmService;
if (params != null)
{
@@ -152,6 +152,7 @@
}
else
{
+
if (!idmService_.getIdentitySession().getTransaction().isActive())
{
idmService_.getIdentitySession().beginTransaction();
@@ -164,6 +165,50 @@
}
}
+
+ public void commitTransaction()
+ {
+ try
+ {
+
+
+ if (configuration.isUseJTA())
+ {
+ UserTransaction tx = (UserTransaction)new
InitialContext().lookup("java:comp/UserTransaction");
+
+ if (tx.getStatus() != Status.STATUS_NO_TRANSACTION)
+ {
+ tx.commit();
+ }
+
+ if (tx.getStatus() == Status.STATUS_NO_TRANSACTION)
+ {
+ tx.begin();
+ }
+ }
+ else
+ {
+
+ if (idmService_.getIdentitySession().getTransaction().isActive())
+ {
+ idmService_.getIdentitySession().getTransaction().commit();
+ }
+
+ if (!idmService_.getIdentitySession().getTransaction().isActive())
+ {
+ idmService_.getIdentitySession().beginTransaction();
+ }
+ }
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+
+
public void endRequest(ExoContainer container)
{
try
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -90,6 +90,8 @@
private static final JChannelFactory CHANNEL_FACTORY = new JChannelFactory();
+ private HibernateService hibernateService;
+
private PicketLinkIDMServiceImpl()
{
}
@@ -110,6 +112,8 @@
ValueParam jgroupsConfig = initParams.getValueParam(JGROUPS_CONFIG);
ValueParam cacheExpirationParam = initParams.getValueParam(CACHE_EXPIRATION);
+ this.hibernateService = hibernateService;
+
if (config == null && jndiName == null)
{
throw new IllegalStateException("Either '" + PARAM_CONFIG_OPTION +
"' or '" + PARAM_JNDI_NAME_OPTION
@@ -327,4 +331,9 @@
}
}
}
+
+ public HibernateService getHibernateService()
+ {
+ return hibernateService;
+ }
}
Modified:
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/UserDAOImpl.java
===================================================================
---
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/UserDAOImpl.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/UserDAOImpl.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -21,8 +21,6 @@
import org.exoplatform.commons.utils.LazyPageList;
import org.exoplatform.commons.utils.ListAccess;
-import org.exoplatform.services.cache.CacheService;
-import org.exoplatform.services.cache.ExoCache;
import org.exoplatform.services.organization.Query;
import org.exoplatform.services.organization.User;
import org.exoplatform.services.organization.UserEventListener;
@@ -37,6 +35,7 @@
import org.picketlink.idm.api.query.UserQueryBuilder;
import org.picketlink.idm.common.exception.IdentityException;
import org.picketlink.idm.impl.api.SimpleAttribute;
+import org.picketlink.idm.impl.api.model.SimpleUser;
import java.text.DateFormat;
import java.text.ParseException;
@@ -145,6 +144,8 @@
try
{
+ orgService.commitTransaction();
+
session.getPersistenceManager().createUser(user.getUserName());
}
catch (IdentityException e)
@@ -214,6 +215,8 @@
try
{
+ orgService.commitTransaction();
+
foundUser = session.getPersistenceManager().findUser(userName);
}
catch (IdentityException e)
@@ -361,6 +364,8 @@
{
try
{
+ orgService.commitTransaction();
+
IdentitySession session = service_.getIdentitySession();
org.picketlink.idm.api.User idmUser =
session.getPersistenceManager().findUser(user.getUserName());
@@ -407,7 +412,64 @@
);
}
+ // if only condition is email which is unique then delegate to other method as it
will be more efficient
+ if (q.getUserName() == null &&
+ q.getEmail() != null &&
+ q.getFirstName() == null &&
+ q.getLastName() == null)
+ {
+ final User uniqueUser = findUserByEmail(q.getEmail());
+ if (uniqueUser != null)
+ {
+ return new LazyPageList<User>( new ListAccess<User>()
+ {
+ public User[] load(int index, int length) throws Exception,
IllegalArgumentException
+ {
+ return new User[]{uniqueUser};
+ }
+
+ public int getSize() throws Exception
+ {
+ return 1;
+ }
+ }, 1);
+ }
+ else
+ {
+ return new LazyPageList<User>( new ListAccess<User>()
+ {
+ public User[] load(int index, int length) throws Exception,
IllegalArgumentException
+ {
+ return new User[0];
+ }
+
+ public int getSize() throws Exception
+ {
+ return 0;
+ }
+ }, 1);
+ }
+ }
+
+
+ // otherwise use PLIDM queries
+
+ IDMUserListAccess list;
+
+ IntegrationCache cache = getIntegrationCache();
+
+ if (cache != null)
+ {
+ list = cache.getGtnUserLazyPageList(getCacheNS(), q);
+ if (list != null)
+ {
+ return new LazyPageList(list, 20);
+ }
+ }
+
+ orgService.commitTransaction();
+
UserQueryBuilder qb = service_.getIdentitySession().createUserQueryBuilder();
if (q.getUserName() != null)
@@ -430,7 +492,26 @@
qb.attributeValuesFilter(UserDAOImpl.USER_LAST_NAME, new
String[]{q.getLastName()});
}
- return new LazyPageList(new IDMUserListAccess(this, service_, qb, 20, false), 20);
+
+
+ if (q.getUserName() == null &&
+ q.getEmail() == null &&
+ q.getFirstName() == null &&
+ q.getLastName() == null)
+ {
+ list = new IDMUserListAccess(this, service_, qb, 20, true);
+ }
+ else
+ {
+ list = new IDMUserListAccess(this, service_, qb, 20, false);
+ }
+
+ if (cache != null)
+ {
+ cache.putGtnUserLazyPageList(getCacheNS(), q, list);
+ }
+
+ return new LazyPageList(list, 20);
}
//
@@ -494,6 +575,8 @@
try
{
+ orgService.commitTransaction();
+
plUser = session.getAttributesManager().findUserByUniqueAttribute(USER_EMAIL,
email);
}
catch (IdentityException e)
@@ -565,6 +648,7 @@
public void persistUserInfo(User user, IdentitySession session) throws Exception
{
+ orgService.commitTransaction();
AttributesManager am = session.getAttributesManager();
@@ -629,10 +713,12 @@
}
- public static User getPopulatedUser(String userName, IdentitySession session) throws
Exception
+ public User getPopulatedUser(String userName, IdentitySession session) throws
Exception
{
Object u = null;
+ orgService.commitTransaction();
+
try
{
u = session.getPersistenceManager().findUser(userName);
@@ -656,8 +742,9 @@
}
- public static void populateUser(User user, IdentitySession session) throws Exception
+ public void populateUser(User user, IdentitySession session) throws Exception
{
+ orgService.commitTransaction();
AttributesManager am = session.getAttributesManager();
@@ -665,7 +752,7 @@
try
{
- attrs = am.getAttributes(user.getUserName());
+ attrs = am.getAttributes(new SimpleUser(user.getUserName()));
}
catch (IdentityException e)
{
@@ -754,4 +841,26 @@
}
}
+ public PicketLinkIDMOrganizationServiceImpl getOrgService()
+ {
+ return orgService;
+ }
+
+ private IntegrationCache getIntegrationCache()
+ {
+ // TODO: refactor to remove cast. For now to avoid adding new config option and
share existing cache instannce
+ // TODO: it should be there.
+ return ((PicketLinkIDMServiceImpl)service_).getIntegrationCache();
+ }
+
+ /**
+ * Returns namespace to be used with integration cache
+ * @return
+ */
+ private String getCacheNS()
+ {
+ // TODO: refactor to remove cast. For now to avoid adding new config option and
share existing cache instannce
+ // TODO: it should be there.
+ return ((PicketLinkIDMServiceImpl)service_).getRealmName();
+ }
}
Modified: portal/trunk/pom.xml
===================================================================
--- portal/trunk/pom.xml 2011-05-18 07:12:47 UTC (rev 6479)
+++ portal/trunk/pom.xml 2011-05-18 11:42:27 UTC (rev 6480)
@@ -47,7 +47,7 @@
<org.gatein.common.version>2.0.4-Beta02</org.gatein.common.version>
<org.gatein.wci.version>2.1.0-Beta02</org.gatein.wci.version>
<org.gatein.pc.version>2.3.0-Beta03</org.gatein.pc.version>
- <org.picketlink.idm>1.1.9.CR01</org.picketlink.idm>
+ <org.picketlink.idm>1.3.0.Alpha03</org.picketlink.idm>
<org.gatein.wsrp.version>2.1.0-Beta03</org.gatein.wsrp.version>
<org.gatein.mop.version>1.1.0-Beta01</org.gatein.mop.version>
<version.chromattic>1.1.0-beta2</version.chromattic>
Modified:
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/organization/webui/component/UIUserInGroup.java
===================================================================
---
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/organization/webui/component/UIUserInGroup.java 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/portlet/exoadmin/src/main/java/org/exoplatform/organization/webui/component/UIUserInGroup.java 2011-05-18
11:42:27 UTC (rev 6480)
@@ -133,7 +133,6 @@
{
OrganizationService service =
getApplicationComponent(OrganizationService.class);
MembershipHandler handler = service.getMembershipHandler();
- List<?> memberships =
(List<?>)handler.findMembershipsByGroup(group);
pageList = new FindMembershipByGroupPageList(group.getId(), 10);
}
UIGridUser uiGrid = getChild(UIGridUser.class);
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObject.hbm.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObject.hbm.xml 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObject.hbm.xml 2011-05-18
11:42:27 UTC (rev 6480)
@@ -12,6 +12,7 @@
<generator class="native"/>
</id>
<set name="attributes"
+ batch-size="20"
inverse="true"
cascade="all, delete-orphan"
lazy="extra"
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObjectAttribute.hbm.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObjectAttribute.hbm.xml 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/mappings/HibernateIdentityObjectAttribute.hbm.xml 2011-05-18
11:42:27 UTC (rev 6480)
@@ -35,8 +35,9 @@
table="jbid_io_attr_text_values"
cascade="all, delete-orphan"
access="field"
- lazy="extra"
- fetch="subselect">
+ lazy="false"
+ fetch="join"
+ batch-size="20">
<cache usage="read-write"/>
<key column="TEXT_ATTR_VALUE_ID"/>
<element type="string"
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObject.hbm.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObject.hbm.xml 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObject.hbm.xml 2011-05-18
11:42:27 UTC (rev 6480)
@@ -12,6 +12,7 @@
<generator class="native"/>
</id>
<set name="attributes"
+ batch-size="20"
inverse="true"
cascade="all, delete-orphan"
lazy="extra"
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObjectAttribute.hbm.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObjectAttribute.hbm.xml 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/picketlink-idm/sybase-mappings/HibernateIdentityObjectAttribute.hbm.xml 2011-05-18
11:42:27 UTC (rev 6480)
@@ -35,8 +35,9 @@
table="jbid_io_attr_text_values"
cascade="all, delete-orphan"
access="field"
- lazy="extra"
- fetch="subselect">
+ lazy="false"
+ fetch="join"
+ batch-size="20">
<cache usage="read-write"/>
<key column="TEXT_ATTR_VALUE_ID"/>
<element type="string"
Modified:
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
===================================================================
---
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml 2011-05-18
07:12:47 UTC (rev 6479)
+++
portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml 2011-05-18
11:42:27 UTC (rev 6480)
@@ -121,7 +121,7 @@
<value-param>
<name>cacheExpiration</name>
- <value>2000</value>
+ <value>360000</value>
</value-param>