[exo-jcr-commits] exo-jcr SVN: r4242 - in jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl: rdbms and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Apr 18 05:37:54 EDT 2011
Author: tolusha
Date: 2011-04-18 05:37:53 -0400 (Mon, 18 Apr 2011)
New Revision: 4242
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/FullBackupJob.java
Log:
EXOJCR-1292: Allow to know the current repository status
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-04-18 07:58:53 UTC (rev 4241)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-04-18 09:37:53 UTC (rev 4242)
@@ -18,8 +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.dataflow.DataManager;
import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
@@ -29,8 +31,6 @@
import org.exoplatform.services.jcr.impl.backup.DataRestor;
import org.exoplatform.services.jcr.impl.backup.JCRRestor;
import org.exoplatform.services.jcr.impl.backup.JdbcBackupable;
-import org.exoplatform.services.jcr.impl.backup.ResumeException;
-import org.exoplatform.services.jcr.impl.backup.Suspendable;
import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
@@ -39,10 +39,10 @@
import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import javax.jcr.RepositoryException;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.sql.DataSource;
@@ -77,9 +77,6 @@
// list of data restorers
List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
- // the list of components to resume
- List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
-
try
{
WorkspaceEntry wsEntry = repositoryEntry.getWorkspaceEntries().get(0);
@@ -107,20 +104,8 @@
jdbcConn.setAutoCommit(false);
}
- // suspend all components
- for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
- {
- List<Suspendable> suspendableComponents =
- repositoryService.getRepository(this.repositoryEntry.getName()).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Suspendable.class);
+ repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.SUSPENDED);
- for (Suspendable component : suspendableComponents)
- {
- component.suspend();
- resumeComponents.add(0, component); // ensure that first component will be resumed as last
- }
- }
-
// collect all restorers
for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
{
@@ -161,21 +146,8 @@
}
// resume components
- Iterator<Suspendable> iter = resumeComponents.iterator();
- while (iter.hasNext())
- {
- try
- {
- iter.next().resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
+ repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.ONLINE);
- iter.remove();
- }
-
// incremental restore
for (WorkspaceEntry wEntry : repositoryEntry.getWorkspaceEntries())
{
@@ -232,17 +204,18 @@
}
}
- for (Suspendable component : resumeComponents)
+ try
{
- try
- {
- component.resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component " + component.getClass(), e);
- }
+ repositoryService.getRepository(this.repositoryEntry.getName()).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-04-18 07:58:53 UTC (rev 4241)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingWorkspaceSameConfigRestore.java 2011-04-18 09:37:53 UTC (rev 4242)
@@ -17,7 +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.dataflow.DataManager;
import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
import org.exoplatform.services.jcr.ext.backup.BackupManager;
@@ -26,8 +28,6 @@
import org.exoplatform.services.jcr.impl.backup.Backupable;
import org.exoplatform.services.jcr.impl.backup.DataRestor;
import org.exoplatform.services.jcr.impl.backup.JCRRestor;
-import org.exoplatform.services.jcr.impl.backup.ResumeException;
-import org.exoplatform.services.jcr.impl.backup.Suspendable;
import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
import org.exoplatform.services.log.ExoLogger;
@@ -35,9 +35,10 @@
import java.io.File;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
+import javax.jcr.RepositoryException;
+
/**
* Created by The eXo Platform SAS.
*
@@ -71,22 +72,11 @@
// list of data restorers
List<DataRestor> dataRestorer = new ArrayList<DataRestor>();
- // the list of components to resume
- List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
-
try
{
- // suspend all components
- List<Suspendable> suspendableComponents =
- repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
- .getComponentInstancesOfType(Suspendable.class);
+ repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .setState(ManageableRepository.SUSPENDED);
- for (Suspendable component : suspendableComponents)
- {
- component.suspend();
- resumeComponents.add(0, component); // ensure that first component will be resumed as last
- }
-
// get all restorers
List<Backupable> backupable =
repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
@@ -115,22 +105,9 @@
restorer.commit();
}
- // resume components
- Iterator<Suspendable> iter = resumeComponents.iterator();
- while (iter.hasNext())
- {
- try
- {
- iter.next().resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
+ repositoryService.getRepository(repositoryName).getWorkspaceContainer(wEntry.getName())
+ .setState(ManageableRepository.ONLINE);
- iter.remove();
- }
-
// incremental restore
DataManager dataManager =
(WorkspacePersistentDataManager)repositoryService.getRepository(repositoryName)
@@ -178,17 +155,19 @@
}
}
- for (Suspendable component : resumeComponents)
+ try
{
- try
- {
- component.resume();
- }
- catch (ResumeException e)
- {
- log.error("Can't resume component", e);
- }
+ repositoryService.getRepository(repositoryName).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/FullBackupJob.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/FullBackupJob.java 2011-04-18 07:58:53 UTC (rev 4241)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/rdbms/FullBackupJob.java 2011-04-18 09:37:53 UTC (rev 4242)
@@ -19,16 +19,12 @@
package org.exoplatform.services.jcr.ext.backup.impl.rdbms;
import org.exoplatform.commons.utils.PrivilegedFileHelper;
-import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.ext.backup.BackupConfig;
import org.exoplatform.services.jcr.ext.backup.impl.AbstractFullBackupJob;
import org.exoplatform.services.jcr.ext.backup.impl.FileNameProducer;
import org.exoplatform.services.jcr.impl.backup.BackupException;
import org.exoplatform.services.jcr.impl.backup.Backupable;
-import org.exoplatform.services.jcr.impl.backup.ResumeException;
-import org.exoplatform.services.jcr.impl.backup.SuspendException;
-import org.exoplatform.services.jcr.impl.backup.Suspendable;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -36,7 +32,6 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
-import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -54,11 +49,6 @@
protected static Log log = ExoLogger.getLogger("exo.jcr.component.ext.FullBackupJob");
/**
- * Workspace configuration.
- */
- private WorkspaceEntry workspaceEntry;
-
- /**
* {@inheritDoc}
*/
@Override
@@ -104,35 +94,10 @@
{
notifyListeners();
- List<Suspendable> suspendableComponents =
- repository.getWorkspaceContainer(workspaceName).getComponentInstancesOfType(Suspendable.class);
-
- // the list of components to resume
- List<Suspendable> resumeComponents = new ArrayList<Suspendable>();
-
try
{
- for (WorkspaceEntry entry : repository.getConfiguration().getWorkspaceEntries())
- {
- if (entry.getName().equals(workspaceName))
- {
- workspaceEntry = entry;
- break;
- }
- }
+ repository.getWorkspaceContainer(workspaceName).setState(ManageableRepository.SUSPENDED);
- if (workspaceEntry == null)
- {
- throw new RepositoryException("Workpace [" + workspaceName + "] is absent in repository configuration");
- }
-
- // suspend all components
- for (Suspendable component : suspendableComponents)
- {
- component.suspend();
- resumeComponents.add(0, component); // ensure that first component will be resumed as last
- }
-
List<Backupable> backupableComponents =
repository.getWorkspaceContainer(workspaceName).getComponentInstancesOfType(Backupable.class);
@@ -142,11 +107,6 @@
component.backup(new File(getStorageURL().getFile()));
}
}
- catch (SuspendException e)
- {
- log.error("Full backup failed " + getStorageURL().getPath(), e);
- notifyError("Full backup failed", e);
- }
catch (BackupException e)
{
log.error("Full backup failed " + getStorageURL().getPath(), e);
@@ -159,18 +119,15 @@
}
finally
{
- for (Suspendable component : resumeComponents)
+ try
{
- try
- {
- component.resume();
- }
- catch (ResumeException e)
- {
- log.error("Full backup failed " + getStorageURL().getPath(), e);
- notifyError("Full backup failed", e);
- }
+ repository.getWorkspaceContainer(workspaceName).setState(ManageableRepository.ONLINE);
}
+ catch (RepositoryException e)
+ {
+ log.error("Full backup failed " + getStorageURL().getPath(), e);
+ notifyError("Full backup failed", e);
+ }
}
state = FINISHED;
More information about the exo-jcr-commits
mailing list