Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/CacheAction.java =================================================================== diff -u -rf58d5e2c6d44c733471cadd9f86711553e5beaf5 -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/CacheAction.java (.../CacheAction.java) (revision f58d5e2c6d44c733471cadd9f86711553e5beaf5) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/CacheAction.java (.../CacheAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -37,7 +37,6 @@ import org.lamsfoundation.lams.cache.CacheManager; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -59,18 +58,7 @@ public static final String NODE_KEY = "node"; private static Logger log = Logger.getLogger(CacheAction.class); - private static WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); - private static CacheManager manager = (CacheManager) ctx.getBean("cacheManager"); - //private static UserManagementService service = (UserManagementService) ctx.getBean("userManagementServiceTarget"); - - /* - private boolean isUserInRole(String login,int orgId, String roleName) - { - if (service.getUserOrganisationRole(login, new Integer(orgId),roleName)==null) - return false; - return true; - } */ - + private static CacheManager manager; /** * request for sysadmin environment */ @@ -100,7 +88,7 @@ return mapping.findForward("error"); } */ - Map items = manager.getCachedItems(); + Map items = getManager().getCachedItems(); req.setAttribute(CACHE_ENTRIES, items); return mapping.findForward("cache"); @@ -140,9 +128,9 @@ } */ String node = WebUtil.readStrParam(req, NODE_KEY, false); - manager.clearCache(node); + getManager().clearCache(node); - Map items = manager.getCachedItems(); + Map items = getManager().getCachedItems(); req.setAttribute(CACHE_ENTRIES, items); return mapping.findForward("cache"); @@ -151,4 +139,13 @@ return mapping.findForward("error"); } } + + private CacheManager getManager(){ + if(manager==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + manager = (CacheManager) ctx.getBean("cacheManager"); + } + return manager; + } + } \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java =================================================================== diff -u -r2bd7f539aabef95e1a01e41be46e6bb317595287 -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision 2bd7f539aabef95e1a01e41be46e6bb317595287) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgManageAction.java (.../OrgManageAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -38,14 +38,13 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; -import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; +import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.WebUtil; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -73,9 +72,10 @@ public class OrgManageAction extends Action { private static final Logger log = Logger.getLogger(OrgManageAction.class); - private static WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); - private static IUserManagementService service = (IUserManagementService)ctx.getBean("userManagementServiceTarget"); + private static IUserManagementService service; + + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -93,7 +93,7 @@ } String username = request.getRemoteUser(); OrgListDTO orgManageForm = new OrgListDTO(); - Organisation org = (Organisation)service.findById(Organisation.class,orgId); + Organisation org = (Organisation)getService().findById(Organisation.class,orgId); log.debug("orgId:"+orgId); if(org==null){ errors.add("org",new ActionMessage("error.org.invalid")); @@ -109,15 +109,15 @@ orgManageForm.setType(org.getOrganisationType().getOrganisationTypeId()); log.debug("orgType:"+orgManageForm.getType()); List orgManageBeans = new ArrayList(); - //if(service.isUserSysAdmin(username)){ + //if(getService().isUserSysAdmin(username)){ if(request.isUserInRole(Role.SYSADMIN)){ Integer type; if(orgManageForm.getType().equals(OrganisationType.ROOT_TYPE)){ type = OrganisationType.COURSE_TYPE; }else{ type = OrganisationType.CLASS_TYPE; } - List organisations = service.findByProperty(Organisation.class,"organisationType.organisationTypeId",type); + List organisations = getService().findByProperty(Organisation.class,"organisationType.organisationTypeId",type); log.debug("user is sysadmin"); log.debug("Got "+organisations.size()+" organsiations"); log.debug("organisationType is "+type); @@ -134,7 +134,7 @@ orgManageBeans.add(orgManageBean); } }else{ - Set userOrganisations = service.getUserByLogin(username).getUserOrganisations(); + Set userOrganisations = getService().getUserByLogin(username).getUserOrganisations(); if(userOrganisations!=null){ Iterator iter = userOrganisations.iterator(); while(iter.hasNext()){ @@ -165,4 +165,12 @@ return mapping.findForward("orglist"); } + private IUserManagementService getService(){ + if(service==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementServiceTarget"); + } + return service; + } + } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java =================================================================== diff -u -r7e620c99609751edad11e097c144bd46e2c94008 -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision 7e620c99609751edad11e097c144bd46e2c94008) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrgSaveAction.java (.../OrgSaveAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -22,8 +22,6 @@ */ package org.lamsfoundation.lams.admin.web; -import java.util.Date; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -41,13 +39,11 @@ import org.lamsfoundation.lams.usermanagement.OrganisationState; import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.SupportedLocale; -import org.lamsfoundation.lams.usermanagement.Workspace; -import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.usermanagement.service.UserManagementService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -81,13 +77,8 @@ public class OrgSaveAction extends Action { private static Logger log = Logger.getLogger(OrgSaveAction.class); - - private static WebApplicationContext ctx = WebApplicationContextUtils - .getWebApplicationContext(HttpSessionManager.getInstance() - .getServletContext()); - private static IUserManagementService service = (IUserManagementService) ctx - .getBean("userManagementServiceTarget"); + private static IUserManagementService service; public ActionForward execute(ActionMapping mapping, ActionForm form, @@ -110,10 +101,10 @@ HttpSession ss = SessionManager.getSession(); UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - SupportedLocale locale = (SupportedLocale)service.findById(SupportedLocale.class,(Byte)orgForm.get("localeId")); + SupportedLocale locale = (SupportedLocale)getService().findById(SupportedLocale.class,(Byte)orgForm.get("localeId")); if(orgId!=0){ - org = (Organisation)service.findById(Organisation.class,orgId); + org = (Organisation)getService().findById(Organisation.class,orgId); BeanUtils.copyProperties(org,orgForm); org.setLocaleCountry(locale.getCountryIsoCode()); org.setLocaleLanguage(locale.getLanguageIsoCode()); @@ -122,13 +113,13 @@ BeanUtils.copyProperties(org,orgForm); org.setLocaleCountry(locale.getCountryIsoCode()); org.setLocaleLanguage(locale.getLanguageIsoCode()); - org.setParentOrganisation((Organisation)service.findById(Organisation.class,(Integer)orgForm.get("parentId"))); - org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,(Integer)orgForm.get("typeId"))); + org.setParentOrganisation((Organisation)getService().findById(Organisation.class,(Integer)orgForm.get("parentId"))); + org.setOrganisationType((OrganisationType)getService().findById(OrganisationType.class,(Integer)orgForm.get("typeId"))); } log.debug("orgId:"+org.getOrganisationId()+" language:"+org.getLocaleLanguage()+" Country:"+org.getLocaleCountry()+" create date:"+org.getCreateDate()); - org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,(Integer)orgForm.get("stateId"))); - org = service.saveOrganisation(org, user.getUserID()); + org.setOrganisationState((OrganisationState)getService().findById(OrganisationState.class,(Integer)orgForm.get("stateId"))); + org = getService().saveOrganisation(org, user.getUserID()); request.setAttribute("org",orgForm.get("parentId")); return mapping.findForward("orglist"); @@ -137,4 +128,13 @@ return mapping.findForward("organisation"); } } + + private IUserManagementService getService(){ + if(service==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementServiceTarget"); + } + return service; + } + } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java =================================================================== diff -u -r7e620c99609751edad11e097c144bd46e2c94008 -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision 7e620c99609751edad11e097c144bd46e2c94008) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/OrganisationAction.java (.../OrganisationAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -43,7 +43,6 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -63,27 +62,14 @@ private static Logger log = Logger.getLogger(OrganisationAction.class); - private static WebApplicationContext ctx = WebApplicationContextUtils - .getWebApplicationContext(HttpSessionManager.getInstance() - .getServletContext()); - - private static IUserManagementService service = (IUserManagementService) ctx - .getBean("userManagementServiceTarget"); - - //private static List countries = service.findAll(Country.class); + private static IUserManagementService service; + private static List locales; + private static List status; - private static List locales = service.findAll(SupportedLocale.class); - - private static List status = service.findAll(OrganisationState.class); - - static{ - Collections.sort(locales); - } - public ActionForward edit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception{ Integer orgId = WebUtil.readIntParam(request,"orgId",true); if(orgId != null){//editing existing organisation - Organisation org = (Organisation)service.findById(Organisation.class,orgId); + Organisation org = (Organisation)getService().findById(Organisation.class,orgId); DynaActionForm orgForm = (DynaActionForm)form; BeanUtils.copyProperties(orgForm,org); log.debug("Struts Pupulated orgId:"+(Integer)orgForm.get("orgId")); @@ -96,7 +82,7 @@ if(org.getLocaleCountry()!=null){ properties.put("countryIsoCode",org.getLocaleCountry()); } - SupportedLocale locale = (SupportedLocale)service.findByProperties(SupportedLocale.class,properties).get(0); + SupportedLocale locale = (SupportedLocale)getService().findByProperties(SupportedLocale.class,properties).get(0); orgForm.set("localeId",locale.getLocaleId()); } //request.getSession().setAttribute("countries",countries); @@ -107,11 +93,22 @@ public ActionForward remove(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response){ Integer orgId = WebUtil.readIntParam(request,"orgId"); - service.deleteById(Organisation.class,orgId); + getService().deleteById(Organisation.class,orgId); Integer parentId = WebUtil.readIntParam(request,"parentId"); request.setAttribute("org",parentId); return mapping.findForward("orglist"); } + private IUserManagementService getService(){ + if(service==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementServiceTarget"); + locales = service.findAll(SupportedLocale.class); + status = service.findAll(OrganisationState.class); + Collections.sort(locales); + } + return service; + } + } // end Action Index: lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java =================================================================== diff -u -r1a4d1ede9ffb27ba31da22ed4e2ff7bc3137fddc -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 1a4d1ede9ffb27ba31da22ed4e2ff7bc3137fddc) +++ lams_central/src/java/org/lamsfoundation/lams/web/HomeAction.java (.../HomeAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -37,13 +37,13 @@ import org.apache.struts.actions.DispatchAction; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -68,9 +68,17 @@ public class HomeAction extends DispatchAction { private static Logger log = Logger.getLogger(HomeAction.class); - private static WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); - private static UserManagementService service = (UserManagementService) ctx.getBean("userManagementServiceTarget"); + private static IUserManagementService service; + + private IUserManagementService getService(){ + if(service==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementServiceTarget"); + } + return service; + } + private UserDTO getUser() { HttpSession ss = SessionManager.getSession(); return (UserDTO) ss.getAttribute(AttributeNames.USER); @@ -92,7 +100,7 @@ if ( user == null ) { log.error("admin: User missing from session. "); return mapping.findForward("error"); - } else if ( service.isUserInRole(user.getUserID(),orgId,Role.SYSADMIN)) { + } else if ( getService().isUserInRole(user.getUserID(),orgId,Role.SYSADMIN)) { log.debug("user is sysadmin"); return mapping.findForward("sysadmin"); } else { @@ -208,7 +216,7 @@ return mapping.findForward("error"); } else { Integer orgId = classId != null ? classId : courseId; - if (service.isUserInRole(user.getUserID(), orgId, Role.STAFF)) { + if (getService().isUserInRole(user.getUserID(), orgId, Role.STAFF)) { log.debug("user is staff"); String serverUrl = Configuration.get(ConfigurationKeys.SERVER_URL); req.setAttribute("serverUrl", serverUrl); Index: lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java =================================================================== diff -u -r69bea309e6376cc880d1f26d1658df4d0830ce37 -r5a7d8461a9600bdf21caa29b8a3253e013fec8cb --- lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 69bea309e6376cc880d1f26d1658df4d0830ce37) +++ lams_central/src/java/org/lamsfoundation/lams/web/IndexAction.java (.../IndexAction.java) (revision 5a7d8461a9600bdf21caa29b8a3253e013fec8cb) @@ -42,8 +42,8 @@ import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; -import org.lamsfoundation.lams.web.util.HttpSessionManager; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -66,12 +66,11 @@ * @struts.action-forward name="index" path="/indexContent.jsp" */ public class IndexAction extends Action { + private static Logger log = Logger.getLogger(IndexAction.class); - private static WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); - - private static UserManagementService service = (UserManagementService) ctx.getBean("userManagementServiceTarget"); - + private static IUserManagementService service; + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("User:"+request.getRemoteUser()); List headerLinks = new ArrayList(); @@ -80,7 +79,7 @@ if (request.isUserInRole(Role.SYSADMIN)) { log.debug("user is sysadmin"); headerLinks.add(new IndexLinkBean("index.sysadmin", "javascript:openSysadmin()")); - headerLinks.add(new IndexLinkBean("index.courseman", "javascript:openOrgManagement(" + service.getRootOrganisation().getOrganisationId()+")")); + headerLinks.add(new IndexLinkBean("index.courseman", "javascript:openOrgManagement(" + getService().getRootOrganisation().getOrganisationId()+")")); } if (request.isUserInRole(Role.AUTHOR)) { log.debug("user is author"); @@ -92,18 +91,18 @@ List orgBeans = new ArrayList(); if (request.isUserInRole(Role.SYSADMIN)) { List roles = new ArrayList(); - List organisations = service.getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE, OrganisationState.ACTIVE); + List organisations = getService().getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE, OrganisationState.ACTIVE); log.debug("we got "+organisations.size()+" organisations whose type is "+OrganisationType.COURSE_DESCRIPTION+" and whose state is "+OrganisationState.ACTIVE); roles.add(Role.ROLE_SYSADMIN); for (Organisation org:organisations) { - List userOrganisationRoles = service.getUserOrganisationRoles(org.getOrganisationId(),request.getRemoteUser()); + List userOrganisationRoles = getService().getUserOrganisationRoles(org.getOrganisationId(),request.getRemoteUser()); for(UserOrganisationRole userOrganisationRole:userOrganisationRoles){ roles.add(userOrganisationRole.getRole().getRoleId()); } orgBeans.add(createOrgBean(org, roles, request.getRemoteUser(),true)); } } else { - List userOrganisations = service.getUserOrganisationsForUserByTypeAndStatus(request.getRemoteUser(),OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE); + List userOrganisations = getService().getUserOrganisationsForUserByTypeAndStatus(request.getRemoteUser(),OrganisationType.COURSE_TYPE,OrganisationState.ACTIVE); log.debug("we got "+userOrganisations.size()+" organisations whose type is "+OrganisationType.COURSE_DESCRIPTION+" and whose state is "+OrganisationState.ACTIVE); for (UserOrganisation userOrganisation: userOrganisations) { List roles = new ArrayList(); @@ -174,7 +173,7 @@ for(Organisation organisation:children){ if(organisation.getOrganisationState().getOrganisationStateId().equals(OrganisationState.ACTIVE)){ List classRoles = new ArrayList(); - List userOrganisationRoles = service.getUserOrganisationRoles(organisation.getOrganisationId(),username); + List userOrganisationRoles = getService().getUserOrganisationRoles(organisation.getOrganisationId(),username); for(UserOrganisationRole userOrganisationRole:userOrganisationRoles){ classRoles.add(userOrganisationRole.getRole().getRoleId()); } @@ -196,4 +195,11 @@ return false; } + private IUserManagementService getService(){ + if(service==null){ + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementServiceTarget"); + } + return service; + } }