Author: tolusha
Date: 2011-07-05 07:51:45 -0400 (Tue, 05 Jul 2011)
New Revision: 4597
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationService.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/repository-creation-service.xml
Log:
EXOJCR-1396: added possibility to control sessions closing before repository removing
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationService.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationService.java 2011-07-05
09:24:54 UTC (rev 4596)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationService.java 2011-07-05
11:51:45 UTC (rev 4597)
@@ -101,8 +101,10 @@
* Remove previously created repository.
*
* @param repositoryName - the repository name to delete
+ * @param forceCloseSessions - indicates if need to close sessions before repository
removing, if
+ * sessions are opened is it not possbile to remove repository and exception will be
thrown
* @throws RepositoryCreationServiceException
* if some exception occurred during repository removing occurred
*/
- void removeRepository(String repositoryName) throws RepositoryCreationException;
+ void removeRepository(String repositoryName, boolean forceCloseSessions) throws
RepositoryCreationException;
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java 2011-07-05
09:24:54 UTC (rev 4596)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java 2011-07-05
11:51:45 UTC (rev 4597)
@@ -231,8 +231,10 @@
public Serializable execute(Serializable[] args) throws Throwable
{
String repositoryName = (String)args[0];
- removeRepositoryLocally(repositoryName);
+ boolean forceCloseSessions = (Boolean)args[1];
+ removeRepositoryLocally(repositoryName, forceCloseSessions);
+
return null;
}
});
@@ -733,13 +735,14 @@
/**
* {@inheritDoc}
*/
- public void removeRepository(String repositoryName) throws
RepositoryCreationException
+ public void removeRepository(String repositoryName, boolean forceCloseSessions) throws
RepositoryCreationException
{
if (rpcService != null)
{
try
{
- List<Object> results =
rpcService.executeCommandOnAllNodes(removeRepository, true, repositoryName);
+ List<Object> results =
+ rpcService.executeCommandOnAllNodes(removeRepository, true,
repositoryName, forceCloseSessions);
for (Object result : results)
{
@@ -764,7 +767,7 @@
}
else
{
- removeRepositoryLocally(repositoryName);
+ removeRepositoryLocally(repositoryName, forceCloseSessions);
}
}
@@ -773,9 +776,12 @@
*
* @param repositoryName
* the repository name
+ * @param forceCloseSessions - indicates if need to close session before repository
removing, if
+ * sessions are opened is it not possbile to remove repository and exception will be
throw
* @throws RepositoryCreationException
*/
- protected void removeRepositoryLocally(String repositoryName) throws
RepositoryCreationException
+ protected void removeRepositoryLocally(String repositoryName, boolean
forceCloseSessions)
+ throws RepositoryCreationException
{
try
{
@@ -783,13 +789,16 @@
ManageableRepository repositorty =
repositoryService.getRepository(repositoryName);
Set<String> datasources =
extractDataSourceNames(repositorty.getConfiguration(), false);
- // close all opened sessions
- for (String workspaceName : repositorty.getWorkspaceNames())
+ if (forceCloseSessions)
{
- WorkspaceContainerFacade wc =
repositorty.getWorkspaceContainer(workspaceName);
- SessionRegistry sessionRegistry =
(SessionRegistry)wc.getComponent(SessionRegistry.class);
+ // close all opened sessions
+ for (String workspaceName : repositorty.getWorkspaceNames())
+ {
+ WorkspaceContainerFacade wc =
repositorty.getWorkspaceContainer(workspaceName);
+ SessionRegistry sessionRegistry =
(SessionRegistry)wc.getComponent(SessionRegistry.class);
- sessionRegistry.closeSessions(workspaceName);
+ sessionRegistry.closeSessions(workspaceName);
+ }
}
// remove repository from configuration
Modified:
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/repository-creation-service.xml
===================================================================
---
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/repository-creation-service.xml 2011-07-05
09:24:54 UTC (rev 4596)
+++
jcr/trunk/exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/repository-creation-service.xml 2011-07-05
11:51:45 UTC (rev 4597)
@@ -220,10 +220,12 @@
* Remove previously created repository.
*
* @param repositoryName - the repository name to delete
+ * @param forceCloseSessions - indicates if need to close session before repository
removing, if
+ * sessions are opened is it not possbile to remove repository and exception will be
thrown
* @throws RepositoryCreationServiceException
* if some exception occurred during repository removing occurred
*/
- void removeRepository(String repositoryName) throws RepositoryCreationException;
+ void removeRepository(String repositoryName, boolean forceCloseSessions) throws
RepositoryCreationException;
}</programlisting>
</section>
Show replies by date