Skip to content

Commit

Permalink
SAK-26111 Remove ehcache specific code from delegatedaccess
Browse files Browse the repository at this point in the history
git-svn-id: https://source.sakaiproject.org/svn/delegatedaccess/trunk@308396 66ffb92e-73f9-0310-93c1-f5514f145a0a
  • Loading branch information
Bryan Holladay committed Apr 21, 2014
1 parent 0dbc7bf commit 1725686
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@

import lombok.Getter;
import lombok.Setter;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;

import org.apache.log4j.Logger;
Expand All @@ -56,6 +55,8 @@
import org.sakaiproject.delegatedaccess.util.DelegatedAccessMutableTreeNode;
import org.sakaiproject.hierarchy.HierarchyService;
import org.sakaiproject.hierarchy.model.HierarchyNode;
import org.sakaiproject.memory.api.Cache;
import org.sakaiproject.memory.api.MemoryService;
import org.sakaiproject.site.api.Site;
import org.sakaiproject.site.api.SitePage;
import org.sakaiproject.site.api.SiteService.SelectionType;
Expand All @@ -81,24 +82,26 @@ public class ProjectLogicImpl implements ProjectLogic {
private HierarchyService hierarchyService;
@Getter @Setter
private DelegatedAccessDao dao;
//NodeCache stores HierarchyNodeSerialed nodes for faster lookups
@Getter @Setter
private MemoryService memoryService;
//NodeCache stores HierarchyNodeSerialed nodes for faster lookups
private Cache nodeCache;
//Stores restricted tools map for users when they log back in
@Getter @Setter
private Cache restrictedAuthToolsCache;
@Getter @Setter
private ScheduledInvocationManager scheduledInvocationManager;
@Getter @Setter
private TimeService timeService;

@Getter @Setter
private Cache restrictedPublicToolsCache;
/**
* init - perform any actions required here for when this bean starts up
*/
public void init() {
log.info("init");
nodeCache = memoryService.newCache("org.sakaiproject.delegatedaccess.logic.ProjectLogic.nodeCache");
restrictedAuthToolsCache = memoryService.newCache("org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedAuthToolsCache");
restrictedPublicToolsCache = memoryService.newCache("org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedPublicToolsCache");
}

/**
Expand Down Expand Up @@ -406,13 +409,13 @@ public void initializeDelegatedAccessSession(){
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_DELEGATED_ACCESS_FLAG, true);
//need to clear sakai realm permissions cache for user since Denied Tools list is tied to
//session and permissions are a saved in a system cache
Element el = restrictedAuthToolsCache.get(userId);
Object el = restrictedAuthToolsCache.get(userId);
if(el != null){
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_DENIED_TOOLS, el.getObjectValue());
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_DENIED_TOOLS, el);
}
Element elPub = restrictedPublicToolsCache.get(userId);
Object elPub = restrictedPublicToolsCache.get(userId);
if(elPub != null){
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_DENIED_TOOLS2, elPub.getObjectValue());
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_DENIED_TOOLS2, elPub);
}
}
}
Expand Down Expand Up @@ -1297,17 +1300,17 @@ private List<List> getTreeListForUser(String userId, boolean addDirectChildren,
* @return
*/
private HierarchyNodeSerialized getCachedNode(String id){
Element el = nodeCache.get(id);
Object el = nodeCache.get(id);
HierarchyNodeSerialized node = null;
if(el == null){
node = getNode(id);
try{
nodeCache.put(new Element(id, node));
nodeCache.put(id, node);
}catch (Exception e) {
log.error("getCachedNode: " + id, e);
}
}else if(el.getObjectValue() instanceof HierarchyNodeSerialized){
node = (HierarchyNodeSerialized) el.getObjectValue();
}else if(el instanceof HierarchyNodeSerialized){
node = (HierarchyNodeSerialized) el;
}
return node;
}
Expand Down Expand Up @@ -1698,7 +1701,7 @@ public Map<String, List<String>> getNodesBySiteRef(String[] siteRefs, String hie
}

public void clearNodeCache(){
nodeCache.removeAll();
nodeCache.clear();
}

public String[] getCurrentUsersAccessToSite(String siteRef){
Expand Down Expand Up @@ -1915,12 +1918,12 @@ private Map<String, AccessNode> grantAccessToSites(List<String> siteRefs, boolea
session.setAttribute(DelegatedAccessConstants.SESSION_ATTRIBUTE_ACCESS_MAP, accessMap);
//update restrictedToolsCache
try{
restrictedAuthToolsCache.put(new Element(userId, deniedAuthToolsMap));
restrictedAuthToolsCache.put(userId, deniedAuthToolsMap);
}catch (Exception e) {
log.error("grantAccessToSite: " + userId, e);
}
try{
restrictedPublicToolsCache.put(new Element(userId, deniedPublicToolsMap));
restrictedPublicToolsCache.put(userId, deniedPublicToolsMap);
}catch (Exception e) {
log.error("grantAccessToSite: " + userId, e);
}
Expand Down
50 changes: 1 addition & 49 deletions delegatedaccess/pack/src/webapp/WEB-INF/components.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,9 @@
<property name="sakaiProxy" ref="org.sakaiproject.delegatedaccess.logic.SakaiProxy" />
<property name="hierarchyService" ref="org.sakaiproject.hierarchy.HierarchyService" />
<property name="dao" ref="org.sakaiproject.delegatedaccess.dao.DelegatedAccessDao" />
<property name="nodeCache" ref="org.sakaiproject.delegatedaccess.logic.ProjectLogic.nodeCache"/>
<property name="restrictedAuthToolsCache" ref="org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedAuthToolsCache"/>
<property name="restrictedPublicToolsCache" ref="org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedPublicToolsCache"/>
<property name="scheduledInvocationManager" ref="org.sakaiproject.api.app.scheduler.ScheduledInvocationManager" />
<property name="timeService" ref="org.sakaiproject.time.api.TimeService" />
<property name="memoryService" ref="org.sakaiproject.memory.api.MemoryService"/>
</bean>

<bean id="org.sakaiproject.delegatedaccess.logic.DelegatedAccessObserver"
Expand Down Expand Up @@ -103,58 +101,12 @@
</property>
</bean>

<!-- Cache: ttl=1 hour -->
<bean id="org.sakaiproject.delegatedaccess.cache"
class="org.sakaiproject.memory.util.EhCacheFactoryBean">
<property name="cacheManager">
<ref bean="org.sakaiproject.memory.api.MemoryService.cacheManager"/>
</property>
<property name="cacheName">
<value>org.sakaiproject.delegatedaccess.cache</value>
</property>
<property name="maxElementsInMemory" value="1000" />
<property name="diskPersistent" value="false" />
<property name="eternal" value="false" />
<property name="timeToLive" value="3600" />
<property name="timeToIdle" value="3600" />
</bean>

<bean id="org.sakaiproject.delegatedaccess.entity.DelegatedAccessEntityProvider"
class="org.sakaiproject.delegatedaccess.entity.DelegatedAccessEntityProviderImpl">
<property name="projectLogic" ref="org.sakaiproject.delegatedaccess.logic.ProjectLogic" />
<property name="sakaiProxy" ref="org.sakaiproject.delegatedaccess.logic.SakaiProxy" />
</bean>

<bean id="org.sakaiproject.delegatedaccess.logic.ProjectLogic.nodeCache"
class="org.sakaiproject.memory.util.EhCacheFactoryBean">
<property name="cacheManager">
<ref bean="org.sakaiproject.memory.api.MemoryService.cacheManager"/>
</property>
<property name="cacheName">
<value>org.sakaiproject.delegatedaccess.logic.ProjectLogic.nodeCache</value>
</property>
</bean>

<bean id="org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedAuthToolsCache"
class="org.sakaiproject.memory.util.EhCacheFactoryBean">
<property name="cacheManager">
<ref bean="org.sakaiproject.memory.api.MemoryService.cacheManager"/>
</property>
<property name="cacheName">
<value>org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedAuthToolsCache</value>
</property>
</bean>

<bean id="org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedPublicToolsCache"
class="org.sakaiproject.memory.util.EhCacheFactoryBean">
<property name="cacheManager">
<ref bean="org.sakaiproject.memory.api.MemoryService.cacheManager"/>
</property>
<property name="cacheName">
<value>org.sakaiproject.delegatedaccess.logic.ProjectLogic.restrictedPublicToolsCache</value>
</property>
</bean>

<bean id="org.sakaiproject.delegatedaccess.jobs.DelegatedAccessAddToolToMyWorkspacesJob" class="org.sakaiproject.delegatedaccess.jobs.DelegatedAccessAddToolToMyWorkspacesJob">
<property name="projectLogic" ref="org.sakaiproject.delegatedaccess.logic.ProjectLogic" />
<property name="dao" ref="org.sakaiproject.delegatedaccess.dao.DelegatedAccessDao" />
Expand Down

0 comments on commit 1725686

Please sign in to comment.