1 16 package com.blandware.atleap.webapp.action.core.contentResource; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ContentDocument; 20 import com.blandware.atleap.model.core.ContentResource; 21 import com.blandware.atleap.persistence.exception.DeleteException; 22 import com.blandware.atleap.search.SearchManager; 23 import com.blandware.atleap.service.core.ContentResourceManager; 24 import com.blandware.atleap.webapp.action.core.BaseAction; 25 import com.blandware.atleap.webapp.form.ContentResourceForm; 26 import com.blandware.atleap.webapp.util.core.CacheUtil; 27 import com.blandware.atleap.webapp.util.core.WebappConstants; 28 import com.blandware.atleap.webapp.util.core.WebappUtil; 29 import org.apache.commons.validator.GenericValidator; 30 import org.apache.struts.action.ActionForm; 31 import org.apache.struts.action.ActionForward; 32 import org.apache.struts.action.ActionMapping; 33 import org.apache.struts.action.ActionMessage; 34 import org.apache.struts.action.ActionMessages; 35 36 import javax.servlet.http.HttpServletRequest ; 37 import javax.servlet.http.HttpServletResponse ; 38 39 61 public final class DeleteContentResourceAction extends BaseAction { 62 71 public ActionForward execute(ActionMapping mapping, ActionForm form, 72 HttpServletRequest request, HttpServletResponse response) throws Exception { 73 74 ContentResourceForm contentResourceForm = (ContentResourceForm) form; 75 Long contentResourceId = null; 76 if ( !GenericValidator.isBlankOrNull(contentResourceForm.getId()) ) { 77 contentResourceId = Long.valueOf(contentResourceForm.getId()); 78 } else { 79 if ( log.isWarnEnabled() ) { 80 log.warn("Missing content resource ID. Returning to list..."); 81 } 82 return mapping.findForward("listContentResources"); 83 } 84 85 ContentResourceManager contentResourceManager = (ContentResourceManager) getBean(Constants.CONTENT_RESOURCE_MANAGER_BEAN); 86 87 ContentResource contentResource = contentResourceManager.retrieveContentResource(contentResourceId); 88 89 if ( contentResource == null ) { 90 ActionMessages errors = new ActionMessages(); 92 errors.add("contentResourceNotFound", new ActionMessage("core.contentResource.errors.notFound")); 93 saveErrors(request, errors); 94 return mapping.findForward("listContentResources"); 95 } 96 97 if ( !"true".equalsIgnoreCase(request.getParameter("force")) && contentResource.isInUse() ) { 98 String action = mapping.findForward("listContentResources").getPath(); 100 String redirectUrl = WebappUtil.getActionMappingURL(action, null, request, WebappConstants.URL_TYPE_DOMAIN_RELATIVE); 101 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_REDIRECT_URL_KEY, redirectUrl); 102 ActionMessages messages = new ActionMessages(); 103 messages.add("deleteWarning", new ActionMessage("core.contentResource.messages.deleteWarning")); 104 saveMessages(request, messages); 105 request.getSession().removeAttribute(WebappConstants.LINKED_OBJECTS_UPDATE_ACTION_KEY); 106 request.getSession().setAttribute(WebappConstants.LINKED_OBJECTS_DELETE_ACTION_KEY, "core/contentResource/delete"); 107 request.setAttribute(WebappConstants.LINKED_OBJECT_ID_KEY, contentResource.getId()); 108 request.setAttribute(WebappConstants.LINKED_OBJECT_TYPE_KEY, "resource"); 109 saveToken(request); 110 return mapping.findForward("viewLinkedObjects"); 111 } 112 113 String uri = contentResource.getUri(); 114 115 try { 116 contentResourceManager.deleteContentResource(contentResourceId); 117 118 CacheUtil cacheUtil = CacheUtil.getInstance(request); 120 cacheUtil.flushResourceCache(uri); 121 122 if ( contentResource instanceof ContentDocument ) { 124 SearchManager searchManager = SearchManager.getInstance(servlet.getServletContext()); 125 searchManager.unIndexDocument(uri, request); 126 } 127 128 } catch ( DeleteException e ) { 129 saveToken(request); 130 ActionMessages errors = new ActionMessages(); 131 errors.add("contentResourceCannotDelete", new ActionMessage("errors.contentResourceCannotDelete")); 132 saveErrors(request, errors); 133 return mapping.findForward("listContentResources"); 134 } 135 return mapping.findForward("listContentResources"); 136 } 137 } | Popular Tags |