Author: sergiykarpenko
Date: 2010-09-09 02:56:47 -0400 (Thu, 09 Sep 2010)
New Revision: 3095
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RepositoryImpl.java
Log:
EXOJCR-940: RepositoryImpl.removeSystemWorkspace() added
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RepositoryImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RepositoryImpl.java 2010-09-08
16:34:20 UTC (rev 3094)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RepositoryImpl.java 2010-09-09
06:56:47 UTC (rev 3095)
@@ -638,7 +638,7 @@
public void removeWorkspace(String workspaceName) throws RepositoryException
{
if (!canRemoveWorkspace(workspaceName))
-
+
throw new RepositoryException("Workspace " + workspaceName + " in
use. If you want to "
+ " remove workspace close all open sessions");
@@ -647,6 +647,33 @@
}
/**
+ * Remove system workspace.
+ * Workspace become stopped, removed from container and removed from repository
configuration.
+ *
+ * @throws RepositoryException - if workspace is in use, or can't be removed for
other reason
+ */
+ protected void removeSystemWorkspace() throws RepositoryException
+ {
+
+ //check system workspace
+ String sysWSName = config.getSystemWorkspaceName();
+ if (repositoryContainer.getWorkspaceEntry(sysWSName) == null)
+ throw new NoSuchWorkspaceException("No system workspace " +
sysWSName);
+
+ SessionRegistry sessionRegistry =
+
(SessionRegistry)repositoryContainer.getComponentInstance(SessionRegistry.class);
+
+ if (sessionRegistry != null && !sessionRegistry.isInUse(sysWSName))
+ {
+ throw new RepositoryException("Workspace " + sysWSName + " in
use. If you want to "
+ + " remove workspace close all open sessions");
+ }
+
+ internalRemoveWorkspace(sysWSName);
+
config.getWorkspaceEntries().remove(repositoryContainer.getWorkspaceEntry(sysWSName));
+ }
+
+ /**
* {@inheritDoc}
*/
public WorkspaceContainerFacade getWorkspaceContainer(String workspaceName)
Show replies by date