diff --git a/source/java/org/alfresco/web/bean/AboutBean.java b/source/java/org/alfresco/web/bean/AboutBean.java index 162bb21617..0c52b1f982 100644 --- a/source/java/org/alfresco/web/bean/AboutBean.java +++ b/source/java/org/alfresco/web/bean/AboutBean.java @@ -26,12 +26,6 @@ package org.alfresco.web.bean; import javax.faces.context.FacesContext; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.Serializable; - -import javax.faces.context.FacesContext; - import org.alfresco.service.descriptor.DescriptorService; import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; @@ -95,6 +89,7 @@ public class AboutBean extends BaseDialogBean DescriptorService getDescriptorService() { + //check for null in cluster environment if (descriptorService == null) { descriptorService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getDescriptorService(); diff --git a/source/java/org/alfresco/web/bean/BaseDetailsBean.java b/source/java/org/alfresco/web/bean/BaseDetailsBean.java index c8a09bbe61..a4751cc581 100644 --- a/source/java/org/alfresco/web/bean/BaseDetailsBean.java +++ b/source/java/org/alfresco/web/bean/BaseDetailsBean.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.text.MessageFormat; import java.util.HashMap; diff --git a/source/java/org/alfresco/web/bean/BrowseBean.java b/source/java/org/alfresco/web/bean/BrowseBean.java index 6f50507358..875a2b082a 100644 --- a/source/java/org/alfresco/web/bean/BrowseBean.java +++ b/source/java/org/alfresco/web/bean/BrowseBean.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; @@ -1949,7 +1947,7 @@ public class BrowseBean implements IContextListener, Serializable else { // if the breadcrum is in "path" mode just add the given item to the end - String name = Repository.getNameForNode(this.nodeService, ref); + String name = Repository.getNameForNode(this.getNodeService(), ref); location.add(new BrowseBreadcrumbHandler(ref, name)); } } diff --git a/source/java/org/alfresco/web/bean/CategoryBrowserBean.java b/source/java/org/alfresco/web/bean/CategoryBrowserBean.java index 06d7ef1664..672be0220a 100644 --- a/source/java/org/alfresco/web/bean/CategoryBrowserBean.java +++ b/source/java/org/alfresco/web/bean/CategoryBrowserBean.java @@ -31,8 +31,8 @@ import org.alfresco.web.bean.search.SearchContext; public class CategoryBrowserBean { - public static String BEAN_NAME = "CategoryBrowserBean"; - + public static String BEAN_NAME = "CategoryBrowserBean"; + private NodeService nodeService; private NodeRef currentCategory = null; diff --git a/source/java/org/alfresco/web/bean/LoginBean.java b/source/java/org/alfresco/web/bean/LoginBean.java index 801284d146..989bab55cb 100644 --- a/source/java/org/alfresco/web/bean/LoginBean.java +++ b/source/java/org/alfresco/web/bean/LoginBean.java @@ -25,7 +25,6 @@ package org.alfresco.web.bean; import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.text.MessageFormat; import java.util.Map; diff --git a/source/java/org/alfresco/web/bean/NavigationBean.java b/source/java/org/alfresco/web/bean/NavigationBean.java index c295337196..39a996c1af 100644 --- a/source/java/org/alfresco/web/bean/NavigationBean.java +++ b/source/java/org/alfresco/web/bean/NavigationBean.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; @@ -39,10 +37,8 @@ import javax.faces.event.ActionEvent; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.filesys.CIFSServerBean; -import org.alfresco.filesys.ServerConfigurationBean; import org.alfresco.filesys.repo.ContentContext; import org.alfresco.filesys.repo.ContentDiskInterface; -import org.alfresco.jlan.server.config.ServerConfiguration; import org.alfresco.jlan.server.core.SharedDevice; import org.alfresco.jlan.server.core.SharedDeviceList; import org.alfresco.jlan.server.filesys.DiskSharedDevice; @@ -81,7 +77,6 @@ import org.alfresco.web.ui.repo.component.IRepoBreadcrumbHandler; import org.alfresco.web.ui.repo.component.shelf.UIShelf; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.web.jsf.FacesContextUtils; /** * Bean providing access and management of the various global navigation mechanisms @@ -385,7 +380,7 @@ public class NavigationBean implements Serializable } else { - String homeSpaceName = Repository.getNameForNode(this.nodeService, homeSpaceRef); + String homeSpaceName = Repository.getNameForNode(this.getNodeService(), homeSpaceRef); elements.add(new NavigationBreadcrumbHandler(homeSpaceRef, homeSpaceName)); if (s_logger.isDebugEnabled()) diff --git a/source/java/org/alfresco/web/bean/SpaceLinkDetailsDialog.java b/source/java/org/alfresco/web/bean/SpaceLinkDetailsDialog.java index 88e5a1c912..f5878ce239 100644 --- a/source/java/org/alfresco/web/bean/SpaceLinkDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/SpaceLinkDetailsDialog.java @@ -43,6 +43,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class SpaceLinkDetailsDialog extends BaseDetailsBean implements NavigationSupport { + private static final long serialVersionUID = 8372741472120796169L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; private final static String MSG_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/TemplateMailHelperBean.java b/source/java/org/alfresco/web/bean/TemplateMailHelperBean.java index 3d09c43aaa..0957d77e53 100644 --- a/source/java/org/alfresco/web/bean/TemplateMailHelperBean.java +++ b/source/java/org/alfresco/web/bean/TemplateMailHelperBean.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.text.MessageFormat; import java.util.Map; @@ -42,9 +40,8 @@ import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.web.app.Application; -import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.app.servlet.BaseTemplateContentServlet; -import org.alfresco.web.app.servlet.BaseTemplateContentServlet.URLHelper; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.repo.component.template.DefaultModelHelper; diff --git a/source/java/org/alfresco/web/bean/TemplateSupportBean.java b/source/java/org/alfresco/web/bean/TemplateSupportBean.java index 6a2137f41b..347edfa0c1 100644 --- a/source/java/org/alfresco/web/bean/TemplateSupportBean.java +++ b/source/java/org/alfresco/web/bean/TemplateSupportBean.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.ArrayList; import java.util.List; diff --git a/source/java/org/alfresco/web/bean/admin/AdminConsoleDialog.java b/source/java/org/alfresco/web/bean/admin/AdminConsoleDialog.java index 7ccce40e77..4123f6e61d 100644 --- a/source/java/org/alfresco/web/bean/admin/AdminConsoleDialog.java +++ b/source/java/org/alfresco/web/bean/admin/AdminConsoleDialog.java @@ -31,16 +31,19 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; public class AdminConsoleDialog extends BaseDialogBean { - private static final String BUTTON_CLOSE = "close"; + private static final long serialVersionUID = -2520599525975495006L; + + private static final String BUTTON_CLOSE = "close"; @Override - protected String finishImpl(FacesContext context, String outcome) throws Exception - { - return outcome; - } + protected String finishImpl(FacesContext context, String outcome) throws Exception + { + return outcome; + } @Override - public String getCancelButtonLabel() { - return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_CLOSE); - } + public String getCancelButtonLabel() + { + return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_CLOSE); + } } diff --git a/source/java/org/alfresco/web/bean/admin/AdminNodeBrowseBean.java b/source/java/org/alfresco/web/bean/admin/AdminNodeBrowseBean.java index 9d81760926..7cf3e853ad 100644 --- a/source/java/org/alfresco/web/bean/admin/AdminNodeBrowseBean.java +++ b/source/java/org/alfresco/web/bean/admin/AdminNodeBrowseBean.java @@ -658,7 +658,7 @@ public class AdminNodeBrowseBean implements Serializable } else if (queryLanguage.equals("selectnodes")) { - List nodes = getSearchService().selectNodes(getNodeRef(), query, null, namespaceService, false); + List nodes = getSearchService().selectNodes(getNodeRef(), query, null, getNamespaceService(), false); searchResults = new SearchResults(nodes); return "search"; } diff --git a/source/java/org/alfresco/web/bean/admin/ShowSystemInfoDialog.java b/source/java/org/alfresco/web/bean/admin/ShowSystemInfoDialog.java index 20e1699678..918f0d9c41 100644 --- a/source/java/org/alfresco/web/bean/admin/ShowSystemInfoDialog.java +++ b/source/java/org/alfresco/web/bean/admin/ShowSystemInfoDialog.java @@ -37,6 +37,8 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; */ public class ShowSystemInfoDialog extends BaseDialogBean { + private static final long serialVersionUID = 1328587489092603676L; + private static final String MSG_CURRENT_USER = "current_user"; private static final String MSG_CLOSE = "close"; private static final String MSG_VERSION = "version"; diff --git a/source/java/org/alfresco/web/bean/ajax/CategoryBrowserPluginBean.java b/source/java/org/alfresco/web/bean/ajax/CategoryBrowserPluginBean.java index b0c8caf377..bbbf3e805f 100644 --- a/source/java/org/alfresco/web/bean/ajax/CategoryBrowserPluginBean.java +++ b/source/java/org/alfresco/web/bean/ajax/CategoryBrowserPluginBean.java @@ -25,6 +25,7 @@ package org.alfresco.web.bean.ajax; import java.io.IOException; +import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -50,20 +51,19 @@ import org.alfresco.web.ui.repo.component.UITree.TreeNode; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -public class CategoryBrowserPluginBean +public class CategoryBrowserPluginBean implements Serializable { + private static final long serialVersionUID = -1493808456969763500L; + public static final String BEAN_NAME = "CategoryBrowserPluginBean"; private static final Log logger = LogFactory.getLog(CategoryBrowserPluginBean.class); - private CategoryService categoryService; - - private NodeService nodeService; + transient private CategoryService categoryService; + transient private NodeService nodeService; private List categoryRootNodes; - private Map categoryNodes; - protected NodeRef previouslySelectedNode; /** @@ -74,7 +74,20 @@ public class CategoryBrowserPluginBean { this.categoryService = categoryService; } - + + /** + * @return the categoryService + */ + private CategoryService getCategoryService() + { + //check for null in cluster environment + if(categoryService == null) + { + categoryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCategoryService(); + } + return categoryService; + } + /** * @param nodeService * the nodeService to set @@ -84,6 +97,19 @@ public class CategoryBrowserPluginBean this.nodeService = nodeService; } + /** + * @return the nodeService + */ + private NodeService getNodeService() + { + //check for null in cluster environment + if(nodeService == null) + { + nodeService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getNodeService(); + } + return nodeService; + } + public List getCategoryRootNodes() { if (this.categoryRootNodes == null) @@ -97,7 +123,7 @@ public class CategoryBrowserPluginBean tx = Repository.getUserTransaction(FacesContext.getCurrentInstance(), true); tx.begin(); - Collection childRefs = this.categoryService.getRootCategories( + Collection childRefs = this.getCategoryService().getRootCategories( Repository.getStoreRef(), ContentModel.ASPECT_GEN_CLASSIFIABLE); for (ChildAssociationRef ref : childRefs) @@ -170,7 +196,7 @@ public class CategoryBrowserPluginBean parentNode.removeChildren(); // get all the child folder objects for the parent - List childRefs = this.nodeService.getChildAssocs(parentNodeRef, + List childRefs = this.getNodeService().getChildAssocs(parentNodeRef, ContentModel.ASSOC_SUBCATEGORIES, RegexQNamePattern.MATCH_ALL); List sortedNodes = new ArrayList(); for (ChildAssociationRef ref : childRefs) @@ -319,8 +345,8 @@ public class CategoryBrowserPluginBean */ protected TreeNode createTreeNode(NodeRef nodeRef) { - TreeNode node = new TreeNode(nodeRef.toString(), Repository.getNameForNode(this.nodeService, nodeRef), - (String) this.nodeService.getProperty(nodeRef, ApplicationModel.PROP_ICON)); + TreeNode node = new TreeNode(nodeRef.toString(), Repository.getNameForNode(this.getNodeService(), nodeRef), + (String) this.getNodeService().getProperty(nodeRef, ApplicationModel.PROP_ICON)); return node; } diff --git a/source/java/org/alfresco/web/bean/ajax/ContentUpdateBean.java b/source/java/org/alfresco/web/bean/ajax/ContentUpdateBean.java index b6ca1418b2..f6159cf6fd 100644 --- a/source/java/org/alfresco/web/bean/ajax/ContentUpdateBean.java +++ b/source/java/org/alfresco/web/bean/ajax/ContentUpdateBean.java @@ -26,11 +26,7 @@ package org.alfresco.web.bean.ajax; import java.io.File; import java.io.Serializable; -import java.net.URLDecoder; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; @@ -39,15 +35,10 @@ import javax.servlet.http.HttpServletRequest; import org.alfresco.model.ContentModel; import org.alfresco.repo.content.MimetypeMap; -import org.alfresco.repo.content.filestore.FileContentReader; import org.alfresco.service.ServiceRegistry; -import org.alfresco.service.cmr.model.FileInfo; -import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.ContentWriter; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.service.namespace.QName; import org.alfresco.util.TempFileProvider; -import org.alfresco.web.app.servlet.BaseServlet; import org.alfresco.web.app.servlet.ajax.InvokeCommand; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.forms.XMLUtil; diff --git a/source/java/org/alfresco/web/bean/ajax/NodeInfoBean.java b/source/java/org/alfresco/web/bean/ajax/NodeInfoBean.java index a25a233c76..9f270aa564 100644 --- a/source/java/org/alfresco/web/bean/ajax/NodeInfoBean.java +++ b/source/java/org/alfresco/web/bean/ajax/NodeInfoBean.java @@ -25,7 +25,6 @@ package org.alfresco.web.bean.ajax; import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.Date; import java.util.HashMap; diff --git a/source/java/org/alfresco/web/bean/ajax/PickerBean.java b/source/java/org/alfresco/web/bean/ajax/PickerBean.java index a3468f69e3..e93e045c4b 100644 --- a/source/java/org/alfresco/web/bean/ajax/PickerBean.java +++ b/source/java/org/alfresco/web/bean/ajax/PickerBean.java @@ -24,6 +24,7 @@ */ package org.alfresco.web.bean.ajax; +import java.io.Serializable; import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -49,6 +50,7 @@ import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.search.CategoryService; import org.alfresco.web.app.Application; import org.alfresco.web.app.servlet.DownloadContentServlet; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.app.servlet.ajax.InvokeCommand; import org.alfresco.web.bean.BrowseBean; import org.alfresco.web.bean.repository.Repository; @@ -61,8 +63,10 @@ import org.apache.commons.logging.LogFactory; * * @author Kevin Roast */ -public class PickerBean +public class PickerBean implements Serializable { + private static final long serialVersionUID = 8950457520023294902L; + private static final String MSG_CATEGORIES = "categories"; private static final String ID_URL = "url"; private static final String ID_ICON = "icon"; @@ -80,10 +84,10 @@ public class PickerBean private static Log logger = LogFactory.getLog(PickerBean.class); - private CategoryService categoryService; - private NodeService nodeService; - private NodeService internalNodeService; - private FileFolderService fileFolderService; + transient private CategoryService categoryService; + transient private NodeService nodeService; + transient private NodeService internalNodeService; + transient private FileFolderService fileFolderService; /** @@ -94,6 +98,19 @@ public class PickerBean this.categoryService = categoryService; } + /** + * @return the categoryService + */ + private CategoryService getCategoryService() + { + //check for null in cluster environment + if(categoryService == null) + { + categoryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCategoryService(); + } + return categoryService; + } + /** * @param nodeService The nodeService to set */ @@ -102,6 +119,19 @@ public class PickerBean this.nodeService = nodeService; } + /** + * @return the nodeService + */ + private NodeService getNodeService() + { + //check for null in cluster environment + if (nodeService == null) + { + nodeService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getNodeService(); + } + return nodeService; + } + /** * @param internalNodeService The internalNodeService to set. */ @@ -110,6 +140,19 @@ public class PickerBean this.internalNodeService = internalNodeService; } + /** + * @return the internalNodeService + */ + private NodeService getInternalNodeService() + { + //check for null in cluster environment + if (internalNodeService == null) + { + internalNodeService = (NodeService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "nodeService"); + } + return internalNodeService; + } + /** * @param fileFolderService the FileFolderService to set */ @@ -118,7 +161,18 @@ public class PickerBean this.fileFolderService = fileFolderService; } - + /** + * @return the fileFolderService + */ + private FileFolderService getFileFolderService() + { + if (fileFolderService == null) + { + fileFolderService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getFileFolderService(); + } + return fileFolderService; + } + /** * Return the JSON objects representing a list of categories. * @@ -143,14 +197,14 @@ public class PickerBean String strParentRef = (String)params.get(PARAM_PARENT); if (strParentRef == null || strParentRef.length() == 0) { - childRefs = this.categoryService.getRootCategories( + childRefs = this.getCategoryService().getRootCategories( Repository.getStoreRef(), ContentModel.ASPECT_GEN_CLASSIFIABLE); } else { parentRef = new NodeRef(strParentRef); - childRefs = this.categoryService.getChildren( + childRefs = this.getCategoryService().getChildren( parentRef, CategoryService.Mode.SUB_CATEGORIES, CategoryService.Depth.IMMEDIATE); @@ -170,7 +224,7 @@ public class PickerBean else { out.writeValue(ID_ID, strParentRef); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, parentRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), parentRef)); } out.endObject(); out.endValue(); @@ -181,7 +235,7 @@ public class PickerBean NodeRef nodeRef = ref.getChildRef(); out.startObject(); out.writeValue(ID_ID, nodeRef.toString()); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, nodeRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), nodeRef)); out.endObject(); } out.endArray(); @@ -225,14 +279,14 @@ public class PickerBean String strParentRef = (String)params.get(ID_PARENT); if (strParentRef == null || strParentRef.length() == 0) { - childRefs = this.categoryService.getRootCategories( + childRefs = this.getCategoryService().getRootCategories( Repository.getStoreRef(), ContentModel.ASPECT_TAGGABLE); } else { parentRef = new NodeRef(strParentRef); - childRefs = this.categoryService.getChildren( + childRefs = this.getCategoryService().getChildren( parentRef, CategoryService.Mode.SUB_CATEGORIES, CategoryService.Depth.IMMEDIATE); @@ -252,7 +306,7 @@ public class PickerBean else { out.writeValue(ID_ID, strParentRef); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, parentRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), parentRef)); } out.endObject(); out.endValue(); @@ -263,7 +317,7 @@ public class PickerBean NodeRef nodeRef = ref.getChildRef(); out.startObject(); out.writeValue(ID_ID, nodeRef.toString()); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, nodeRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), nodeRef)); out.endObject(); } out.endArray(); @@ -301,7 +355,7 @@ public class PickerBean { // TODO: check permission on the parent NodeRef childRef = new NodeRef(strChildRef); - parentRef = this.nodeService.getPrimaryParent(childRef).getParentRef(); + parentRef = this.getNodeService().getPrimaryParent(childRef).getParentRef(); } else { @@ -318,14 +372,14 @@ public class PickerBean } } - List folders = this.fileFolderService.listFolders(parentRef); + List folders = this.getFileFolderService().listFolders(parentRef); JSONWriter out = new JSONWriter(fc.getResponseWriter()); out.startObject(); out.startValue(ID_PARENT); out.startObject(); out.writeValue(ID_ID, parentRef.toString()); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, parentRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), parentRef)); if (parentRef.equals(companyHomeRef)) { out.writeValue(ID_ISROOT, true); @@ -399,7 +453,7 @@ public class PickerBean { // TODO: check permission on the parent NodeRef childRef = new NodeRef(strChildRef); - parentRef = this.nodeService.getPrimaryParent(childRef).getParentRef(); + parentRef = this.getNodeService().getPrimaryParent(childRef).getParentRef(); } else { @@ -429,14 +483,14 @@ public class PickerBean } } - List items = this.fileFolderService.list(parentRef); + List items = this.getFileFolderService().list(parentRef); JSONWriter out = new JSONWriter(fc.getResponseWriter()); out.startObject(); out.startValue(ID_PARENT); out.startObject(); out.writeValue(ID_ID, parentRef.toString()); - out.writeValue(ID_NAME, Repository.getNameForNode(this.internalNodeService, parentRef)); + out.writeValue(ID_NAME, Repository.getNameForNode(this.getInternalNodeService(), parentRef)); if (parentRef.equals(companyHomeRef)) { out.writeValue(ID_ISROOT, true); @@ -449,7 +503,7 @@ public class PickerBean for (FileInfo item : items) { - if (dd.isSubClass(this.internalNodeService.getType(item.getNodeRef()), ContentModel.TYPE_FOLDER)) + if (dd.isSubClass(this.getInternalNodeService().getType(item.getNodeRef()), ContentModel.TYPE_FOLDER)) { // found a folder out.startObject(); diff --git a/source/java/org/alfresco/web/bean/ajax/PresenceProxyBean.java b/source/java/org/alfresco/web/bean/ajax/PresenceProxyBean.java index 6dd48fc37b..9f11cd4a73 100644 --- a/source/java/org/alfresco/web/bean/ajax/PresenceProxyBean.java +++ b/source/java/org/alfresco/web/bean/ajax/PresenceProxyBean.java @@ -25,6 +25,7 @@ package org.alfresco.web.bean.ajax; import java.io.IOException; +import java.io.Serializable; import java.util.Map; import javax.faces.context.FacesContext; @@ -47,8 +48,10 @@ import org.apache.commons.logging.LogFactory; * * @author Mike Hatfield */ -public class PresenceProxyBean +public class PresenceProxyBean implements Serializable { + private static final long serialVersionUID = -3041576848188629589L; + private static Log logger = LogFactory.getLog(PresenceProxyBean.class); @InvokeCommand.ResponseMimetype(value=MimetypeMap.MIMETYPE_HTML) diff --git a/source/java/org/alfresco/web/bean/ajax/TaskInfoBean.java b/source/java/org/alfresco/web/bean/ajax/TaskInfoBean.java index 474a5356d7..6166f66170 100644 --- a/source/java/org/alfresco/web/bean/ajax/TaskInfoBean.java +++ b/source/java/org/alfresco/web/bean/ajax/TaskInfoBean.java @@ -25,7 +25,6 @@ package org.alfresco.web.bean.ajax; import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.Date; import java.util.HashMap; @@ -100,7 +99,7 @@ public class TaskInfoBean implements Serializable throw new IllegalArgumentException("'taskId' parameter is missing"); } - WorkflowTask task = this.workflowService.getTaskById(taskId); + WorkflowTask task = this.getWorkflowService().getTaskById(taskId); if (task != null) { Repository.getServiceRegistry(context).getTemplateService().processTemplate( diff --git a/source/java/org/alfresco/web/bean/categories/CreateCategoryDialog.java b/source/java/org/alfresco/web/bean/categories/CreateCategoryDialog.java index 4b248050e9..2a0b3b1c02 100644 --- a/source/java/org/alfresco/web/bean/categories/CreateCategoryDialog.java +++ b/source/java/org/alfresco/web/bean/categories/CreateCategoryDialog.java @@ -44,9 +44,11 @@ import org.alfresco.web.ui.common.Utils; public class CreateCategoryDialog extends BaseDialogBean { + private static final long serialVersionUID = 1905920932992642119L; + private static final String DEFAULT_OUTCOME = "finish"; - protected CategoryService categoryService; + transient protected CategoryService categoryService; /** Current category ref */ private NodeRef categoryRef = null; @@ -72,9 +74,17 @@ public class CreateCategoryDialog extends BaseDialogBean } } - public CategoryService getCategoryService() + /** + * @return the categoryService + */ + private CategoryService getCategoryService() { - return categoryService; + //check for null in cluster environment + if(categoryService == null) + { + categoryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCategoryService(); + } + return categoryService; } public void setCategoryService(CategoryService categoryService) diff --git a/source/java/org/alfresco/web/bean/categories/DeleteCategoryDialog.java b/source/java/org/alfresco/web/bean/categories/DeleteCategoryDialog.java index 022275f24a..e6f2a258ed 100644 --- a/source/java/org/alfresco/web/bean/categories/DeleteCategoryDialog.java +++ b/source/java/org/alfresco/web/bean/categories/DeleteCategoryDialog.java @@ -56,13 +56,15 @@ import org.apache.commons.logging.LogFactory; public class DeleteCategoryDialog extends BaseDialogBean { + private static final long serialVersionUID = -8929785826091612856L; + private static final String DEFAULT_OUTCOME = "finish"; private final static String MSG_DELETE_CATEGORY = "delete_category"; private final static String MSG_DELETE = "delete"; private static final String MSG_CATEGORIES = "categories"; - protected CategoryService categoryService; + transient protected CategoryService categoryService; /** Dialog properties */ private String name = null; @@ -151,9 +153,17 @@ public class DeleteCategoryDialog extends BaseDialogBean this.description = description; } - public CategoryService getCategoryService() + /** + * @return the categoryService + */ + private CategoryService getCategoryService() { - return categoryService; + //check for null in cluster environment + if(categoryService == null) + { + categoryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCategoryService(); + } + return categoryService; } public void setCategoryService(CategoryService categoryService) diff --git a/source/java/org/alfresco/web/bean/categories/EditCategoryDialog.java b/source/java/org/alfresco/web/bean/categories/EditCategoryDialog.java index 75eccb160a..2e72a6d742 100644 --- a/source/java/org/alfresco/web/bean/categories/EditCategoryDialog.java +++ b/source/java/org/alfresco/web/bean/categories/EditCategoryDialog.java @@ -54,12 +54,14 @@ import org.alfresco.web.ui.repo.component.IRepoBreadcrumbHandler; public class EditCategoryDialog extends BaseDialogBean { + private static final long serialVersionUID = 3316665625854694278L; + private static final String DEFAULT_OUTCOME = "finish"; private final static String MSG_EDIT_CATEGORY = "edit_category"; private final static String MSG_FINISH = "finish_button"; private static final String MSG_CATEGORIES = "categories"; - protected CategoryService categoryService; + transient protected CategoryService categoryService; /** Action category node */ private Node actionCategory = null; @@ -129,8 +131,16 @@ public class EditCategoryDialog extends BaseDialogBean this.categoriesRichList = categoriesRichList; } - public CategoryService getCategoryService() + /** + * @return the categoryService + */ + private CategoryService getCategoryService() { + //check for null in cluster environment + if(categoryService == null) + { + categoryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCategoryService(); + } return categoryService; } diff --git a/source/java/org/alfresco/web/bean/categories/EditNodeCategoriesDialog.java b/source/java/org/alfresco/web/bean/categories/EditNodeCategoriesDialog.java index e6602ffb13..ce910cb3c7 100644 --- a/source/java/org/alfresco/web/bean/categories/EditNodeCategoriesDialog.java +++ b/source/java/org/alfresco/web/bean/categories/EditNodeCategoriesDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.bean.repository.Node; */ public class EditNodeCategoriesDialog extends BaseDialogBean { + private static final long serialVersionUID = -1879847736997772606L; + protected Node node; protected NodeRef addedCategory; protected List categories; diff --git a/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java b/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java index 0cce4c61d4..7fe0288f7c 100644 --- a/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java +++ b/source/java/org/alfresco/web/bean/clipboard/AbstractClipboardItem.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean.clipboard; -import java.io.IOException; -import java.io.ObjectInputStream; import java.util.List; import javax.faces.context.FacesContext; diff --git a/source/java/org/alfresco/web/bean/coci/CCCheckinFileDialog.java b/source/java/org/alfresco/web/bean/coci/CCCheckinFileDialog.java index 046a15e78b..1231bb1923 100644 --- a/source/java/org/alfresco/web/bean/coci/CCCheckinFileDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCCheckinFileDialog.java @@ -7,6 +7,8 @@ import org.alfresco.web.app.Application; public class CCCheckinFileDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = -3591701539727090905L; + private static final String MSG_CHECK_IN = "check_in"; @Override diff --git a/source/java/org/alfresco/web/bean/coci/CCCheckoutFileDialog.java b/source/java/org/alfresco/web/bean/coci/CCCheckoutFileDialog.java index 3aa787abde..ee1ff0d0f7 100644 --- a/source/java/org/alfresco/web/bean/coci/CCCheckoutFileDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCCheckoutFileDialog.java @@ -42,6 +42,8 @@ import org.apache.commons.logging.LogFactory; public class CCCheckoutFileDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = 1137163500648349730L; + public static final String LBL_SAVE = "save"; public static final String LBL_CHECKOUT = "check_out"; diff --git a/source/java/org/alfresco/web/bean/coci/CCCheckoutFileLinkDialog.java b/source/java/org/alfresco/web/bean/coci/CCCheckoutFileLinkDialog.java index c2d7d7674f..0c8f4920e3 100644 --- a/source/java/org/alfresco/web/bean/coci/CCCheckoutFileLinkDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCCheckoutFileLinkDialog.java @@ -34,6 +34,8 @@ import org.apache.commons.logging.LogFactory; public class CCCheckoutFileLinkDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = -4732775752517417543L; + public static final String MSG_CHECKOUT_OF = "check_out_of"; public static final String LBL_UNDO_CHECKOUT = "undo_checkout"; diff --git a/source/java/org/alfresco/web/bean/coci/CCEditFileDialog.java b/source/java/org/alfresco/web/bean/coci/CCEditFileDialog.java index f2d96b1fcb..f7af8ad8b5 100644 --- a/source/java/org/alfresco/web/bean/coci/CCEditFileDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCEditFileDialog.java @@ -30,6 +30,8 @@ import org.alfresco.web.app.Application; public class CCEditFileDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = -1145049277343144264L; + public static final String LBL_CLOSE = "close"; @Override diff --git a/source/java/org/alfresco/web/bean/coci/CCEditHtmlInlineDialog.java b/source/java/org/alfresco/web/bean/coci/CCEditHtmlInlineDialog.java index d7765a604a..044757a1b7 100644 --- a/source/java/org/alfresco/web/bean/coci/CCEditHtmlInlineDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCEditHtmlInlineDialog.java @@ -30,6 +30,8 @@ import org.alfresco.web.app.Application; public class CCEditHtmlInlineDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = 5971155828037579931L; + public static final String LBL_SAVE = "save"; @Override diff --git a/source/java/org/alfresco/web/bean/coci/CCEditTextInlineDialog.java b/source/java/org/alfresco/web/bean/coci/CCEditTextInlineDialog.java index 536dc9f9e7..dab74788b4 100644 --- a/source/java/org/alfresco/web/bean/coci/CCEditTextInlineDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCEditTextInlineDialog.java @@ -30,6 +30,8 @@ import org.alfresco.web.app.Application; public class CCEditTextInlineDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = 4657371875928010937L; + public static final String LBL_SAVE = "save"; @Override diff --git a/source/java/org/alfresco/web/bean/coci/CCProperties.java b/source/java/org/alfresco/web/bean/coci/CCProperties.java index e9dd0e63ca..c432040b9b 100644 --- a/source/java/org/alfresco/web/bean/coci/CCProperties.java +++ b/source/java/org/alfresco/web/bean/coci/CCProperties.java @@ -25,24 +25,30 @@ package org.alfresco.web.bean.coci; import java.io.File; +import java.io.Serializable; + +import javax.faces.context.FacesContext; import org.alfresco.service.cmr.coci.CheckOutCheckInService; import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.web.bean.repository.Node; +import org.alfresco.web.bean.repository.Repository; -public class CCProperties +public class CCProperties implements Serializable { - /** The VersionOperationsService to be used by the bean */ - protected CheckOutCheckInService versionOperationsService; + private static final long serialVersionUID = -79530354521757202L; + + /** The VersionOperationsService to be used by the bean */ + transient protected CheckOutCheckInService versionOperationsService; /** The ContentService to be used by the bean */ - protected ContentService contentService; + transient protected ContentService contentService; /** The WorkflowService to be used by the bean */ - protected WorkflowService workflowService; + transient protected WorkflowService workflowService; /** Content of the document returned from in-line editing */ private String editorOutput; @@ -77,7 +83,12 @@ public class CCProperties */ public CheckOutCheckInService getVersionOperationsService() { - return this.versionOperationsService; + //check for null in cluster environment + if (versionOperationsService == null) + { + versionOperationsService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getCheckOutCheckInService(); + } + return versionOperationsService; } /** @@ -94,7 +105,12 @@ public class CCProperties */ public ContentService getContentService() { - return this.contentService; + //check for null in cluster environment + if (contentService == null) + { + contentService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getContentService(); + } + return contentService; } /** @@ -120,7 +136,12 @@ public class CCProperties */ public WorkflowService getWorkflowService() { - return this.workflowService; + //check for null for cluster environment + if (workflowService == null) + { + workflowService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getWorkflowService(); + } + return workflowService; } /** diff --git a/source/java/org/alfresco/web/bean/coci/CCUndoCheckoutFileDialog.java b/source/java/org/alfresco/web/bean/coci/CCUndoCheckoutFileDialog.java index 74664ec0e1..928ed9a0e9 100644 --- a/source/java/org/alfresco/web/bean/coci/CCUndoCheckoutFileDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCUndoCheckoutFileDialog.java @@ -35,6 +35,8 @@ import org.apache.commons.logging.LogFactory; public class CCUndoCheckoutFileDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = -6957120889259486975L; + public static final String LBL_UNDO_CHECKOUT = "undo_checkout"; public static final String MSG_UNDO_CHECKOUT_FOR = "undo_checkout_for"; diff --git a/source/java/org/alfresco/web/bean/coci/CCUpdateFileDialog.java b/source/java/org/alfresco/web/bean/coci/CCUpdateFileDialog.java index 76d1f60cf0..447912954d 100644 --- a/source/java/org/alfresco/web/bean/coci/CCUpdateFileDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCUpdateFileDialog.java @@ -6,6 +6,8 @@ import org.alfresco.web.app.Application; public class CCUpdateFileDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = 8230565659041530809L; + private final static String MSG_UPDATE = "update"; @Override diff --git a/source/java/org/alfresco/web/bean/coci/CCWorkingCopyMissingDialog.java b/source/java/org/alfresco/web/bean/coci/CCWorkingCopyMissingDialog.java index 5c5ac27a40..fa6bbfe940 100644 --- a/source/java/org/alfresco/web/bean/coci/CCWorkingCopyMissingDialog.java +++ b/source/java/org/alfresco/web/bean/coci/CCWorkingCopyMissingDialog.java @@ -31,6 +31,8 @@ import org.alfresco.web.app.Application; public class CCWorkingCopyMissingDialog extends CheckinCheckoutDialog { + private static final long serialVersionUID = 8067485292477557683L; + public static final String MSG_WORKING_COPY_FOR = "working_copy_for"; public static final String LBL_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java index e3393f0ad3..af17b91a5c 100644 --- a/source/java/org/alfresco/web/bean/content/CreateContentWizard.java +++ b/source/java/org/alfresco/web/bean/content/CreateContentWizard.java @@ -44,6 +44,7 @@ import org.alfresco.repo.content.MimetypeMap; import org.alfresco.service.namespace.QName; import org.alfresco.web.app.AlfrescoNavigationHandler; import org.alfresco.web.app.Application; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.data.IDataContainer; import org.alfresco.web.data.QuickSort; @@ -70,10 +71,10 @@ public class CreateContentWizard extends BaseContentWizard protected String content = null; protected List createMimeTypes; - protected FormsService formsService; + transient protected FormsService formsService; protected String formName; protected FormProcessor.Session formProcessorSession = null; - protected Document instanceDataDocument = null; + transient protected Document instanceDataDocument = null; private static Log logger = LogFactory.getLog(CreateContentWizard.class); @@ -86,9 +87,23 @@ public class CreateContentWizard extends BaseContentWizard this.formsService = formsService; } + /** + * @return the formsService + */ + private FormsService getFormsService() + { + //check for null for cluster environment + if (formsService == null) + { + formsService = (FormsService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "FormsService"); + } + return formsService; + } + // ------------------------------------------------------------------------------ // Wizard implementation + @Override public String finish() { @@ -294,7 +309,7 @@ public class CreateContentWizard extends BaseContentWizard */ public List getFormsList() { - Collection
forms = this.formsService.getForms(); + Collection forms = this.getFormsService().getForms(); List items = new ArrayList(forms.size()+1); items.add(new SelectItem("", "")); for (Form form : forms) @@ -317,7 +332,7 @@ public class CreateContentWizard extends BaseContentWizard public Form getForm() throws FormNotFoundException { return (this.getFormName() != null - ? formsService.getForm(formName) + ? getFormsService().getForm(formName) : null); } diff --git a/source/java/org/alfresco/web/bean/content/DocumentLinkDetailsDialog.java b/source/java/org/alfresco/web/bean/content/DocumentLinkDetailsDialog.java index 1586e9a251..b8e9310040 100644 --- a/source/java/org/alfresco/web/bean/content/DocumentLinkDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/content/DocumentLinkDetailsDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class DocumentLinkDetailsDialog extends BaseDetailsBean implements NavigationSupport { + private static final long serialVersionUID = 4716260640608281667L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; private final static String MSG_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/content/DocumentPropertiesDialog.java b/source/java/org/alfresco/web/bean/content/DocumentPropertiesDialog.java index 7023fbbfda..01efaf0f6f 100644 --- a/source/java/org/alfresco/web/bean/content/DocumentPropertiesDialog.java +++ b/source/java/org/alfresco/web/bean/content/DocumentPropertiesDialog.java @@ -78,6 +78,7 @@ public class DocumentPropertiesDialog implements Serializable transient private NodeService nodeService; transient private FileFolderService fileFolderService; transient private DictionaryService dictionaryService; + protected BrowseBean browseBean; private List contentTypes; private Node editableNode; diff --git a/source/java/org/alfresco/web/bean/content/EditContentWizard.java b/source/java/org/alfresco/web/bean/content/EditContentWizard.java index 56afb97b95..021e725453 100644 --- a/source/java/org/alfresco/web/bean/content/EditContentWizard.java +++ b/source/java/org/alfresco/web/bean/content/EditContentWizard.java @@ -38,14 +38,14 @@ import org.alfresco.web.bean.repository.Node; import org.alfresco.web.forms.Form; import org.alfresco.web.forms.FormNotFoundException; import org.alfresco.web.ui.common.Utils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Bean implementation for the "Edit Content Wizard" dialog */ public class EditContentWizard extends CreateContentWizard { + private static final long serialVersionUID = 1640754719164511019L; + private NodeRef nodeRef; private Form form; diff --git a/source/java/org/alfresco/web/bean/content/EditSimpleWorkflowDialog.java b/source/java/org/alfresco/web/bean/content/EditSimpleWorkflowDialog.java index c50a7f7a6e..f93afee972 100644 --- a/source/java/org/alfresco/web/bean/content/EditSimpleWorkflowDialog.java +++ b/source/java/org/alfresco/web/bean/content/EditSimpleWorkflowDialog.java @@ -43,6 +43,8 @@ import org.alfresco.web.ui.common.Utils; public class EditSimpleWorkflowDialog extends BaseDialogBean { + private static final long serialVersionUID = 7203447561571625990L; + private static final String MSG_ERROR_UPDATE_SIMPLEWORKFLOW = "error_update_simpleworkflow"; protected Map workflowProperties; diff --git a/source/java/org/alfresco/web/bean/forums/CreateTopicDialog.java b/source/java/org/alfresco/web/bean/forums/CreateTopicDialog.java index 036f2f8da7..b89171cbf6 100644 --- a/source/java/org/alfresco/web/bean/forums/CreateTopicDialog.java +++ b/source/java/org/alfresco/web/bean/forums/CreateTopicDialog.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean.forums; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.HashMap; import java.util.Map; diff --git a/source/java/org/alfresco/web/bean/forums/ForumDetailsDialog.java b/source/java/org/alfresco/web/bean/forums/ForumDetailsDialog.java index 49e4ec17cc..541e095bee 100644 --- a/source/java/org/alfresco/web/bean/forums/ForumDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/forums/ForumDetailsDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class ForumDetailsDialog extends BaseDetailsBean implements NavigationSupport { + private static final long serialVersionUID = -1358474435876806449L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; private final static String MSG_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/forums/ForumsDetailsDialog.java b/source/java/org/alfresco/web/bean/forums/ForumsDetailsDialog.java index 3b48170ec2..3060121dd8 100644 --- a/source/java/org/alfresco/web/bean/forums/ForumsDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/forums/ForumsDetailsDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class ForumsDetailsDialog extends BaseDetailsBean implements NavigationSupport { + private static final long serialVersionUID = 279622505413904654L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; private final static String MSG_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/forums/TopicDetailsDialog.java b/source/java/org/alfresco/web/bean/forums/TopicDetailsDialog.java index ccf6844484..371e9c674d 100644 --- a/source/java/org/alfresco/web/bean/forums/TopicDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/forums/TopicDetailsDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class TopicDetailsDialog extends BaseDetailsBean implements NavigationSupport { + private static final long serialVersionUID = -5879020614355773789L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; private final static String MSG_CLOSE = "close"; diff --git a/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java b/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java index fb2010ddd0..3565090d52 100644 --- a/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java +++ b/source/java/org/alfresco/web/bean/groups/AddUsersDialog.java @@ -61,6 +61,8 @@ import org.alfresco.web.ui.common.component.UIGenericPicker; */ public class AddUsersDialog extends BaseDialogBean { + private static final long serialVersionUID = 4893334797091942357L; + /** The id of the group to add users to */ protected String group; @@ -68,16 +70,16 @@ public class AddUsersDialog extends BaseDialogBean protected String groupName; /** The AuthorityService to be used by the bean */ - protected AuthorityService authService; + transient private AuthorityService authService; /** personService bean reference */ - protected PersonService personService; + transient private PersonService personService; /** selected users to be added to a group */ protected List usersForGroup; /** datamodel for table of users added to group */ - protected DataModel usersDataModel = null; + transient protected DataModel usersDataModel = null; // ------------------------------------------------------------------------------ // Dialog implementation @@ -100,7 +102,7 @@ public class AddUsersDialog extends BaseDialogBean // add each selected user to the current group in turn for (UserAuthorityDetails wrapper : this.usersForGroup) { - this.authService.addAuthority(this.group, wrapper.getAuthority()); + this.getAuthService().addAuthority(this.group, wrapper.getAuthority()); } return outcome; @@ -126,11 +128,37 @@ public class AddUsersDialog extends BaseDialogBean this.authService = authService; } + /** + * @return the authService + */ + protected AuthorityService getAuthService() + { + //check for null in cluster environment + if (authService == null) + { + authService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthorityService(); + } + return authService; + } + public void setPersonService(PersonService personService) { this.personService = personService; } + /** + * @return the personService + */ + protected PersonService getPersonService() + { + //check for null in cluster environment + if (personService == null) + { + personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService(); + } + return personService; + } + /** * @return Returns the usersDataModel. */ @@ -176,7 +204,7 @@ public class AddUsersDialog extends BaseDialogBean // build xpath to match available User/Person objects ServiceRegistry services = Repository.getServiceRegistry(context); - NodeRef peopleRef = personService.getPeopleContainer(); + NodeRef peopleRef = getPersonService().getPeopleContainer(); String xpath = "*[like(@" + NamespaceService.CONTENT_MODEL_PREFIX + ":" + "firstName, '%" + contains + "%', false)" + " or " + "like(@" + NamespaceService.CONTENT_MODEL_PREFIX + ":" + "lastName, '%" + contains + "%', false)]"; @@ -254,10 +282,10 @@ public class AddUsersDialog extends BaseDialogBean StringBuilder label = new StringBuilder(48); // build a display label showing the user person name - if (this.personService.personExists(authority) == true) + if (this.getPersonService().personExists(authority) == true) { // found a Person with a User authority - NodeRef ref = this.personService.getPerson(authority); + NodeRef ref = this.getPersonService().getPerson(authority); String firstName = (String)getNodeService().getProperty(ref, ContentModel.PROP_FIRSTNAME); String lastName = (String)getNodeService().getProperty(ref, ContentModel.PROP_LASTNAME); diff --git a/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java b/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java index 46b5474e6b..80568670e8 100644 --- a/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java +++ b/source/java/org/alfresco/web/bean/groups/CreateGroupDialog.java @@ -36,16 +36,19 @@ import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityType; import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; +import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; public class CreateGroupDialog extends BaseDialogBean { + private static final long serialVersionUID = -8074475974375860695L; + protected String parentGroup; protected String parentGroupName; protected String name; /** The AuthorityService to be used by the bean */ - protected AuthorityService authService; + transient private AuthorityService authService; private static final String MSG_ERR_EXISTS = "groups_err_exists"; private static final String MSG_ERR_NAME = "groups_err_group_name"; @@ -72,10 +75,10 @@ public class CreateGroupDialog extends BaseDialogBean protected String finishImpl(FacesContext context, String outcome) throws Exception { // create new Group using Authentication Service - String groupName = this.authService.getName(AuthorityType.GROUP, this.name); - if (this.authService.authorityExists(groupName) == false) + String groupName = this.getAuthService().getName(AuthorityType.GROUP, this.name); + if (this.getAuthService().authorityExists(groupName) == false) { - this.authService.createAuthority(AuthorityType.GROUP, this.parentGroup, this.name); + this.getAuthService().createAuthority(AuthorityType.GROUP, this.parentGroup, this.name); } else { @@ -127,6 +130,18 @@ public class CreateGroupDialog extends BaseDialogBean this.authService = authService; } + /** + * @return the authService + */ + protected AuthorityService getAuthService() + { + //check for null in cluster environment + if (authService == null) + { + authService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthorityService(); + } + return authService; + } // ------------------------------------------------------------------------------ // Helpers diff --git a/source/java/org/alfresco/web/bean/groups/DeleteGroupDialog.java b/source/java/org/alfresco/web/bean/groups/DeleteGroupDialog.java index da4fb51f22..b2dd97e3a2 100644 --- a/source/java/org/alfresco/web/bean/groups/DeleteGroupDialog.java +++ b/source/java/org/alfresco/web/bean/groups/DeleteGroupDialog.java @@ -32,9 +32,12 @@ import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.AuthorityType; import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; +import org.alfresco.web.bean.repository.Repository; public class DeleteGroupDialog extends BaseDialogBean { + private static final long serialVersionUID = -8743700617152460027L; + /** The group to be deleted */ protected String group = null; protected String groupName = null; @@ -43,7 +46,7 @@ public class DeleteGroupDialog extends BaseDialogBean protected int numItemsInGroup = 0; /** The AuthorityService to be used by the bean */ - protected AuthorityService authService; + transient private AuthorityService authService; private static final String MSG_DELETE = "delete"; private static final String MSG_DELETE_GROUP = "delete_group"; @@ -63,9 +66,9 @@ public class DeleteGroupDialog extends BaseDialogBean // calculate the number of items the givev group has if (this.group != null) { - numItemsInGroup = this.authService.getContainedAuthorities( + numItemsInGroup = this.getAuthService().getContainedAuthorities( AuthorityType.GROUP, this.group, false).size(); - numItemsInGroup += this.authService.getContainedAuthorities( + numItemsInGroup += this.getAuthService().getContainedAuthorities( AuthorityType.USER, this.group, false).size(); } } @@ -74,7 +77,7 @@ public class DeleteGroupDialog extends BaseDialogBean protected String finishImpl(FacesContext context, String outcome) throws Exception { // delete group using the Authentication Service - this.authService.deleteAuthority(this.group); + this.getAuthService().deleteAuthority(this.group); return outcome; } @@ -126,4 +129,17 @@ public class DeleteGroupDialog extends BaseDialogBean { this.authService = authService; } + + /** + * @return the authService + */ + protected AuthorityService getAuthService() + { + //check for null in cluster environment + if (authService == null) + { + authService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthorityService(); + } + return authService; + } } diff --git a/source/java/org/alfresco/web/bean/ml/AddTranslationWithoutContentDialog.java b/source/java/org/alfresco/web/bean/ml/AddTranslationWithoutContentDialog.java index 44d1b1b084..94f2b56d34 100644 --- a/source/java/org/alfresco/web/bean/ml/AddTranslationWithoutContentDialog.java +++ b/source/java/org/alfresco/web/bean/ml/AddTranslationWithoutContentDialog.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean.ml; -import java.io.IOException; -import java.io.ObjectInputStream; import java.util.Locale; import java.util.Map; @@ -36,10 +34,10 @@ import org.alfresco.i18n.I18NUtil; import org.alfresco.model.ContentModel; import org.alfresco.service.cmr.ml.MultilingualContentService; import org.alfresco.service.cmr.repository.NodeRef; -import org.alfresco.web.bean.users.UserPreferencesBean; import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.bean.repository.Repository; +import org.alfresco.web.bean.users.UserPreferencesBean; /** * Dialog bean to add a new translation without content. I means, a new node is created diff --git a/source/java/org/alfresco/web/bean/ml/EditMLContainerDialog.java b/source/java/org/alfresco/web/bean/ml/EditMLContainerDialog.java index 6d86dd933e..2a250dee7e 100644 --- a/source/java/org/alfresco/web/bean/ml/EditMLContainerDialog.java +++ b/source/java/org/alfresco/web/bean/ml/EditMLContainerDialog.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean.ml; -import java.io.IOException; -import java.io.ObjectInputStream; import java.io.Serializable; import java.util.Map; diff --git a/source/java/org/alfresco/web/bean/ml/MakeMultilingualDialog.java b/source/java/org/alfresco/web/bean/ml/MakeMultilingualDialog.java index cf99d1daee..97b15c3bbb 100644 --- a/source/java/org/alfresco/web/bean/ml/MakeMultilingualDialog.java +++ b/source/java/org/alfresco/web/bean/ml/MakeMultilingualDialog.java @@ -24,8 +24,6 @@ */ package org.alfresco.web.bean.ml; -import java.io.IOException; -import java.io.ObjectInputStream; import java.util.Locale; import java.util.Map; @@ -37,10 +35,10 @@ import org.alfresco.model.ContentModel; import org.alfresco.service.cmr.ml.MultilingualContentService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.web.app.servlet.FacesHelper; -import org.alfresco.web.bean.users.UserPreferencesBean; import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.bean.repository.Repository; +import org.alfresco.web.bean.users.UserPreferencesBean; /** * Dialog bean to make a node multilingual diff --git a/source/java/org/alfresco/web/bean/ml/MultilingualManageDialog.java b/source/java/org/alfresco/web/bean/ml/MultilingualManageDialog.java index a76c94a255..09e2d88da7 100644 --- a/source/java/org/alfresco/web/bean/ml/MultilingualManageDialog.java +++ b/source/java/org/alfresco/web/bean/ml/MultilingualManageDialog.java @@ -57,6 +57,8 @@ import org.alfresco.web.ui.common.component.UIPanel.ExpandedEvent; public class MultilingualManageDialog extends BaseDialogBean { + private static final long serialVersionUID = 4168804472130450812L; + private final String MSG_MANAGE_DETAILS_FOR="manage_multilingual_details_for"; private static final String MSG_CURRENT = "current"; private static final String ML_VERSION_PANEL_ID = "ml-versions-panel"; @@ -64,10 +66,10 @@ public class MultilingualManageDialog extends BaseDialogBean protected Map panels = new HashMap(4, 1.0f); - protected MultilingualContentService multilingualContentService; - protected ContentFilterLanguagesService contentFilterLanguagesService; - protected EditionService editionService; - protected VersionService versionService; + transient private MultilingualContentService multilingualContentService; + transient private ContentFilterLanguagesService contentFilterLanguagesService; + transient private EditionService editionService; + transient private VersionService versionService; private Node translationDocument; @@ -105,6 +107,19 @@ public class MultilingualManageDialog extends BaseDialogBean this.multilingualContentService = multilingualContentService; } + /** + * @return multilingualContentService + */ + protected MultilingualContentService getMultilingualContentService() + { + //check for null for cluster environment + if (multilingualContentService == null) + { + multilingualContentService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getMultilingualContentService(); + } + return multilingualContentService; + } + /** * @param contentFilterLanguagesService The Content Filter Languages Service to set. */ @@ -113,6 +128,19 @@ public class MultilingualManageDialog extends BaseDialogBean this.contentFilterLanguagesService = contentFilterLanguagesService; } + /** + * @return contentFilterLanguagesService + */ + protected ContentFilterLanguagesService getContentFilterLanguagesService() + { + //check for null for cluster environment + if (contentFilterLanguagesService == null) + { + contentFilterLanguagesService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getContentFilterLanguagesService(); + } + return contentFilterLanguagesService; + } + /** * @param EditionService The Edition Service to set. */ @@ -121,6 +149,19 @@ public class MultilingualManageDialog extends BaseDialogBean this.editionService = editionService; } + /** + * @return editionService + */ + protected EditionService getEditionService() + { + //check for null for cluster environment + if (editionService == null) + { + editionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getEditionService(); + } + return editionService; + } + /** * Sets the version service instance the bean should use * @@ -131,6 +172,19 @@ public class MultilingualManageDialog extends BaseDialogBean this.versionService = versionService; } + /** + * @return versionService + */ + protected VersionService getVersionService() + { + //check for null for cluster environment + if (versionService == null) + { + versionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getVersionService(); + } + return versionService; + } + /** * Before opening the ml container details, remeber the translation * from which the action comes. @@ -186,7 +240,7 @@ public class MultilingualManageDialog extends BaseDialogBean if (document.hasAspect(ContentModel.ASPECT_MULTILINGUAL_DOCUMENT) || ContentModel.TYPE_MULTILINGUAL_CONTAINER.equals(document.getType())) { - Map translationsMap = this.multilingualContentService.getTranslations(getDocument().getNodeRef()); + Map translationsMap = getMultilingualContentService().getTranslations(getDocument().getNodeRef()); if (translationsMap != null && translationsMap.size() > 0) { @@ -201,7 +255,7 @@ public class MultilingualManageDialog extends BaseDialogBean String lgge = (locale != null) ? // convert the locale into new ISO codes - contentFilterLanguagesService.convertToNewISOCode(locale.getLanguage()).toUpperCase() + getContentFilterLanguagesService().convertToNewISOCode(locale.getLanguage()).toUpperCase() : null; mapNode.put("name", getNodeService().getProperty(nodeRef, ContentModel.PROP_NAME)); @@ -365,7 +419,7 @@ public class MultilingualManageDialog extends BaseDialogBean { NodeRef nodeRef = getNode().getNodeRef(); - return new Node(multilingualContentService.getTranslationContainer(nodeRef)); + return new Node(getMultilingualContentService().getTranslationContainer(nodeRef)); } } @@ -382,7 +436,7 @@ public class MultilingualManageDialog extends BaseDialogBean NodeRef mlContainer = getDocumentMlContainer().getNodeRef(); // get all editions and sort them ascending according their version label - List orderedEditionList = new ArrayList(editionService.getEditions(mlContainer).getAllVersions()); + List orderedEditionList = new ArrayList(getEditionService().getEditions(mlContainer).getAllVersions()); Collections.sort(orderedEditionList, new VersionLabelComparator()); // the list of Single Edition Bean to return @@ -418,16 +472,16 @@ public class MultilingualManageDialog extends BaseDialogBean { // Get the translations because the current edition doesn't content link with its // translation in the version store. - Map translations = multilingualContentService.getTranslations(mlContainer); + Map translations = getMultilingualContentService().getTranslations(mlContainer); translationHistories = new ArrayList(translations.size()); for (NodeRef translation : translations.values()) { - translationHistories.add(versionService.getVersionHistory(translation)); + translationHistories.add(getVersionService().getVersionHistory(translation)); } } else { - translationHistories = editionService.getVersionedTranslations(edition); + translationHistories = getEditionService().getVersionedTranslations(edition); } // add each translation in the SingleEditionBean @@ -441,7 +495,7 @@ public class MultilingualManageDialog extends BaseDialogBean Version lastVersion = orderedVersions.get(0); // get the properties of the lastVersion - Map lastVersionProperties = editionService.getVersionedMetadatas(lastVersion); + Map lastVersionProperties = getEditionService().getVersionedMetadatas(lastVersion); Locale language = (Locale) lastVersionProperties.get(ContentModel.PROP_LOCALE); // create a map node representation of the last version @@ -453,7 +507,7 @@ public class MultilingualManageDialog extends BaseDialogBean clientLastVersion.put("versionAuthor", lastVersionProperties.get(ContentModel.PROP_AUTHOR)); clientLastVersion.put("versionCreatedDate", lastVersionProperties.get(ContentModel.PROP_CREATED)); clientLastVersion.put("versionModifiedDate", lastVersionProperties.get(ContentModel.PROP_MODIFIED)); - clientLastVersion.put("versionLanguage", this.contentFilterLanguagesService.convertToNewISOCode(language.getLanguage()).toUpperCase()); + clientLastVersion.put("versionLanguage", getContentFilterLanguagesService().convertToNewISOCode(language.getLanguage()).toUpperCase()); if(getNodeService().hasAspect(lastVersion.getFrozenStateNodeRef(), ContentModel.ASPECT_MULTILINGUAL_EMPTY_TRANSLATION)) { diff --git a/source/java/org/alfresco/web/bean/projects/CreateProjectDialog.java b/source/java/org/alfresco/web/bean/projects/CreateProjectDialog.java index 5562569f15..749ba597b3 100644 --- a/source/java/org/alfresco/web/bean/projects/CreateProjectDialog.java +++ b/source/java/org/alfresco/web/bean/projects/CreateProjectDialog.java @@ -46,6 +46,8 @@ public class CreateProjectDialog extends CreateSpaceWizard // ------------------------------------------------------------------------------ // Wizard implementation + private static final long serialVersionUID = -7140719588223514104L; + @Override public void init(Map parameters) { diff --git a/source/java/org/alfresco/web/bean/repository/DataDictionary.java b/source/java/org/alfresco/web/bean/repository/DataDictionary.java index d7536f8961..6fe536cc9f 100644 --- a/source/java/org/alfresco/web/bean/repository/DataDictionary.java +++ b/source/java/org/alfresco/web/bean/repository/DataDictionary.java @@ -24,10 +24,13 @@ */ package org.alfresco.web.bean.repository; +import java.io.Serializable; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import javax.faces.context.FacesContext; + import org.alfresco.service.cmr.dictionary.AssociationDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.PropertyDefinition; @@ -41,9 +44,11 @@ import org.alfresco.service.namespace.QName; * * @author gavinc */ -public final class DataDictionary +public final class DataDictionary implements Serializable { - private DictionaryService dictionaryService; + private static final long serialVersionUID = -4922351610793587592L; + + transient private DictionaryService dictionaryService; private Map types = new HashMap(11, 1.0f); /** @@ -56,6 +61,19 @@ public final class DataDictionary this.dictionaryService = dictionaryService; } + /** + *@return dictionaryService + */ + private DictionaryService getDictionaryService() + { + //check for null for cluster environment + if (dictionaryService == null) + { + dictionaryService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getDictionaryService(); + } + return dictionaryService; + } + /** * Returns the type definition for the type represented by the given qname * @@ -68,7 +86,7 @@ public final class DataDictionary if (typeDef == null) { - typeDef = this.dictionaryService.getType(type); + typeDef = getDictionaryService().getType(type); if (typeDef != null) { @@ -89,7 +107,7 @@ public final class DataDictionary */ public TypeDefinition getTypeDef(QName type, Collection optionalAspects) { - return this.dictionaryService.getAnonymousType(type, optionalAspects); + return getDictionaryService().getAnonymousType(type, optionalAspects); } /** diff --git a/source/java/org/alfresco/web/bean/repository/admin/RepoAdminConsoleBean.java b/source/java/org/alfresco/web/bean/repository/admin/RepoAdminConsoleBean.java index aa9318ddf9..e72c0d190d 100755 --- a/source/java/org/alfresco/web/bean/repository/admin/RepoAdminConsoleBean.java +++ b/source/java/org/alfresco/web/bean/repository/admin/RepoAdminConsoleBean.java @@ -25,24 +25,30 @@ package org.alfresco.web.bean.repository.admin; import java.io.PrintWriter; +import java.io.Serializable; import java.io.StringWriter; +import javax.faces.context.FacesContext; + import org.alfresco.repo.admin.RepoAdminInterpreter; +import org.alfresco.web.app.servlet.FacesHelper; /** * Backing bean to support the Repository Admin Console */ -public class RepoAdminConsoleBean +public class RepoAdminConsoleBean implements Serializable { - // command + private static final long serialVersionUID = -8131607149189675180L; + + // command private String command = ""; private String submittedCommand = "none"; private long duration = 0L; private String result = null; // supporting repository services - private RepoAdminInterpreter repoAdminInterpreter; + transient private RepoAdminInterpreter repoAdminInterpreter; /** @@ -53,6 +59,19 @@ public class RepoAdminConsoleBean this.repoAdminInterpreter = repoAdminInterpreter; } + /** + *@return repoAdminInterpreter + */ + private RepoAdminInterpreter getRepoAdminInterpreter() + { + //check for null for cluster environment + if (repoAdminInterpreter == null) + { + repoAdminInterpreter = (RepoAdminInterpreter) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "repoAdminInterpreter"); + } + return repoAdminInterpreter; + } + /** * Gets the command result * @@ -155,7 +174,7 @@ public class RepoAdminConsoleBean */ public String getCurrentUserName() { - return repoAdminInterpreter.getCurrentUserName(); + return getRepoAdminInterpreter().getCurrentUserName(); } /** @@ -168,7 +187,7 @@ public class RepoAdminConsoleBean try { long startms = System.currentTimeMillis(); - String result = repoAdminInterpreter.interpretCommand(command); + String result = getRepoAdminInterpreter().interpretCommand(command); setDuration(System.currentTimeMillis() - startms); setResult(result); setCommand(""); diff --git a/source/java/org/alfresco/web/bean/repository/tenant/TenantAdminConsoleBean.java b/source/java/org/alfresco/web/bean/repository/tenant/TenantAdminConsoleBean.java index b130026005..c4e834ba37 100755 --- a/source/java/org/alfresco/web/bean/repository/tenant/TenantAdminConsoleBean.java +++ b/source/java/org/alfresco/web/bean/repository/tenant/TenantAdminConsoleBean.java @@ -25,24 +25,30 @@ package org.alfresco.web.bean.repository.tenant; import java.io.PrintWriter; +import java.io.Serializable; import java.io.StringWriter; +import javax.faces.context.FacesContext; + import org.alfresco.repo.tenant.TenantInterpreter; +import org.alfresco.web.app.servlet.FacesHelper; /** * Backing bean to support the Tenant Admin Console */ -public class TenantAdminConsoleBean +public class TenantAdminConsoleBean implements Serializable { - // command + private static final long serialVersionUID = -9116623180660597894L; + + // command private String command = ""; private String submittedCommand = "none"; private long duration = 0L; private String result = null; // supporting repository services - private TenantInterpreter tenantInterpreter; + transient private TenantInterpreter tenantInterpreter; /** @@ -52,6 +58,19 @@ public class TenantAdminConsoleBean { this.tenantInterpreter = tenantInterpreter; } + + /** + * @return tenantInterpreter + */ + private TenantInterpreter geTenantInterpreter() + { + //check for null for cluster environment + if (tenantInterpreter == null) + { + tenantInterpreter = (TenantInterpreter) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "tenantInterpreter"); + } + return tenantInterpreter; + } /** * Gets the command result @@ -155,7 +174,7 @@ public class TenantAdminConsoleBean */ public String getCurrentUserName() { - return (tenantInterpreter != null) ? tenantInterpreter.getCurrentUserName() : null; + return (geTenantInterpreter() != null) ? geTenantInterpreter().getCurrentUserName() : null; } /** @@ -168,7 +187,7 @@ public class TenantAdminConsoleBean try { long startms = System.currentTimeMillis(); - String result = (tenantInterpreter != null) ? tenantInterpreter.interpretCommand(command) : "Tenant AdminConsole is not available - check that multi-tenancy is enabled !"; + String result = (geTenantInterpreter() != null) ? geTenantInterpreter().interpretCommand(command) : "Tenant AdminConsole is not available - check that multi-tenancy is enabled !"; setDuration(System.currentTimeMillis() - startms); setResult(result); setCommand(""); diff --git a/source/java/org/alfresco/web/bean/rules/DeleteRuleDialog.java b/source/java/org/alfresco/web/bean/rules/DeleteRuleDialog.java index ac375dc564..5e4e109264 100644 --- a/source/java/org/alfresco/web/bean/rules/DeleteRuleDialog.java +++ b/source/java/org/alfresco/web/bean/rules/DeleteRuleDialog.java @@ -27,7 +27,6 @@ package org.alfresco.web.bean.rules; import java.util.Map; import javax.faces.context.FacesContext; -import javax.faces.event.ActionEvent; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.rule.Rule; @@ -36,20 +35,22 @@ import org.alfresco.util.ParameterCheck; import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.repository.Node; +import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; -import org.alfresco.web.ui.common.component.UIActionLink; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class DeleteRuleDialog extends BaseDialogBean { + private static final long serialVersionUID = 2009345695752548885L; + private static final String MSG_ERROR_DELETE_RULE = "error_delete_rule"; private static final String MSG_DELETE_RULE = "delete_rule"; private static final String MSG_YES = "yes"; private static final String MSG_NO = "no"; - private Rule currentRule; - protected RuleService ruleService; + transient private Rule currentRule; + transient private RuleService ruleService; private static Log logger = LogFactory.getLog(DeleteRuleDialog.class); @Override @@ -65,7 +66,7 @@ public class DeleteRuleDialog extends BaseDialogBean if (logger.isDebugEnabled()) logger.debug("Rule clicked, it's nodeRef is: " + nodeRef); - this.currentRule = this.ruleService.getRule(new NodeRef(nodeRef)); + this.currentRule = getRuleService().getRule(new NodeRef(nodeRef)); } @@ -76,6 +77,19 @@ public class DeleteRuleDialog extends BaseDialogBean { this.ruleService = ruleService; } + + /** + * @return ruleService + */ + protected RuleService getRuleService() + { + //check for null for cluster environment + if (ruleService == null) + { + ruleService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getRuleService(); + } + return ruleService; + } /** * Returns the current rule @@ -104,7 +118,7 @@ public class DeleteRuleDialog extends BaseDialogBean { String ruleTitle = this.currentRule.getTitle(); - this.ruleService.removeRule(getSpace().getNodeRef(), this.currentRule); + getRuleService().removeRule(getSpace().getNodeRef(), this.currentRule); // clear the current rule this.currentRule = null; diff --git a/source/java/org/alfresco/web/bean/rules/RulesDialog.java b/source/java/org/alfresco/web/bean/rules/RulesDialog.java index 022c49cad4..c596dc0e5d 100644 --- a/source/java/org/alfresco/web/bean/rules/RulesDialog.java +++ b/source/java/org/alfresco/web/bean/rules/RulesDialog.java @@ -24,6 +24,7 @@ */ package org.alfresco.web.bean.rules; +import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Date; @@ -82,7 +83,7 @@ public class RulesDialog extends BaseDialogBean implements IContextListener, Fil transient private RuleService ruleService; private List rules; - private Rule currentRule; + transient private Rule currentRule; private UIRichList richList; transient private ActionService actionService; @@ -373,9 +374,11 @@ public class RulesDialog extends BaseDialogBean implements IContextListener, Fil * Inner class to wrap the Rule objects so we can expose a flag to indicate whether * the rule is a local or inherited rule */ - public static class WrappedRule + public static class WrappedRule implements Serializable { - private Rule rule; + private static final long serialVersionUID = -8887443730660109283L; + + transient private Rule rule; private boolean isLocal; private Date createdDate; private Date modifiedDate; diff --git a/source/java/org/alfresco/web/bean/search/EditSearchDialog.java b/source/java/org/alfresco/web/bean/search/EditSearchDialog.java index a688d38e43..9bc0b145f2 100644 --- a/source/java/org/alfresco/web/bean/search/EditSearchDialog.java +++ b/source/java/org/alfresco/web/bean/search/EditSearchDialog.java @@ -43,6 +43,8 @@ import org.alfresco.web.ui.common.Utils; public class EditSearchDialog extends AdvancedSearchDialog { + private static final long serialVersionUID = -8914819218709478527L; + private static final String MSG_ERROR_SAVE_SEARCH = "error_save_search"; @Override diff --git a/source/java/org/alfresco/web/bean/search/SaveSearchDialog.java b/source/java/org/alfresco/web/bean/search/SaveSearchDialog.java index 40e7758f99..b830b823e5 100644 --- a/source/java/org/alfresco/web/bean/search/SaveSearchDialog.java +++ b/source/java/org/alfresco/web/bean/search/SaveSearchDialog.java @@ -48,6 +48,8 @@ import org.alfresco.web.ui.common.Utils; public class SaveSearchDialog extends AdvancedSearchDialog { + private static final long serialVersionUID = 237262751601280456L; + private static final String MSG_ERROR_SAVE_SEARCH = "error_save_search"; @Override diff --git a/source/java/org/alfresco/web/bean/search/SearchContext.java b/source/java/org/alfresco/web/bean/search/SearchContext.java index 7a4915b101..3f9aea751b 100644 --- a/source/java/org/alfresco/web/bean/search/SearchContext.java +++ b/source/java/org/alfresco/web/bean/search/SearchContext.java @@ -1032,8 +1032,10 @@ public class SearchContext implements Serializable /** * Simple wrapper class for range query attribute properties */ - static class RangeProperties + static class RangeProperties implements Serializable { + private static final long serialVersionUID = 5627339191207625169L; + QName qname; String lower; String upper; diff --git a/source/java/org/alfresco/web/bean/search/SearchProperties.java b/source/java/org/alfresco/web/bean/search/SearchProperties.java index f3074f9d94..cc85a25ebb 100644 --- a/source/java/org/alfresco/web/bean/search/SearchProperties.java +++ b/source/java/org/alfresco/web/bean/search/SearchProperties.java @@ -24,6 +24,9 @@ */ package org.alfresco.web.bean.search; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -40,9 +43,11 @@ import org.alfresco.util.ExpiringValueCache; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.config.AdvancedSearchConfigElement; -public class SearchProperties +public class SearchProperties implements Serializable { - private static final String MODE_ALL = "all"; + private static final long serialVersionUID = 8583342903708013641L; + + private static final String MODE_ALL = "all"; private static final String LOOKIN_ALL = "all"; private static final String SAVED_SEARCHES_USER = "user"; @@ -62,7 +67,7 @@ public class SearchProperties /** * lookup of custom property QName string to DataTypeDefinition for the property */ - private Map customPropertyLookup = null; + transient private Map customPropertyLookup = null; /** content format list restricting searches */ private List contentFormats; @@ -98,7 +103,7 @@ public class SearchProperties private List categories = new ArrayList(2); /** datamodel for table of categories to search */ - private DataModel categoriesDataModel = new ListDataModel(); + transient private DataModel categoriesDataModel = new ListDataModel(); /** title attribute to search */ private String title = null; @@ -494,4 +499,11 @@ public class SearchProperties this.cachedSavedSearches = cachedSavedSearches; } + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException + { + in.defaultReadObject(); + + categoriesDataModel = new ListDataModel(); + } + } diff --git a/source/java/org/alfresco/web/bean/spaces/ApplyDocTemplateDialog.java b/source/java/org/alfresco/web/bean/spaces/ApplyDocTemplateDialog.java index 450a189326..50ad5e06cc 100644 --- a/source/java/org/alfresco/web/bean/spaces/ApplyDocTemplateDialog.java +++ b/source/java/org/alfresco/web/bean/spaces/ApplyDocTemplateDialog.java @@ -40,6 +40,8 @@ import org.alfresco.web.ui.common.Utils; public class ApplyDocTemplateDialog extends BaseDialogBean { + private static final long serialVersionUID = -9098279672434597354L; + protected String template; private static final String DIALOG_CLOSE = "dialog:close"; diff --git a/source/java/org/alfresco/web/bean/spaces/ApplyRssTemplateDialog.java b/source/java/org/alfresco/web/bean/spaces/ApplyRssTemplateDialog.java index e0f53c7377..606f190795 100644 --- a/source/java/org/alfresco/web/bean/spaces/ApplyRssTemplateDialog.java +++ b/source/java/org/alfresco/web/bean/spaces/ApplyRssTemplateDialog.java @@ -41,6 +41,8 @@ import org.alfresco.web.ui.common.Utils; public class ApplyRssTemplateDialog extends BaseDialogBean { + private static final long serialVersionUID = 9207265799149337182L; + private static final String DIALOG_CLOSE = "dialog:close"; private static final String MSG_APPLY_RSS_FEED = "apply_rss_feed"; diff --git a/source/java/org/alfresco/web/bean/spaces/ApplySpaceTemplateDialog.java b/source/java/org/alfresco/web/bean/spaces/ApplySpaceTemplateDialog.java index 6f43450d3e..b4e67d718e 100644 --- a/source/java/org/alfresco/web/bean/spaces/ApplySpaceTemplateDialog.java +++ b/source/java/org/alfresco/web/bean/spaces/ApplySpaceTemplateDialog.java @@ -41,6 +41,8 @@ import org.alfresco.web.ui.common.Utils; public class ApplySpaceTemplateDialog extends BaseDialogBean { + private static final long serialVersionUID = -3019234033026890265L; + protected String template; private static final String DIALOG_CLOSE = "dialog:close"; diff --git a/source/java/org/alfresco/web/bean/spaces/EditSimpleWorkflowDialog.java b/source/java/org/alfresco/web/bean/spaces/EditSimpleWorkflowDialog.java index 0c0c9c0560..d5cd7ac91b 100644 --- a/source/java/org/alfresco/web/bean/spaces/EditSimpleWorkflowDialog.java +++ b/source/java/org/alfresco/web/bean/spaces/EditSimpleWorkflowDialog.java @@ -45,6 +45,8 @@ import org.alfresco.web.ui.common.Utils; public class EditSimpleWorkflowDialog extends BaseDialogBean { + private static final long serialVersionUID = 5997327694341960824L; + protected Map workflowProperties; private static final String MSG_ERROR_UPDATE_SIMPLEWORKFLOW = "error_update_simpleworkflow"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteAllItemsDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteAllItemsDialog.java index 2844137ad7..fdacb1d38c 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteAllItemsDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteAllItemsDialog.java @@ -34,6 +34,8 @@ import org.alfresco.web.ui.common.Utils; public class TrashcanDeleteAllItemsDialog extends TrashcanDialog { + private static final long serialVersionUID = 2537803727179629546L; + private static final String MSG_YES = "yes"; private static final String MSG_NO = "no"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteItemDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteItemDialog.java index d4d0771297..6a13561b9c 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteItemDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteItemDialog.java @@ -36,6 +36,8 @@ import org.alfresco.web.ui.common.Utils; public class TrashcanDeleteItemDialog extends TrashcanDialog { + private static final long serialVersionUID = 519967126630923155L; + private static final String RICHLIST_ID = "trashcan-list"; private static final String RICHLIST_MSG_ID = "trashcan" + ':' + RICHLIST_ID; private static final String MSG_YES = "yes"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteListedItemsDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteListedItemsDialog.java index 9cc4f320c9..ab1104fef7 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteListedItemsDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanDeleteListedItemsDialog.java @@ -38,6 +38,8 @@ import org.alfresco.web.ui.common.Utils; public class TrashcanDeleteListedItemsDialog extends TrashcanDialog { + private static final long serialVersionUID = 5576836588148974609L; + private static final String MSG_YES = "yes"; private static final String MSG_NO = "no"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanDialogProperty.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanDialogProperty.java index 9c2dc4c56d..31a2efd95b 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanDialogProperty.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanDialogProperty.java @@ -24,23 +24,27 @@ */ package org.alfresco.web.bean.trashcan; +import java.io.Serializable; import java.util.Collections; import java.util.List; +import javax.faces.context.FacesContext; + import org.alfresco.repo.node.archive.NodeArchiveService; - import org.alfresco.service.cmr.repository.NodeRef; - +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.ui.common.component.data.UIRichList; -public class TrashcanDialogProperty +public class TrashcanDialogProperty implements Serializable { + private static final long serialVersionUID = -8007742798807270570L; + private static final String FILTER_DATE_ALL = "all"; private static final String FILTER_USER_ALL = "all"; /** NodeArchiveService bean reference */ - protected NodeArchiveService nodeArchiveService; + transient private NodeArchiveService nodeArchiveService; /** Component reference for Deleted Items RichList control */ protected UIRichList itemsRichList; @@ -294,8 +298,16 @@ public class TrashcanDialogProperty this.inProgress = inProgress; } + /** + *@return nodeArchiveService + */ public NodeArchiveService getNodeArchiveService() { + //check for null for cluster environment + if (nodeArchiveService == null) + { + nodeArchiveService = (NodeArchiveService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "nodeArchiveService"); + } return nodeArchiveService; } diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanItemDetailsDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanItemDetailsDialog.java index 612ab73243..5ccfee9d5c 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanItemDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanItemDetailsDialog.java @@ -29,13 +29,16 @@ import javax.faces.context.FacesContext; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.web.app.Application; import org.alfresco.web.bean.repository.Node; +import org.alfresco.web.bean.repository.Repository; public class TrashcanItemDetailsDialog extends TrashcanDialog { + private static final long serialVersionUID = 1767515883530860417L; + private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_CLOSE = "close"; - protected PermissionService permissionService; + transient private PermissionService permissionService; @Override protected String finishImpl(FacesContext context, String outcome) throws Exception @@ -71,4 +74,17 @@ public class TrashcanItemDetailsDialog extends TrashcanDialog { this.permissionService = permissionService; } + + /** + *@return permissionService + */ + protected PermissionService getPermissionService() + { + //check for null for cluster environment + if (permissionService == null) + { + permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService(); + } + return permissionService; + } } diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverAllItemsDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverAllItemsDialog.java index ff72797b5a..e6e2c1cf66 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverAllItemsDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverAllItemsDialog.java @@ -35,6 +35,8 @@ import org.alfresco.web.bean.repository.Repository; public class TrashcanRecoverAllItemsDialog extends TrashcanDialog { + private static final long serialVersionUID = -1869377322722271833L; + private static final String OUTCOME_RECOVERY_REPORT = "dialog:recoveryReport"; private static final String MSG_NO = "no"; private static final String MSG_YES = "yes"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverItemDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverItemDialog.java index 7b4e7645ed..ef765729cf 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverItemDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverItemDialog.java @@ -35,6 +35,8 @@ import org.alfresco.web.bean.repository.Node; public class TrashcanRecoverItemDialog extends TrashcanDialog { + private static final long serialVersionUID = -8237457079397611071L; + private static final String RICHLIST_ID = "trashcan-list"; private static final String RICHLIST_MSG_ID = "trashcan" + ':' + RICHLIST_ID; private static final String MSG_RECOVERED_ITEM_SUCCESS = "recovered_item_success"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverListedItemsDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverListedItemsDialog.java index f80b000d08..686d6274d6 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverListedItemsDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoverListedItemsDialog.java @@ -36,6 +36,8 @@ import org.alfresco.web.bean.repository.Node; public class TrashcanRecoverListedItemsDialog extends TrashcanDialog { + private static final long serialVersionUID = 5500454626559426051L; + private static final String OUTCOME_RECOVERY_REPORT = "dialog:recoveryReport"; private static final String MSG_NO = "no"; private static final String MSG_YES = "yes"; diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoveryReportDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoveryReportDialog.java index 5154c91f45..aa7f8c97a1 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoveryReportDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanRecoveryReportDialog.java @@ -31,6 +31,8 @@ import org.alfresco.web.app.Application; public class TrashcanRecoveryReportDialog extends TrashcanDialog { + private static final long serialVersionUID = -3381444990908748991L; + private final static String MSG_CLOSE = "close"; @Override diff --git a/source/java/org/alfresco/web/bean/users/ChangeMyPasswordDialog.java b/source/java/org/alfresco/web/bean/users/ChangeMyPasswordDialog.java index 1bdc5c7499..bccf09fb7b 100644 --- a/source/java/org/alfresco/web/bean/users/ChangeMyPasswordDialog.java +++ b/source/java/org/alfresco/web/bean/users/ChangeMyPasswordDialog.java @@ -36,6 +36,8 @@ import org.alfresco.web.ui.common.Utils; public class ChangeMyPasswordDialog extends UsersDialog { + private static final long serialVersionUID = 1965846039555088108L; + private static final String MSG_FINISH_BUTTON = "finish_button"; @Override diff --git a/source/java/org/alfresco/web/bean/users/ChangePasswordDialog.java b/source/java/org/alfresco/web/bean/users/ChangePasswordDialog.java index d598262d7a..28f427c133 100644 --- a/source/java/org/alfresco/web/bean/users/ChangePasswordDialog.java +++ b/source/java/org/alfresco/web/bean/users/ChangePasswordDialog.java @@ -36,6 +36,8 @@ import org.alfresco.web.ui.common.Utils; public class ChangePasswordDialog extends UsersDialog { + private static final long serialVersionUID = -1570967895811499123L; + private static final String MSG_FINISH_BUTTON = "finish_button"; @Override diff --git a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java index 8b4c92c630..a50856ea86 100644 --- a/source/java/org/alfresco/web/bean/users/CreateUserWizard.java +++ b/source/java/org/alfresco/web/bean/users/CreateUserWizard.java @@ -54,6 +54,7 @@ import org.alfresco.service.namespace.QName; import org.alfresco.util.Pair; import org.alfresco.web.app.Application; import org.alfresco.web.app.context.UIContextService; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.spaces.CreateSpaceWizard; import org.alfresco.web.bean.wizard.BaseWizardBean; @@ -66,6 +67,8 @@ import org.apache.log4j.Logger; */ public class CreateUserWizard extends BaseWizardBean { + private static final long serialVersionUID = 8008464794715380019L; + private static Logger logger = Logger.getLogger(CreateUserWizard.class); protected static final String ERROR = "error_person"; @@ -93,22 +96,22 @@ public class CreateUserWizard extends BaseWizardBean protected String sizeQuotaUnits = null; /** AuthenticationService bean reference */ - private AuthenticationService authenticationService; + transient private AuthenticationService authenticationService; /** PersonService bean reference */ - private PersonService personService; + transient private PersonService personService; /** TenantService bean reference */ - private TenantService tenantService; + transient private TenantService tenantService; /** PermissionService bean reference */ - private PermissionService permissionService; + transient private PermissionService permissionService; /** OwnableService bean reference */ - private OwnableService ownableService; + transient private OwnableService ownableService; /** ContentUsageService bean reference */ - private ContentUsageService contentUsageService; + transient private ContentUsageService contentUsageService; /** ref to the company home space folder */ @@ -125,6 +128,22 @@ public class CreateUserWizard extends BaseWizardBean this.authenticationService = authenticationService; } + + /** + * @return authenticationService + */ + private AuthenticationService getAuthenticationService() + { + //check for null for cluster environment + if (authenticationService == null) + { + authenticationService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthenticationService(); + } + return authenticationService; + } + + + /** * @param personService The person service. */ @@ -133,12 +152,40 @@ public class CreateUserWizard extends BaseWizardBean this.personService = personService; } + + /** + * @return personService + */ + private PersonService getPersonService() + { + //check for null for cluster environment + if (personService == null) + { + personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService(); + } + return personService; + } + + /** * @param tenantService The tenantService to set. */ public void setTenantService(TenantService tenantService) { - this.tenantService = tenantService; + this.tenantService = tenantService; + } + + /** + * @return tenantService + */ + private TenantService geTenantService() + { + //check for null for cluster environment + if(tenantService == null) + { + tenantService = (TenantService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "tenantService"); + } + return tenantService; } /** @@ -148,6 +195,19 @@ public class CreateUserWizard extends BaseWizardBean { this.permissionService = permissionService; } + + /** + * @return permissionService + */ + private PermissionService getPermissionService() + { + //check for null for cluster environment + if (permissionService == null) + { + permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService(); + } + return permissionService; + } /** * @param ownableService The ownableService to set. @@ -156,6 +216,19 @@ public class CreateUserWizard extends BaseWizardBean { this.ownableService = ownableService; } + + /** + * @return ownableService + */ + private OwnableService getOwnableService() + { + //check for null for cluster environment + if (ownableService == null) + { + ownableService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getOwnableService(); + } + return ownableService; + } /** * @param contentUsageService The contentUsageService to set. @@ -164,6 +237,19 @@ public class CreateUserWizard extends BaseWizardBean { this.contentUsageService = contentUsageService; } + + /** + * @return contentUsageService + */ + private ContentUsageService getContentUsageService() + { + //check for null for cluster environment + if (contentUsageService == null) + { + contentUsageService = (ContentUsageService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "ContentUsageService"); + } + return contentUsageService; + } /** * Initialises the wizard @@ -198,7 +284,7 @@ public class CreateUserWizard extends BaseWizardBean */ public String getSummary() { - if (tenantService.isEnabled()) + if (geTenantService().isEnabled()) { try { @@ -667,22 +753,22 @@ public class CreateUserWizard extends BaseWizardBean { // Admin Authority has full permissions by default (automatic - set in the permission config) // give full permissions to the new user - this.permissionService.setPermission(homeSpaceRef, this.userName, permissionService.getAllPermission(), true); + getPermissionService().setPermission(homeSpaceRef, this.userName, getPermissionService().getAllPermission(), true); // by default other users will only have GUEST access to the space contents // or whatever is configured as the default in the web-client-xml config String permission = getDefaultPermission(); if (permission != null && permission.length() != 0) { - this.permissionService.setPermission(homeSpaceRef, permissionService.getAllAuthorities(), permission, true); + getPermissionService().setPermission(homeSpaceRef, getPermissionService().getAllAuthorities(), permission, true); } // the new user is the OWNER of their own space and always has full permissions - this.ownableService.setOwner(homeSpaceRef, this.userName); - this.permissionService.setPermission(homeSpaceRef, permissionService.getOwnerAuthority(), permissionService.getAllPermission(), true); + getOwnableService().setOwner(homeSpaceRef, this.userName); + getPermissionService().setPermission(homeSpaceRef, getPermissionService().getOwnerAuthority(), getPermissionService().getAllPermission(), true); // now detach (if we did this first we could not set any permissions!) - this.permissionService.setInheritParentPermissions(homeSpaceRef, false); + getPermissionService().setInheritParentPermissions(homeSpaceRef, false); } /** @@ -707,7 +793,7 @@ public class CreateUserWizard extends BaseWizardBean { if (this.password.equals(this.confirm)) { - if (tenantService.isEnabled()) + if (geTenantService().isEnabled()) { checkTenantUserName(); } @@ -744,16 +830,16 @@ public class CreateUserWizard extends BaseWizardBean props.put(ContentModel.PROP_PRESENCEUSERNAME, this.presenceUsername); // create the node to represent the Person - NodeRef newPerson = this.personService.createPerson(props); + NodeRef newPerson = getPersonService().createPerson(props); // ensure the user can access their own Person object - this.permissionService.setPermission(newPerson, this.userName, permissionService.getAllPermission(), true); + getPermissionService().setPermission(newPerson, this.userName, getPermissionService().getAllPermission(), true); if (logger.isDebugEnabled()) logger.debug("Created Person node for username: " + this.userName); // create the ACEGI Authentication instance for the new user - this.authenticationService.createAuthentication(this.userName, this.password.toCharArray()); + getAuthenticationService().createAuthentication(this.userName, this.password.toCharArray()); if (logger.isDebugEnabled()) logger.debug("Created User Authentication instance for username: " + this.userName); @@ -813,7 +899,7 @@ public class CreateUserWizard extends BaseWizardBean } } - this.contentUsageService.setUserQuota(userName, (quota == null ? -1 : quota)); + getContentUsageService().setUserQuota(userName, (quota == null ? -1 : quota)); } protected long convertToBytes(long size, String units) @@ -863,20 +949,20 @@ public class CreateUserWizard extends BaseWizardBean protected void checkTenantUserName() { - String currentDomain = tenantService.getCurrentUserDomain(); + String currentDomain = geTenantService().getCurrentUserDomain(); if (! currentDomain.equals(TenantService.DEFAULT_DOMAIN)) { - if (! tenantService.isTenantUser(this.userName)) + if (! geTenantService().isTenantUser(this.userName)) { // force domain onto the end of the username - this.userName = tenantService.getDomainUser(this.userName, currentDomain); + this.userName = geTenantService().getDomainUser(this.userName, currentDomain); logger.warn("Added domain to username: " + this.userName); } else { try { - tenantService.checkDomainUser(this.userName); + geTenantService().checkDomainUser(this.userName); } catch (RuntimeException re) { diff --git a/source/java/org/alfresco/web/bean/users/DeleteUserDialog.java b/source/java/org/alfresco/web/bean/users/DeleteUserDialog.java index ba5dcbb656..d688314ce0 100644 --- a/source/java/org/alfresco/web/bean/users/DeleteUserDialog.java +++ b/source/java/org/alfresco/web/bean/users/DeleteUserDialog.java @@ -52,207 +52,260 @@ import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.component.UIActionLink; import org.apache.log4j.Logger; -public class DeleteUserDialog extends BaseDialogBean { - - private static Logger logger = Logger.getLogger(DeleteUserDialog.class); +public class DeleteUserDialog extends BaseDialogBean +{ - private static final String ERROR_DELETE = "error_delete_user"; + private static final long serialVersionUID = -4977064287365766306L; - private static final String ERROR_USER_DELETE = "error_delete_user_object"; + private static Logger logger = Logger.getLogger(DeleteUserDialog.class); - private static final String BUTTON_YES = "yes"; + private static final String ERROR_DELETE = "error_delete_user"; - private static final String MSG_TITLE_DELETE_USER = "title_delete_user"; + private static final String ERROR_USER_DELETE = "error_delete_user_object"; - private static final String BUTTON_NO = "no"; + private static final String BUTTON_YES = "yes"; - private AuthenticationService authenticationService; + private static final String MSG_TITLE_DELETE_USER = "title_delete_user"; - private List users = Collections. emptyList(); + private static final String BUTTON_NO = "no"; - private PersonService personService; + transient private AuthenticationService authenticationService; - private Node person = null; + private List users = Collections. emptyList(); - private String searchCriteria = null; + transient private PersonService personService; - @Override - public boolean getFinishButtonDisabled() { - return false; - } + private Node person = null; - @Override - protected String finishImpl(FacesContext context, String outcome) throws Exception { - try { - String userName = (String) getPerson().getProperties().get("userName"); + private String searchCriteria = null; - // we only delete the user auth if Alfresco is managing the authentication - Map session = context.getExternalContext().getSessionMap(); - if (session.get(LoginBean.LOGIN_EXTERNAL_AUTH) == null) { - // delete the User authentication - try { - authenticationService.deleteAuthentication(userName); - } catch (AuthenticationException authErr) { - Utils.addErrorMessage(Application.getMessage(context, ERROR_USER_DELETE)); - } + @Override + public boolean getFinishButtonDisabled() + { + return false; + } + + @Override + protected String finishImpl(FacesContext context, String outcome) throws Exception + { + try + { + String userName = (String) getPerson().getProperties().get("userName"); + + // we only delete the user auth if Alfresco is managing the authentication + Map session = context.getExternalContext().getSessionMap(); + if (session.get(LoginBean.LOGIN_EXTERNAL_AUTH) == null) + { + // delete the User authentication + try + { + getAuthenticationService().deleteAuthentication(userName); } - - // delete the associated Person - this.personService.deletePerson(userName); - - // re-do the search to refresh the list - search(); - } catch (Throwable e) { - // rollback the transaction - Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, ERROR_DELETE), e.getMessage()), - e); - } - - return outcome; - } - - public String search() { - - if (this.searchCriteria == null || this.searchCriteria.length() == 0) { - this.users = Collections. emptyList(); - } else { - FacesContext context = FacesContext.getCurrentInstance(); - UserTransaction tx = null; - - try { - tx = Repository.getUserTransaction(context, true); - tx.begin(); - - // define the query to find people by their first or last name - String search = ISO9075.encode(this.searchCriteria); - String query = "( TYPE:\"{http://www.alfresco.org/model/content/1.0}person\") AND " - + "((@\\{http\\://www.alfresco.org/model/content/1.0\\}firstName:" + search - + "*) OR (@\\{http\\://www.alfresco.org/model/content/1.0\\}lastName:" + search - + "*) OR (@\\{http\\://www.alfresco.org/model/content/1.0\\}userName:" + search + "*)))"; - - if (logger.isDebugEnabled()) - logger.debug("Query: " + query); - - // define the search parameters - SearchParameters params = new SearchParameters(); - params.setLanguage(SearchService.LANGUAGE_LUCENE); - params.addStore(Repository.getStoreRef()); - params.setQuery(query); - - List people = this.getSearchService().query(params).getNodeRefs(); - - if (logger.isDebugEnabled()) - logger.debug("Found " + people.size() + " users"); - - this.users = new ArrayList(people.size()); - - for (NodeRef nodeRef : people) { - // create our Node representation - MapNode node = new MapNode(nodeRef); - - // set data binding properties - // this will also force initialisation of the props now during the UserTransaction - // it is much better for performance to do this now rather than during page bind - Map props = node.getProperties(); - props.put("fullName", ((String) props.get("firstName")) + ' ' + ((String) props.get("lastName"))); - NodeRef homeFolderNodeRef = (NodeRef) props.get("homeFolder"); - if (homeFolderNodeRef != null) { - props.put("homeSpace", homeFolderNodeRef); - } - - this.users.add(node); - } - - // commit the transaction - tx.commit(); - } catch (InvalidNodeRefException refErr) { - Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, Repository.ERROR_NODEREF), - new Object[] { "root" })); - this.users = Collections. emptyList(); - try { - if (tx != null) { - tx.rollback(); - } - } catch (Exception tex) { - } - } catch (Exception err) { - Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, Repository.ERROR_GENERIC), - err.getMessage()), err); - this.users = Collections. emptyList(); - try { - if (tx != null) { - tx.rollback(); - } - } catch (Exception tex) { - } + catch (AuthenticationException authErr) + { + Utils.addErrorMessage(Application.getMessage(context, ERROR_USER_DELETE)); } - } + } - // return null to stay on the same page - return null; - } + // delete the associated Person + getPersonService().deletePerson(userName); + + // re-do the search to refresh the list + search(); + } + catch (Throwable e) + { + // rollback the transaction + Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, ERROR_DELETE), e.getMessage()), e); + } + + return outcome; + } + + public String search() + { + + if (this.searchCriteria == null || this.searchCriteria.length() == 0) + { + this.users = Collections. emptyList(); + } + else + { + FacesContext context = FacesContext.getCurrentInstance(); + UserTransaction tx = null; + + try + { + tx = Repository.getUserTransaction(context, true); + tx.begin(); + + // define the query to find people by their first or last name + String search = ISO9075.encode(this.searchCriteria); + String query = "( TYPE:\"{http://www.alfresco.org/model/content/1.0}person\") AND " + "((@\\{http\\://www.alfresco.org/model/content/1.0\\}firstName:" + search + + "*) OR (@\\{http\\://www.alfresco.org/model/content/1.0\\}lastName:" + search + "*) OR (@\\{http\\://www.alfresco.org/model/content/1.0\\}userName:" + search + + "*)))"; - public void setupUserAction(ActionEvent event) { - UIActionLink link = (UIActionLink) event.getComponent(); - Map params = link.getParameterMap(); - String id = params.get("id"); - if (id != null && id.length() != 0) { if (logger.isDebugEnabled()) - logger.debug("Setup for action, setting current Person to: " + id); + logger.debug("Query: " + query); - try { - // create the node ref, then our node representation - NodeRef ref = new NodeRef(Repository.getStoreRef(), id); - Node node = new Node(ref); + // define the search parameters + SearchParameters params = new SearchParameters(); + params.setLanguage(SearchService.LANGUAGE_LUCENE); + params.addStore(Repository.getStoreRef()); + params.setQuery(query); - // remember the Person node - setPerson(node); - } catch (InvalidNodeRefException refErr) { - Utils.addErrorMessage(MessageFormat.format(Application.getMessage(FacesContext.getCurrentInstance(), - Repository.ERROR_NODEREF), new Object[] { id })); + List people = this.getSearchService().query(params).getNodeRefs(); + + if (logger.isDebugEnabled()) + logger.debug("Found " + people.size() + " users"); + + this.users = new ArrayList(people.size()); + + for (NodeRef nodeRef : people) + { + // create our Node representation + MapNode node = new MapNode(nodeRef); + + // set data binding properties + // this will also force initialisation of the props now during the UserTransaction + // it is much better for performance to do this now rather than during page bind + Map props = node.getProperties(); + props.put("fullName", ((String) props.get("firstName")) + ' ' + ((String) props.get("lastName"))); + NodeRef homeFolderNodeRef = (NodeRef) props.get("homeFolder"); + if (homeFolderNodeRef != null) + { + props.put("homeSpace", homeFolderNodeRef); + } + + this.users.add(node); } - } else { - setPerson(null); - } - } - public AuthenticationService getAuthenticationService() { - return authenticationService; - } + // commit the transaction + tx.commit(); + } + catch (InvalidNodeRefException refErr) + { + Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, Repository.ERROR_NODEREF), new Object[] { "root" })); + this.users = Collections. emptyList(); + try + { + if (tx != null) + { + tx.rollback(); + } + } + catch (Exception tex) + { + } + } + catch (Exception err) + { + Utils.addErrorMessage(MessageFormat.format(Application.getMessage(context, Repository.ERROR_GENERIC), err.getMessage()), err); + this.users = Collections. emptyList(); + try + { + if (tx != null) + { + tx.rollback(); + } + } + catch (Exception tex) + { + } + } + } - public void setAuthenticationService(AuthenticationService authenticationService) { - this.authenticationService = authenticationService; - } + // return null to stay on the same page + return null; + } - public PersonService getPersonService() { - return personService; - } + public void setupUserAction(ActionEvent event) + { + UIActionLink link = (UIActionLink) event.getComponent(); + Map params = link.getParameterMap(); + String id = params.get("id"); + if (id != null && id.length() != 0) + { + if (logger.isDebugEnabled()) + logger.debug("Setup for action, setting current Person to: " + id); - public void setPersonService(PersonService personService) { - this.personService = personService; - } + try + { + // create the node ref, then our node representation + NodeRef ref = new NodeRef(Repository.getStoreRef(), id); + Node node = new Node(ref); - public Node getPerson() { - return person; - } + // remember the Person node + setPerson(node); + } + catch (InvalidNodeRefException refErr) + { + Utils.addErrorMessage(MessageFormat.format(Application.getMessage(FacesContext.getCurrentInstance(), Repository.ERROR_NODEREF), new Object[] { id })); + } + } + else + { + setPerson(null); + } + } - public void setPerson(Node person) { - this.person = person; - } + /** + *@return authenticationService + */ + public AuthenticationService getAuthenticationService() + { + //check for null for cluster environment + if (authenticationService == null) + { + authenticationService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthenticationService(); + } + return authenticationService; + } - @Override - public String getCancelButtonLabel() { - return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_NO); - } + public void setAuthenticationService(AuthenticationService authenticationService) + { + this.authenticationService = authenticationService; + } - @Override - public String getFinishButtonLabel() { - return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_YES); - } + public PersonService getPersonService() + { + if (personService == null) + { + personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService(); + } + return personService; + } - @Override - public String getContainerTitle() { - return Application.getMessage(FacesContext.getCurrentInstance(), MSG_TITLE_DELETE_USER) + " '" - + getPerson().getProperties().get("userName") + "'"; - } + public void setPersonService(PersonService personService) + { + this.personService = personService; + } + + public Node getPerson() + { + return person; + } + + public void setPerson(Node person) + { + this.person = person; + } + + @Override + public String getCancelButtonLabel() + { + return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_NO); + } + + @Override + public String getFinishButtonLabel() + { + return Application.getMessage(FacesContext.getCurrentInstance(), BUTTON_YES); + } + + @Override + public String getContainerTitle() + { + return Application.getMessage(FacesContext.getCurrentInstance(), MSG_TITLE_DELETE_USER) + " '" + getPerson().getProperties().get("userName") + "'"; + } } diff --git a/source/java/org/alfresco/web/bean/users/EditContentUserRolesDialog.java b/source/java/org/alfresco/web/bean/users/EditContentUserRolesDialog.java index 2975e1a72e..2a15e93eda 100644 --- a/source/java/org/alfresco/web/bean/users/EditContentUserRolesDialog.java +++ b/source/java/org/alfresco/web/bean/users/EditContentUserRolesDialog.java @@ -32,6 +32,8 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; public class EditContentUserRolesDialog extends BaseDialogBean { + private static final long serialVersionUID = -1690749440382024258L; + ContentUsersBean contentUsersBean; @Override public boolean getFinishButtonDisabled() diff --git a/source/java/org/alfresco/web/bean/users/EditFileDialog.java b/source/java/org/alfresco/web/bean/users/EditFileDialog.java index fabd874fe8..7628f50e7e 100644 --- a/source/java/org/alfresco/web/bean/users/EditFileDialog.java +++ b/source/java/org/alfresco/web/bean/users/EditFileDialog.java @@ -31,7 +31,9 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; public class EditFileDialog extends BaseDialogBean { - @Override + private static final long serialVersionUID = -4237199472024493269L; + + @Override protected String finishImpl(FacesContext context, String outcome) throws Exception { // TODO Auto-generated method stub diff --git a/source/java/org/alfresco/web/bean/users/EditUserDetailsDialog.java b/source/java/org/alfresco/web/bean/users/EditUserDetailsDialog.java index 6f83d39e77..23f54f15c1 100644 --- a/source/java/org/alfresco/web/bean/users/EditUserDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/users/EditUserDetailsDialog.java @@ -39,7 +39,6 @@ import org.alfresco.service.cmr.repository.AssociationRef; import org.alfresco.service.cmr.repository.ContentReader; import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.ContentWriter; -import org.alfresco.service.cmr.repository.MimetypeService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; import org.alfresco.web.app.Application; @@ -54,6 +53,8 @@ import org.alfresco.web.ui.common.Utils; */ public class EditUserDetailsDialog extends BaseDialogBean { + private static final long serialVersionUID = 8663254425262484L; + private Node person; protected UsersBeanProperties properties; private NodeRef photoRef; diff --git a/source/java/org/alfresco/web/bean/users/EditUserRolesDialog.java b/source/java/org/alfresco/web/bean/users/EditUserRolesDialog.java index c999623a1e..520ad39215 100644 --- a/source/java/org/alfresco/web/bean/users/EditUserRolesDialog.java +++ b/source/java/org/alfresco/web/bean/users/EditUserRolesDialog.java @@ -33,6 +33,8 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; public class EditUserRolesDialog extends BaseDialogBean { + private static final long serialVersionUID = 614541023231055676L; + private static final String MSG_MODIFY_USER_ROLE = "modify_user_roles"; SpaceUsersBean spaceUsersBean; diff --git a/source/java/org/alfresco/web/bean/users/EditUserWizard.java b/source/java/org/alfresco/web/bean/users/EditUserWizard.java index 827d9297d2..05c882185f 100644 --- a/source/java/org/alfresco/web/bean/users/EditUserWizard.java +++ b/source/java/org/alfresco/web/bean/users/EditUserWizard.java @@ -46,6 +46,8 @@ import org.apache.log4j.Logger; */ public class EditUserWizard extends CreateUserWizard { + private static final long serialVersionUID = 7529989488476324511L; + private static Logger logger = Logger.getLogger(EditUserWizard.class); protected UsersBeanProperties properties; diff --git a/source/java/org/alfresco/web/bean/users/RemoveContentUserDialog.java b/source/java/org/alfresco/web/bean/users/RemoveContentUserDialog.java index da30cb6833..fd3f6de402 100644 --- a/source/java/org/alfresco/web/bean/users/RemoveContentUserDialog.java +++ b/source/java/org/alfresco/web/bean/users/RemoveContentUserDialog.java @@ -37,6 +37,8 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; */ public class RemoveContentUserDialog extends BaseDialogBean { + private static final long serialVersionUID = -3090054828215666084L; + private static final String MSG_REMOVE_USER = "remove_user"; private ContentUsersBean contentUsersBean; diff --git a/source/java/org/alfresco/web/bean/users/RemoveInvitedUserDialog.java b/source/java/org/alfresco/web/bean/users/RemoveInvitedUserDialog.java index 83079062aa..d3ce99da29 100644 --- a/source/java/org/alfresco/web/bean/users/RemoveInvitedUserDialog.java +++ b/source/java/org/alfresco/web/bean/users/RemoveInvitedUserDialog.java @@ -31,7 +31,9 @@ import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; public class RemoveInvitedUserDialog extends BaseDialogBean { - + + private static final long serialVersionUID = -7457234588814115434L; + private static final String BUTTON_NO = "no"; private static final String BUTTON_YES = "yes"; diff --git a/source/java/org/alfresco/web/bean/users/UserConsoleDialog.java b/source/java/org/alfresco/web/bean/users/UserConsoleDialog.java index b64f748866..10ce5b0045 100644 --- a/source/java/org/alfresco/web/bean/users/UserConsoleDialog.java +++ b/source/java/org/alfresco/web/bean/users/UserConsoleDialog.java @@ -31,6 +31,8 @@ import org.alfresco.web.bean.dialog.BaseDialogBean; public class UserConsoleDialog extends BaseDialogBean { + private static final long serialVersionUID = -217662039833342921L; + private static final String MSG_CLOSE = "close"; @Override diff --git a/source/java/org/alfresco/web/bean/users/UsersBeanProperties.java b/source/java/org/alfresco/web/bean/users/UsersBeanProperties.java index 8da0e45a5f..382fc8e10d 100644 --- a/source/java/org/alfresco/web/bean/users/UsersBeanProperties.java +++ b/source/java/org/alfresco/web/bean/users/UsersBeanProperties.java @@ -24,6 +24,7 @@ */ package org.alfresco.web.bean.users; +import java.io.Serializable; import java.util.List; import javax.faces.context.FacesContext; @@ -39,27 +40,30 @@ import org.alfresco.service.cmr.security.AuthenticationService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.usage.ContentUsageService; import org.alfresco.web.app.servlet.DownloadContentServlet; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.repository.Node; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.component.data.UIRichList; -public class UsersBeanProperties +public class UsersBeanProperties implements Serializable { + private static final long serialVersionUID = 8874192805959149144L; + /** NodeService bean reference */ - private NodeService nodeService; + transient private NodeService nodeService; /** SearchService bean reference */ - private SearchService searchService; + transient private SearchService searchService; /** AuthenticationService bean reference */ - private AuthenticationService authenticationService; + transient private AuthenticationService authenticationService; /** PersonService bean reference */ - private PersonService personService; + transient private PersonService personService; /** ContentUsageService bean reference */ - private ContentUsageService contentUsageService; + transient private ContentUsageService contentUsageService; /** Component reference for Users RichList control */ @@ -82,6 +86,11 @@ public class UsersBeanProperties */ public NodeService getNodeService() { + //check for null for cluster environment + if (nodeService == null) + { + nodeService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getNodeService(); + } return nodeService; } @@ -90,6 +99,12 @@ public class UsersBeanProperties */ public SearchService getSearchService() { + //check for null for cluster environment + if (searchService == null) + { + searchService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getSearchService(); + } + return searchService; } @@ -98,6 +113,11 @@ public class UsersBeanProperties */ public AuthenticationService getAuthenticationService() { + //check for null for cluster environment + if (authenticationService == null) + { + authenticationService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthenticationService(); + } return authenticationService; } @@ -106,10 +126,29 @@ public class UsersBeanProperties */ public PersonService getPersonService() { + //check for null for cluster environment + if(personService == null) + { + personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService(); + } return personService; } - + + /** + *@return contentUsageService + */ + public ContentUsageService getContentUsageService() + { + //check for null for cluster environment + if(contentUsageService == null) + { + contentUsageService = (ContentUsageService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "ContentUsageService"); + } + return contentUsageService; + } + + /** * @param nodeService The NodeService to set. */ public void setNodeService(NodeService nodeService) @@ -248,25 +287,25 @@ public class UsersBeanProperties public Long getUserUsage(String userName) { - long usage = this.contentUsageService.getUserUsage(userName); + long usage = getContentUsageService().getUserUsage(userName); return (usage == -1 ? null : usage); } public Long getUserUsage() { - long usage = this.contentUsageService.getUserUsage(this.userName); + long usage = getContentUsageService().getUserUsage(this.userName); return (usage == -1 ? null : usage); } public Long getUserQuota() { - long quota = this.contentUsageService.getUserQuota(this.userName); + long quota = getContentUsageService().getUserQuota(this.userName); return (quota == -1 ? null : quota); } public boolean getUsagesEnabled() { - return this.contentUsageService.getEnabled(); + return getContentUsageService().getEnabled(); } public String getPersonDescription() @@ -287,11 +326,11 @@ public class UsersBeanProperties { String avatarUrl = null; - List refs = this.nodeService.getTargetAssocs(this.person.getNodeRef(), ContentModel.ASSOC_AVATAR); + List refs = getNodeService().getTargetAssocs(this.person.getNodeRef(), ContentModel.ASSOC_AVATAR); if (refs.size() == 1) { NodeRef photoRef = refs.get(0).getTargetRef(); - String name = (String)this.nodeService.getProperty(photoRef, ContentModel.PROP_NAME); + String name = (String)getNodeService().getProperty(photoRef, ContentModel.PROP_NAME); avatarUrl = DownloadContentServlet.generateBrowserURL(photoRef, name); } diff --git a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java index 3c2512a9cb..cfcc6c083e 100644 --- a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java +++ b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java @@ -222,7 +222,7 @@ public class AVMBrowseBean implements IContextListener transient private FormsService formsService; /** The SearchService reference */ - protected SearchService searchService; + transient private SearchService searchService; /** @@ -307,6 +307,20 @@ public class AVMBrowseBean implements IContextListener this.searchService = searchService; } + /** + * @return searchService + */ + public SearchService getSearchService() + { + //check for null for cluster environment + if(searchService == null) + { + searchService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getSearchService(); + } + return searchService; + } + + /** * Getter used by the Inline Edit XML JSP * @@ -1041,7 +1055,7 @@ public class AVMBrowseBean implements IContextListener sp.setLimit(searchLimit); } - results = this.searchService.query(sp); + results = getSearchService().query(sp); if (logger.isDebugEnabled()) logger.debug("Search results returned: " + results.length()); @@ -1067,7 +1081,7 @@ public class AVMBrowseBean implements IContextListener } if (path.length() > sandboxPathLength) { - AVMNodeDescriptor avmRef = this.avmService.lookup(-1, path); + AVMNodeDescriptor avmRef = getAvmService().lookup(-1, path); if (avmRef != null) { AVMNode node = addAVMNodeResult(avmRef); diff --git a/source/java/org/alfresco/web/bean/wcm/AVMNode.java b/source/java/org/alfresco/web/bean/wcm/AVMNode.java index 9846951b9a..ff47272c51 100644 --- a/source/java/org/alfresco/web/bean/wcm/AVMNode.java +++ b/source/java/org/alfresco/web/bean/wcm/AVMNode.java @@ -28,11 +28,11 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; + import javax.faces.context.FacesContext; import org.alfresco.model.WCMModel; import org.alfresco.repo.avm.AVMNodeConverter; -import org.alfresco.repo.avm.AVMNodeType; import org.alfresco.repo.domain.PropertyValue; import org.alfresco.service.cmr.avm.AVMNodeDescriptor; import org.alfresco.service.cmr.avm.LayeringDescriptor; @@ -136,6 +136,8 @@ public class AVMNode extends Node implements Map public final static NodePropertyResolver RESOLVER_DISPLAY_PATH = new NodePropertyResolver() { + private static final long serialVersionUID = 368552730555134975L; + public Object get(final Node node) { if (! (node instanceof AVMNode)) @@ -152,6 +154,8 @@ public class AVMNode extends Node implements Map public final static NodePropertyResolver RESOLVER_PARENT_PATH = new NodePropertyResolver() { + private static final long serialVersionUID = -798036430912409497L; + public Object get(final Node node) { if (! (node instanceof AVMNode)) diff --git a/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java index 561136c23b..f9d9696e23 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateFormWizard.java @@ -89,6 +89,8 @@ public class CreateFormWizard extends BaseWizardBean ///////////////////////////////////////////////////////////////////////////// + private static final long serialVersionUID = 4038447699556408567L; + /** * Simple wrapper class to represent a form data renderer */ @@ -1113,7 +1115,7 @@ public class CreateFormWizard extends BaseWizardBean boolean isWebForm = true; // TODO - need better way to determine WCM vs ECM context // can create form from CreateWebProject Wizard, or from Forms DataDictionary space or Web Forms DataDictionary space - if (this.navigator.getCurrentNode().getNodeRef().equals(this.formsService.getContentFormsNodeRef())) + if (this.navigator.getCurrentNode().getNodeRef().equals(getFormsService().getContentFormsNodeRef())) { // ECM form isWebForm = false; diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java index 4c1bdfaa87..e365751d7a 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebContentWizard.java @@ -688,7 +688,7 @@ public class CreateWebContentWizard extends CreateContentWizard */ public List getFormsList() { - Collection forms = this.formsService.getWebForms(); + Collection forms = getFormsService().getWebForms(); List items = new ArrayList(forms.size()+1); items.add(new SelectItem("", "")); for (Form form : forms) diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java index 3956b71bf9..65c8021047 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java @@ -274,8 +274,8 @@ public class CreateWebsiteWizard extends BaseWizardBean { String stagingStore = AVMUtil.buildStagingStoreName(avmStore); String stagingStoreRoot = AVMUtil.buildSandboxRootPath(stagingStore); - this.avmService.createDirectory(stagingStoreRoot, webapp); - this.avmService.addAspect(AVMNodeConverter.ExtendAVMPath(stagingStoreRoot, webapp), + getAvmService().createDirectory(stagingStoreRoot, webapp); + getAvmService().addAspect(AVMNodeConverter.ExtendAVMPath(stagingStoreRoot, webapp), WCMAppModel.ASPECT_WEBAPP); } @@ -558,7 +558,7 @@ public class CreateWebsiteWizard extends BaseWizardBean { NodeRef wfRef = wChildRef.getChildRef(); String wfName = (String)getNodeService().getProperty(wfRef, WCMAppModel.PROP_WORKFLOW_NAME); - WorkflowDefinition wfDef = this.workflowService.getDefinitionByName(wfName); + WorkflowDefinition wfDef = getWorkflowService().getDefinitionByName(wfName); if (wfDef != null) { WorkflowWrapper wfWrapper = new WorkflowWrapper(wfName, wfDef.getTitle(), wfDef.getDescription()); diff --git a/source/java/org/alfresco/web/bean/wcm/RegenerateRenditionsWizard.java b/source/java/org/alfresco/web/bean/wcm/RegenerateRenditionsWizard.java index c4aad0f73c..bb866a4f94 100644 --- a/source/java/org/alfresco/web/bean/wcm/RegenerateRenditionsWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/RegenerateRenditionsWizard.java @@ -40,7 +40,6 @@ import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.avm.locking.AVMLockingService; import org.alfresco.service.cmr.avmsync.AVMDifference; import org.alfresco.service.cmr.avmsync.AVMSyncService; -import org.alfresco.service.cmr.repository.ContentService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.search.ResultSet; @@ -72,6 +71,8 @@ import org.apache.commons.logging.LogFactory; public class RegenerateRenditionsWizard extends BaseWizardBean { + private static final long serialVersionUID = -8573877482412328963L; + public final String REGENERATE_SCOPE_ALL = "all"; public final String REGENERATE_SCOPE_FORM = "form"; public final String REGENERATE_SCOPE_RENDERING_ENGINE_TEMPLATE = "rendering_engine_template"; diff --git a/source/java/org/alfresco/web/bean/wcm/RevertAllDialog.java b/source/java/org/alfresco/web/bean/wcm/RevertAllDialog.java index 0bd8087a2e..dd27ee07f3 100644 --- a/source/java/org/alfresco/web/bean/wcm/RevertAllDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/RevertAllDialog.java @@ -35,7 +35,6 @@ import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import org.alfresco.repo.avm.actions.AVMUndoSandboxListAction; -import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.ActionService; import org.alfresco.service.cmr.avm.AVMNodeDescriptor; @@ -47,6 +46,7 @@ import org.alfresco.util.NameMatcher; import org.alfresco.util.Pair; import org.alfresco.util.VirtServerUtils; import org.alfresco.web.app.Application; +import org.alfresco.web.app.servlet.FacesHelper; import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.repository.Repository; @@ -67,7 +67,7 @@ public class RevertAllDialog extends BaseDialogBean transient private AVMSyncService avmSyncService; transient private ActionService actionService; - protected NameMatcher nameMatcher; + transient private NameMatcher nameMatcher; // The virtualization server might need to be notified // because one or more of the files reverted could alter @@ -145,6 +145,19 @@ public class RevertAllDialog extends BaseDialogBean this.nameMatcher = nameMatcher; } + /** + * @return nameMatcher + */ + protected NameMatcher getNameMatcher() + { + //check for null for cluster environment + if (nameMatcher == null) + { + nameMatcher = (NameMatcher) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "globalPathExcluder"); + } + return nameMatcher; + } + /** * @see org.alfresco.web.bean.dialog.BaseDialogBean#finishImpl(javax.faces.context.FacesContext, java.lang.String) @@ -158,7 +171,7 @@ public class RevertAllDialog extends BaseDialogBean // calcluate the list of differences between the user store and the staging area List diffs = this.getAvmSyncService().compare( - -1, userStore, -1, stagingStore, this.nameMatcher); + -1, userStore, -1, stagingStore, getNameMatcher()); List> versionPaths = new ArrayList>(); diff --git a/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java b/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java index 29eb2192ad..4e1e847958 100644 --- a/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java @@ -133,7 +133,7 @@ public class SubmitDialog extends BaseDialogBean transient private AVMLockingService avmLockingService; transient private FormsService formsService; - protected NameMatcher nameMatcher; + transient private NameMatcher nameMatcher; /** Current workflow for dialog context */ @@ -224,6 +224,19 @@ public class SubmitDialog extends BaseDialogBean { this.nameMatcher = nameMatcher; } + + /** + * @return nameMatcher + */ + protected NameMatcher getNameMatcher() + { + //check for null for cluster environment + if (nameMatcher == null) + { + nameMatcher = (NameMatcher) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "globalPathExcluder"); + } + return nameMatcher; + } /** * @param formsService The FormsService to set. @@ -991,7 +1004,7 @@ public class SubmitDialog extends BaseDialogBean String webapp = this.avmBrowseBean.getWebapp(); String userStore = AVMUtil.buildStoreWebappPath(this.avmBrowseBean.getSandbox(), webapp); String stagingStore = AVMUtil.buildStoreWebappPath(this.avmBrowseBean.getStagingStore(), webapp); - List diffs = this.getAvmSyncService().compare(-1, userStore, -1, stagingStore, nameMatcher); + List diffs = this.getAvmSyncService().compare(-1, userStore, -1, stagingStore, getNameMatcher()); selected = new ArrayList(diffs.size()); for (AVMDifference diff : diffs) { diff --git a/source/java/org/alfresco/web/bean/wcm/WebSiteDetailsDialog.java b/source/java/org/alfresco/web/bean/wcm/WebSiteDetailsDialog.java index 2220800730..9222d27b8f 100644 --- a/source/java/org/alfresco/web/bean/wcm/WebSiteDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/WebSiteDetailsDialog.java @@ -44,6 +44,8 @@ import org.alfresco.web.ui.common.component.UIActionLink; public class WebSiteDetailsDialog extends BaseDetailsBean implements NavigationSupport { + + private static final long serialVersionUID = -7951329243417867229L; private static final String MSG_DETAILS_OF = "details_of"; private static final String MSG_LOCATION = "location"; diff --git a/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java b/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java index 5a538b5ef8..34b69ccc34 100644 --- a/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java +++ b/source/java/org/alfresco/web/config/AdvancedSearchConfigElement.java @@ -234,8 +234,10 @@ public class AdvancedSearchConfigElement extends ConfigElementAdapter implements * Simple wrapper class for custom advanced search property * @author Kevin Roast */ - public static class CustomProperty + public static class CustomProperty implements Serializable { + private static final long serialVersionUID = 1457092137913897740L; + CustomProperty(String type, String aspect, String property, String labelId) { Type = type; diff --git a/source/java/org/alfresco/web/ui/common/component/IBreadcrumbHandler.java b/source/java/org/alfresco/web/ui/common/component/IBreadcrumbHandler.java index e0a381a3cc..3a29fcf496 100644 --- a/source/java/org/alfresco/web/ui/common/component/IBreadcrumbHandler.java +++ b/source/java/org/alfresco/web/ui/common/component/IBreadcrumbHandler.java @@ -26,8 +26,6 @@ package org.alfresco.web.ui.common.component; import java.io.Serializable; -import org.alfresco.service.cmr.repository.NodeRef; - /** * @author Kevin Roast */