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