[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