Author: tolusha
Date: 2011-10-25 05:35:27 -0400 (Tue, 25 Oct 2011)
New Revision: 5085
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/RdbmsWorkspaceInitializer.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java
Log:
EXOJCR-1571: suspend every workspace instead of repository
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-10-25
08:06:47 UTC (rev 5084)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-10-25
09:35:27 UTC (rev 5085)
@@ -18,10 +18,10 @@
import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
import org.exoplatform.services.jcr.dataflow.DataManager;
import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
@@ -80,6 +80,7 @@
// list of data restorers
List<DataRestore> dataRestorer = new ArrayList<DataRestore>();
+ List<WorkspaceContainerFacade> workspacesWaits4Resume = new
ArrayList<WorkspaceContainerFacade>();
try
{
WorkspaceEntry wsEntry = repositoryEntry.getWorkspaceEntries().get(0);
@@ -116,8 +117,15 @@
dbCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn,
repositoryEntry);
}
-
repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.SUSPENDED);
+ ManageableRepository repository =
repositoryService.getRepository(this.repositoryEntry.getName());
+ for (String wsName : repository.getWorkspaceNames())
+ {
+ WorkspaceContainerFacade wsContainer =
repository.getWorkspaceContainer(wsName);
+ wsContainer.setState(ManageableRepository.SUSPENDED);
+ workspacesWaits4Resume.add(wsContainer);
+ }
+
boolean isSharedDbCleaner = false;
// collect all restorers
@@ -204,7 +212,10 @@
}
// resume components
-
repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.ONLINE);
+ for (WorkspaceContainerFacade wsContainer : workspacesWaits4Resume)
+ {
+ wsContainer.setState(ManageableRepository.ONLINE);
+ }
// incremental restore
for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
@@ -264,16 +275,15 @@
try
{
-
repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.ONLINE);
+ for (WorkspaceContainerFacade wsContainer : workspacesWaits4Resume)
+ {
+ wsContainer.setState(ManageableRepository.ONLINE);
+ }
}
catch (RepositoryException e)
{
log.error("Can't resume repository", e);
}
- catch (RepositoryConfigurationException e)
- {
- log.error("Can't resume repository", e);
- }
}
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java 2011-10-25
08:06:47 UTC (rev 5084)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java 2011-10-25
09:35:27 UTC (rev 5085)
@@ -17,9 +17,9 @@
package org.exoplatform.services.jcr.ext.backup.impl;
import org.exoplatform.services.jcr.RepositoryService;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
import org.exoplatform.services.jcr.dataflow.DataManager;
import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
import org.exoplatform.services.jcr.ext.backup.BackupManager;
@@ -73,18 +73,27 @@
// list of data restorers
List<DataRestore> dataRestorer = new ArrayList<DataRestore>();
+ List<WorkspaceContainerFacade> workspacesWaits4Resume = new
ArrayList<WorkspaceContainerFacade>();
try
{
ManageableRepository repository =
repositoryService.getRepository(repositoryName);
if (wEntry.getContainer().getParameterBoolean("multi-db") == false)
{
- repository.setState(ManageableRepository.SUSPENDED);
+ for (String wsName : repository.getWorkspaceNames())
+ {
+ WorkspaceContainerFacade wsContainer =
repository.getWorkspaceContainer(wsName);
+ wsContainer.setState(ManageableRepository.SUSPENDED);
+
+ workspacesWaits4Resume.add(wsContainer);
+ }
}
else
{
- repository.getWorkspaceContainer(wEntry.getName()).setState(
- ManageableRepository.SUSPENDED);
+ WorkspaceContainerFacade wsContainer =
repository.getWorkspaceContainer(wEntry.getName());
+
+ wsContainer.setState(ManageableRepository.SUSPENDED);
+ workspacesWaits4Resume.add(wsContainer);
}
// get all restorers
@@ -119,15 +128,10 @@
restorer.commit();
}
- if (wEntry.getContainer().getParameterBoolean("multi-db") == false)
+ for (WorkspaceContainerFacade wsContainer : workspacesWaits4Resume)
{
- repository.setState(ManageableRepository.ONLINE);
+ wsContainer.setState(ManageableRepository.ONLINE);
}
- else
- {
- repository.getWorkspaceContainer(wEntry.getName()).setState(
- ManageableRepository.ONLINE);
- }
// incremental restore
DataManager dataManager =
@@ -178,31 +182,15 @@
try
{
- ManageableRepository repository =
repositoryService.getRepository(repositoryName);
-
- if (wEntry.getContainer().getParameterBoolean("multi-db") ==
false)
+ for (WorkspaceContainerFacade wsContainer : workspacesWaits4Resume)
{
- if (repository.getState() != ManageableRepository.ONLINE)
- {
- repository.setState(ManageableRepository.ONLINE);
- }
+ wsContainer.setState(ManageableRepository.ONLINE);
}
- else
- {
- if (repository.getWorkspaceContainer(wEntry.getName()).getState() !=
ManageableRepository.ONLINE)
- {
-
repository.getWorkspaceContainer(wEntry.getName()).setState(ManageableRepository.ONLINE);
- }
- }
}
catch (RepositoryException e)
{
log.error("Can't resume component", e);
}
- catch (RepositoryConfigurationException e)
- {
- log.error("Can't resume component", e);
- }
}
}
}
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/RdbmsWorkspaceInitializer.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/RdbmsWorkspaceInitializer.java 2011-10-25
08:06:47 UTC (rev 5084)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/RdbmsWorkspaceInitializer.java 2011-10-25
09:35:27 UTC (rev 5085)
@@ -24,6 +24,7 @@
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.impl.Constants;
import org.exoplatform.services.jcr.impl.backup.BackupException;
@@ -155,17 +156,23 @@
List<Backupable> backupableComponents =
repository.getWorkspaceContainer(workspaceName).getComponentInstancesOfType(Backupable.class);
- boolean isRepositorySuspended = false;
+ List<WorkspaceContainerFacade> workspacesWaits4Resume = new
ArrayList<WorkspaceContainerFacade>();
+
Throwable throwable = null;
try
{
// set state SUSPENDED to other workspaces if singledb
if (workspaceEntry.getContainer().getParameterBoolean("multi-db") ==
false)
{
- if (repositoryEntry.getWorkspaceEntries().size() != 1)
+ for (WorkspaceEntry we : repositoryEntry.getWorkspaceEntries())
{
- repository.setState(ManageableRepository.SUSPENDED);
- isRepositorySuspended = true;
+ if (!we.getName().equals(workspaceEntry.getName()))
+ {
+ WorkspaceContainerFacade wsContainer =
repository.getWorkspaceContainer(we.getName());
+ wsContainer.setState(ManageableRepository.SUSPENDED);
+
+ workspacesWaits4Resume.add(wsContainer);
+ }
}
}
@@ -228,9 +235,9 @@
try
{
- if (isRepositorySuspended)
+ for (WorkspaceContainerFacade wsContainer : workspacesWaits4Resume)
{
- repository.setState(ManageableRepository.ONLINE);
+ wsContainer.setState(ManageableRepository.ONLINE);
}
}
catch (RepositoryException e)
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java 2011-10-25
08:06:47 UTC (rev 5084)
+++
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java 2011-10-25
09:35:27 UTC (rev 5085)
@@ -29,6 +29,8 @@
import org.exoplatform.services.jcr.util.IdGenerator;
import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
import javax.jcr.RepositoryException;
@@ -119,7 +121,6 @@
}
}
- /* TODO
public void testCreateRepositorySingleDB() throws Exception
{
// prepare
@@ -283,7 +284,7 @@
{
// expected behavior, repository should be missing
}
- }*/
+ }
public void testReserveRepositoryNameException() throws Exception
{
Show replies by date