From 4446ea6a9e0df20d38263fd25db4eea38afe552e Mon Sep 17 00:00:00 2001 From: Gavin Cornwell Date: Wed, 6 Oct 2010 08:46:11 +0000 Subject: [PATCH] Fixed ALF-3085: UI Bootstrap - No root 'Web Projects' folder exists (is WCM enabled ?) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22904 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../wcm/webproject/WebProjectService.java | 8 +++++ .../wcm/webproject/WebProjectServiceImpl.java | 32 +++++++++++++++++++ .../webproject/WebProjectServiceImplTest.java | 6 ++++ 3 files changed, 46 insertions(+) diff --git a/source/java/org/alfresco/wcm/webproject/WebProjectService.java b/source/java/org/alfresco/wcm/webproject/WebProjectService.java index c3a3888e5b..1142c275f3 100644 --- a/source/java/org/alfresco/wcm/webproject/WebProjectService.java +++ b/source/java/org/alfresco/wcm/webproject/WebProjectService.java @@ -112,6 +112,14 @@ public interface WebProjectService @NotAuditable public WebProjectInfo createWebProject(WebProjectInfo wpInfo); + /** + * Determines whether the "Web Projects" container node is present. + * + * @return true if the "Web Projects" container node is present + */ + @NotAuditable + public boolean hasWebProjectsRoot(); + /** * Returns the Web Projects container * diff --git a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java index ea5173ffa6..5a30bd33ca 100644 --- a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java +++ b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImpl.java @@ -438,7 +438,39 @@ public class WebProjectServiceImpl extends WCMUtil implements WebProjectService throw new AccessDeniedException("Only content managers may delete webapp '"+webAppName+"' (web project: "+wpNodeRef+")"); } } + + /* + * @see org.alfresco.wcm.webproject.WebProjectService#hasWebProjectsRoot() + */ + public boolean hasWebProjectsRoot() + { + boolean hasRoot = false; + // Get the root 'web projects' folder + ResultSet resultSet = null; + try + { + resultSet = this.searchService.query(WEBPROJECT_STORE, SearchService.LANGUAGE_LUCENE, "PATH:\""+getWebProjectsPath()+"\""); + if (resultSet.length() == 1) + { + hasRoot = true; + } + else if (resultSet.length() > 1 && logger.isWarnEnabled()) + { + logger.warn("More than one root 'Web Projects' folder exists"); + } + } + finally + { + if (resultSet != null) + { + resultSet.close(); + } + } + + return hasRoot; + } + /** * Get the node reference that is the web projects root * diff --git a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImplTest.java b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImplTest.java index 874e9f7fe2..f79d8f2ad9 100644 --- a/source/java/org/alfresco/wcm/webproject/WebProjectServiceImplTest.java +++ b/source/java/org/alfresco/wcm/webproject/WebProjectServiceImplTest.java @@ -142,6 +142,12 @@ public class WebProjectServiceImplTest extends AbstractWCMServiceImplTest } } + public void testHasWebProjectsRoot() + { + // make sure there is a "Web Projects" container node + assertTrue(wpService.hasWebProjectsRoot()); + } + public void testCreateWebProjectSimple() { // Create a web project