diff --git a/config/alfresco/messages/webclient.properties b/config/alfresco/messages/webclient.properties index 0123a61355..75ca8fe209 100644 --- a/config/alfresco/messages/webclient.properties +++ b/config/alfresco/messages/webclient.properties @@ -553,6 +553,9 @@ http_session_state=HTTP Session State http_request_state=HTTP Request State http_request_params=HTTP Request Parameters http_request_headers=HTTP Request Headers +repository_props=Repository Properties +repository_patch_succeeded=Succeeded +repository_patch_failed=FAILED system_props=System Properties hide_details=Hide Details show_details=Show Details diff --git a/source/java/org/alfresco/web/bean/AdvancedSearchBean.java b/source/java/org/alfresco/web/bean/AdvancedSearchBean.java index 72d2697681..0cb53e33c4 100644 --- a/source/java/org/alfresco/web/bean/AdvancedSearchBean.java +++ b/source/java/org/alfresco/web/bean/AdvancedSearchBean.java @@ -1499,22 +1499,22 @@ public class AdvancedSearchBean private static final String NO_SELECTION = "NONE"; /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The NamespaceService to be used by the bean */ - private NamespaceService namespaceService; + protected NamespaceService namespaceService; /** The NavigationBean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** SearchService bean reference */ - private SearchService searchService; + protected SearchService searchService; /** PermissionService */ - private PermissionService permissionService; + protected PermissionService permissionService; /** Client Config reference */ - private AdvancedSearchConfigElement searchConfigElement = null; + protected AdvancedSearchConfigElement searchConfigElement = null; /** Progressive panel UI state */ private Map panels = new HashMap(5, 1.0f); diff --git a/source/java/org/alfresco/web/bean/BrowseBean.java b/source/java/org/alfresco/web/bean/BrowseBean.java index 5a6a5babfd..2f8dda798f 100644 --- a/source/java/org/alfresco/web/bean/BrowseBean.java +++ b/source/java/org/alfresco/web/bean/BrowseBean.java @@ -1566,32 +1566,32 @@ public class BrowseBean implements IContextListener private static Logger logger = Logger.getLogger(BrowseBean.class); /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The SearchService to be used by the bean */ - private SearchService searchService; + protected SearchService searchService; /** The LockService to be used by the bean */ - private LockService lockService; + protected LockService lockService; /** The NavigationBean bean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** The DictionaryService bean reference */ - private DictionaryService dictionaryService; + protected DictionaryService dictionaryService; /** The file folder service */ - private FileFolderService fileFolderService; + protected FileFolderService fileFolderService; /** Views configuration object */ - private ViewsConfigElement viewsConfig = null; + protected ViewsConfigElement viewsConfig = null; /** Listeners for Node events */ private Set nodeEventListeners = null; /** Component references */ - private UIRichList spacesRichList; - private UIRichList contentRichList; + protected UIRichList spacesRichList; + protected UIRichList contentRichList; private UIStatusMessage statusMessage; /** Transient lists of container and content nodes for display */ diff --git a/source/java/org/alfresco/web/bean/CategoriesBean.java b/source/java/org/alfresco/web/bean/CategoriesBean.java index 3f57dab084..e5f3a2c121 100644 --- a/source/java/org/alfresco/web/bean/CategoriesBean.java +++ b/source/java/org/alfresco/web/bean/CategoriesBean.java @@ -66,12 +66,12 @@ public class CategoriesBean implements IContextListener private static Logger logger = Logger.getLogger(CategoriesBean.class); /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; - private CategoryService categoryService; + protected CategoryService categoryService; /** Component references */ - private UIRichList categoriesRichList; + protected UIRichList categoriesRichList; /** Currently visible category Node*/ private Node category = null; diff --git a/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java b/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java index 27546a6a5c..9370d8c499 100644 --- a/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java +++ b/source/java/org/alfresco/web/bean/CheckinCheckoutBean.java @@ -938,14 +938,14 @@ public class CheckinCheckoutBean private NodeRef selectedSpaceId = null; /** The BrowseBean to be used by the bean */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The VersionOperationsService to be used by the bean */ - private CheckOutCheckInService versionOperationsService; + protected CheckOutCheckInService versionOperationsService; /** The ContentService to be used by the bean */ - private ContentService contentService; + protected ContentService contentService; } diff --git a/source/java/org/alfresco/web/bean/DocumentDetailsBean.java b/source/java/org/alfresco/web/bean/DocumentDetailsBean.java index c36f424fff..f0aca12f1a 100644 --- a/source/java/org/alfresco/web/bean/DocumentDetailsBean.java +++ b/source/java/org/alfresco/web/bean/DocumentDetailsBean.java @@ -80,13 +80,13 @@ public class DocumentDetailsBean private static Logger logger = Logger.getLogger(DocumentDetailsBean.class); - private BrowseBean browseBean; - private NodeService nodeService; - private LockService lockService; - private CopyService copyService; - private VersionService versionService; - private OwnableService ownableService; - private NavigationBean navigator; + protected BrowseBean browseBean; + protected NodeService nodeService; + protected LockService lockService; + protected CopyService copyService; + protected VersionService versionService; + protected OwnableService ownableService; + protected NavigationBean navigator; private Map panels = new HashMap(5, 1.0f); diff --git a/source/java/org/alfresco/web/bean/DocumentPropertiesBean.java b/source/java/org/alfresco/web/bean/DocumentPropertiesBean.java index e172cc3df9..27c6cd3ffc 100644 --- a/source/java/org/alfresco/web/bean/DocumentPropertiesBean.java +++ b/source/java/org/alfresco/web/bean/DocumentPropertiesBean.java @@ -63,10 +63,10 @@ public class DocumentPropertiesBean { private static final String TEMP_PROP_MIMETYPE = "mimetype"; - private NodeService nodeService; - private FileFolderService fileFolderService; - private DictionaryService dictionaryService; - private BrowseBean browseBean; + protected NodeService nodeService; + protected FileFolderService fileFolderService; + protected DictionaryService dictionaryService; + protected BrowseBean browseBean; private List contentTypes; private Node editableNode; private Boolean hasOtherProperties; diff --git a/source/java/org/alfresco/web/bean/ExportBean.java b/source/java/org/alfresco/web/bean/ExportBean.java index 14548f025d..37675bad1d 100644 --- a/source/java/org/alfresco/web/bean/ExportBean.java +++ b/source/java/org/alfresco/web/bean/ExportBean.java @@ -52,9 +52,9 @@ public class ExportBean private static final String MSG_ERROR = "error_export"; - private BrowseBean browseBean; - private NodeService nodeService; - private ActionService actionService; + protected BrowseBean browseBean; + protected NodeService nodeService; + protected ActionService actionService; private String packageName; private String encoding = "UTF-8"; diff --git a/source/java/org/alfresco/web/bean/ForumsBean.java b/source/java/org/alfresco/web/bean/ForumsBean.java index f24834b903..99f9afcb6f 100644 --- a/source/java/org/alfresco/web/bean/ForumsBean.java +++ b/source/java/org/alfresco/web/bean/ForumsBean.java @@ -84,33 +84,33 @@ public class ForumsBean implements IContextListener, NodeEventListener private static final String PAGE_NAME_TOPIC = "topic"; /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The ContentService to be used by the bean */ - private ContentService contentService; + protected ContentService contentService; /** The DictionaryService bean reference */ - private DictionaryService dictionaryService; + protected DictionaryService dictionaryService; /** The SearchService bean reference. */ - private SearchService searchService; + protected SearchService searchService; /** The NamespaceService bean reference. */ - private NamespaceService namespaceService; + protected NamespaceService namespaceService; /** The browse bean */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** The NavigationBean bean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** Views configuration object */ - private ViewsConfigElement viewsConfig = null; + protected ViewsConfigElement viewsConfig = null; /** Component references */ - private UIRichList forumsRichList; - private UIRichList forumRichList; - private UIRichList topicRichList; + protected UIRichList forumsRichList; + protected UIRichList forumRichList; + protected UIRichList topicRichList; /** Node lists */ private List forums; diff --git a/source/java/org/alfresco/web/bean/ImportBean.java b/source/java/org/alfresco/web/bean/ImportBean.java index bfd6bfd31c..e9216464b6 100644 --- a/source/java/org/alfresco/web/bean/ImportBean.java +++ b/source/java/org/alfresco/web/bean/ImportBean.java @@ -59,10 +59,10 @@ public class ImportBean private static final String MSG_ERROR_NO_FILE = "error_import_no_file"; private static final String MSG_ERROR_EMPTY_FILE = "error_import_empty_file"; - private BrowseBean browseBean; - private NodeService nodeService; - private ActionService actionService; - private ContentService contentService; + protected BrowseBean browseBean; + protected NodeService nodeService; + protected ActionService actionService; + protected ContentService contentService; private File file; private String fileName; diff --git a/source/java/org/alfresco/web/bean/LoginBean.java b/source/java/org/alfresco/web/bean/LoginBean.java index 3eca39a58c..50f3b93b34 100644 --- a/source/java/org/alfresco/web/bean/LoginBean.java +++ b/source/java/org/alfresco/web/bean/LoginBean.java @@ -408,17 +408,17 @@ public class LoginBean private String language = null; /** PersonService bean reference */ - private PersonService personService; + protected PersonService personService; /** AuthenticationService bean reference */ - private AuthenticationService authenticationService; + protected AuthenticationService authenticationService; /** NodeService bean reference */ - private NodeService nodeService; + protected NodeService nodeService; /** The BrowseBean reference */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** The NavigationBean bean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; } diff --git a/source/java/org/alfresco/web/bean/NavigationBean.java b/source/java/org/alfresco/web/bean/NavigationBean.java index 78ef0fc760..a7f81b30d7 100644 --- a/source/java/org/alfresco/web/bean/NavigationBean.java +++ b/source/java/org/alfresco/web/bean/NavigationBean.java @@ -644,22 +644,22 @@ public class NavigationBean private static final String ERROR_DELETED_FOLDER = "error_deleted_folder"; /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The SearchService to be used by the bean */ - private SearchService searchService; + protected SearchService searchService; /** NamespaceService bean reference */ - private NamespaceService namespaceService; + protected NamespaceService namespaceService; /** CIFSServer bean reference */ - private CIFSServer cifsServer; + protected CIFSServer cifsServer; /** CIFS content disk driver bean reference */ - private ContentDiskInterface contentDiskDriver; + protected ContentDiskInterface contentDiskDriver; /** Client configuration object */ - private ClientConfigElement clientConfig = null; + protected ClientConfigElement clientConfig = null; /** Cached path to our CIFS server and top level node DIR */ private String cifsServerPath; diff --git a/source/java/org/alfresco/web/bean/RecentSpacesBean.java b/source/java/org/alfresco/web/bean/RecentSpacesBean.java index becf767904..ddf1f931d6 100644 --- a/source/java/org/alfresco/web/bean/RecentSpacesBean.java +++ b/source/java/org/alfresco/web/bean/RecentSpacesBean.java @@ -48,10 +48,10 @@ public class RecentSpacesBean implements IContextListener private static Logger logger = Logger.getLogger(RecentSpacesBean.class); /** The NavigationBean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** The BrowseBean reference */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** Maximum number of recent spaces to show */ private Integer maxRecentSpaces = null; diff --git a/source/java/org/alfresco/web/bean/RulesBean.java b/source/java/org/alfresco/web/bean/RulesBean.java index 5729d1202b..af07196ea9 100644 --- a/source/java/org/alfresco/web/bean/RulesBean.java +++ b/source/java/org/alfresco/web/bean/RulesBean.java @@ -53,8 +53,8 @@ public class RulesBean private static Log logger = LogFactory.getLog(RulesBean.class); private String viewMode = INHERITED; - private BrowseBean browseBean; - private RuleService ruleService; + protected BrowseBean browseBean; + protected RuleService ruleService; private List rules; private Rule currentRule; private UIRichList richList; diff --git a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java index bbb56028cc..df87166316 100644 --- a/source/java/org/alfresco/web/bean/SpaceDetailsBean.java +++ b/source/java/org/alfresco/web/bean/SpaceDetailsBean.java @@ -60,19 +60,19 @@ public class SpaceDetailsBean private static final String OUTCOME_RETURN = "showSpaceDetails"; /** BrowseBean instance */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** The NavigationBean bean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** PermissionService bean reference */ - private PermissionService permissionService; + protected PermissionService permissionService; /** OwnableService bean reference */ - private OwnableService ownableService; + protected OwnableService ownableService; /** NodeServuce bean reference */ - private NodeService nodeService; + protected NodeService nodeService; /** Selected template Id */ private String template; diff --git a/source/java/org/alfresco/web/bean/UserShortcutsBean.java b/source/java/org/alfresco/web/bean/UserShortcutsBean.java index 56282f9f0d..e3041e5d0c 100644 --- a/source/java/org/alfresco/web/bean/UserShortcutsBean.java +++ b/source/java/org/alfresco/web/bean/UserShortcutsBean.java @@ -52,10 +52,10 @@ public class UserShortcutsBean private static Logger logger = Logger.getLogger(UserShortcutsBean.class); /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The BrowseBean reference */ - private BrowseBean browseBean; + protected BrowseBean browseBean; /** List of shortcut nodes */ private List shortcuts = null; diff --git a/source/java/org/alfresco/web/bean/clipboard/ClipboardBean.java b/source/java/org/alfresco/web/bean/clipboard/ClipboardBean.java index ffdb2aded1..3947bfb804 100644 --- a/source/java/org/alfresco/web/bean/clipboard/ClipboardBean.java +++ b/source/java/org/alfresco/web/bean/clipboard/ClipboardBean.java @@ -323,13 +323,13 @@ public class ClipboardBean private static final String MSG_ERROR_PASTE = "error_paste"; /** The NodeService to be used by the bean */ - private NodeService nodeService; + protected NodeService nodeService; /** The NodeOperationsService to be used by the bean */ - private CopyService nodeOperationsService; + protected CopyService nodeOperationsService; /** The NavigationBean reference */ - private NavigationBean navigator; + protected NavigationBean navigator; /** Current state of the clipboard items */ private List items = new ArrayList(4); diff --git a/source/java/org/alfresco/web/bean/users/UsersBean.java b/source/java/org/alfresco/web/bean/users/UsersBean.java index 91d7fbc546..e6f906cfc3 100644 --- a/source/java/org/alfresco/web/bean/users/UsersBean.java +++ b/source/java/org/alfresco/web/bean/users/UsersBean.java @@ -61,19 +61,19 @@ public class UsersBean implements IContextListener private static final String DEFAULT_OUTCOME = "manageUsers"; /** NodeService bean reference */ - private NodeService nodeService; + protected NodeService nodeService; /** SearchService bean reference */ - private SearchService searchService; + protected SearchService searchService; /** AuthenticationService bean reference */ - private AuthenticationService authenticationService; + protected AuthenticationService authenticationService; /** PersonService bean reference */ - private PersonService personService; + protected PersonService personService; /** Component reference for Users RichList control */ - private UIRichList usersRichList; + protected UIRichList usersRichList; /** action context */ private Node person = null; diff --git a/source/java/org/alfresco/web/ui/common/component/debug/BaseDebugComponent.java b/source/java/org/alfresco/web/ui/common/component/debug/BaseDebugComponent.java index b28c67de78..9bf1f28665 100644 --- a/source/java/org/alfresco/web/ui/common/component/debug/BaseDebugComponent.java +++ b/source/java/org/alfresco/web/ui/common/component/debug/BaseDebugComponent.java @@ -52,7 +52,7 @@ public abstract class BaseDebugComponent extends SelfRenderingComponent } ResponseWriter out = context.getResponseWriter(); - out.write(""); + out.write("
"); if (this.getTitle() != null) { @@ -61,12 +61,12 @@ public abstract class BaseDebugComponent extends SelfRenderingComponent out.write(""); } - out.write(""); + out.write(""); Map session = getDebugData(); for (Object key : session.keySet()) { - out.write("
PropertyValue
PropertyValue
"); + out.write("
"); out.write(key.toString()); out.write(""); Object obj = session.get(key); diff --git a/source/java/org/alfresco/web/ui/common/component/debug/UIRepositoryProperties.java b/source/java/org/alfresco/web/ui/common/component/debug/UIRepositoryProperties.java new file mode 100644 index 0000000000..13cca8c24a --- /dev/null +++ b/source/java/org/alfresco/web/ui/common/component/debug/UIRepositoryProperties.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2005 Alfresco, Inc. + * + * Licensed under the Mozilla Public License version 1.1 + * with a permitted attribution clause. You may obtain a + * copy of the License at + * + * http://www.alfresco.org/legal/license.txt + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the + * License. + */ +package org.alfresco.web.ui.common.component.debug; + +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import javax.faces.context.FacesContext; + +import org.alfresco.repo.admin.patch.PatchInfo; +import org.alfresco.repo.admin.patch.PatchService; +import org.alfresco.service.ServiceRegistry; +import org.alfresco.service.descriptor.DescriptorService; +import org.alfresco.web.app.Application; +import org.alfresco.web.bean.repository.Repository; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.jsf.FacesContextUtils; + +/** + * Component which displays the Alfresco Repository properties + * + * @author kevinr + */ +public class UIRepositoryProperties extends BaseDebugComponent +{ + /** + * @see javax.faces.component.UIComponent#getFamily() + */ + public String getFamily() + { + return "org.alfresco.faces.debug.RepositoryProperties"; + } + + /** + * @see org.alfresco.web.ui.common.component.debug.BaseDebugComponent#getDebugData() + */ + @SuppressWarnings("unchecked") + public Map getDebugData() + { + // note: sort properties + Map properties = new TreeMap(); + + FacesContext fc = FacesContext.getCurrentInstance(); + ServiceRegistry services = Repository.getServiceRegistry(fc); + DescriptorService descriptorService = services.getDescriptorService(); + + properties.put("version", descriptorService.getRepositoryDescriptor().getVersion()); + properties.put("schema", descriptorService.getRepositoryDescriptor().getSchema()); + + WebApplicationContext cx = FacesContextUtils.getRequiredWebApplicationContext(fc); + PatchService patchService = (PatchService)cx.getBean("PatchService"); + List patches = patchService.getPatches(null, null); + for (PatchInfo patch : patches) + { + StringBuilder data = new StringBuilder(256); + data.append(patch.getAppliedOnDate()) + .append(" - ") + .append(patch.getDescription()) + .append(" - ") + .append(patch.getSucceeded() == true ? + Application.getMessage(fc, "repository_patch_succeeded") : + Application.getMessage(fc, "repository_patch_failed")); + properties.put(patch.getId(), data); + } + + return properties; + } +} diff --git a/source/java/org/alfresco/web/ui/common/tag/debug/RepositoryPropertiesTag.java b/source/java/org/alfresco/web/ui/common/tag/debug/RepositoryPropertiesTag.java new file mode 100644 index 0000000000..303a67ddfe --- /dev/null +++ b/source/java/org/alfresco/web/ui/common/tag/debug/RepositoryPropertiesTag.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2005 Alfresco, Inc. + * + * Licensed under the Mozilla Public License version 1.1 + * with a permitted attribution clause. You may obtain a + * copy of the License at + * + * http://www.alfresco.org/legal/license.txt + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the + * License. + */ +package org.alfresco.web.ui.common.tag.debug; + + +/** + * Tag implementation used to place the Repository properties component on a page. + * + * @author kevinr + */ +public class RepositoryPropertiesTag extends BaseDebugTag +{ + /** + * @see javax.faces.webapp.UIComponentTag#getComponentType() + */ + public String getComponentType() + { + return "org.alfresco.faces.debug.RepositoryProperties"; + } +} diff --git a/source/web/WEB-INF/alfresco.tld b/source/web/WEB-INF/alfresco.tld index f32dac1fed..b20a635e36 100644 --- a/source/web/WEB-INF/alfresco.tld +++ b/source/web/WEB-INF/alfresco.tld @@ -1521,6 +1521,31 @@ + + repositoryProperties + org.alfresco.web.ui.common.tag.debug.RepositoryPropertiesTag + JSP + Displays the Alfresco Repository properties in a table + + + id + false + true + + + + rendered + false + true + + + + title + false + true + + + genericPicker org.alfresco.web.ui.common.tag.GenericPickerTag diff --git a/source/web/WEB-INF/faces-config-common.xml b/source/web/WEB-INF/faces-config-common.xml index 9b580b0ebe..a624e22c86 100644 --- a/source/web/WEB-INF/faces-config-common.xml +++ b/source/web/WEB-INF/faces-config-common.xml @@ -124,6 +124,11 @@ org.alfresco.web.ui.common.component.debug.UISystemProperties + + org.alfresco.faces.debug.RepositoryProperties + org.alfresco.web.ui.common.component.debug.UIRepositoryProperties + + org.alfresco.faces.GenericPicker org.alfresco.web.ui.common.component.UIGenericPicker diff --git a/source/web/jsp/dialog/system-info.jsp b/source/web/jsp/dialog/system-info.jsp index 92c5f5ca30..e7c173edef 100644 --- a/source/web/jsp/dialog/system-info.jsp +++ b/source/web/jsp/dialog/system-info.jsp @@ -129,6 +129,12 @@
+ + + +