[exo-jcr-commits] exo-jcr SVN: r3616 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Dec 8 04:32:43 EST 2010


Author: areshetnyak
Date: 2010-12-08 04:32:42 -0500 (Wed, 08 Dec 2010)
New Revision: 3616

Added:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsBackupWorkspaceInitializer.java
Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializer.java
Log:
EXOJCR-1078 : Add RdbmsBackupWorkspaceInitializer.

Added: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsBackupWorkspaceInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsBackupWorkspaceInitializer.java	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsBackupWorkspaceInitializer.java	2010-12-08 09:32:42 UTC (rev 3616)
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2003-2010 eXo Platform SAS.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see<http://www.gnu.org/licenses/>.
+ */
+package org.exoplatform.services.jcr.impl.core;
+
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+
+import org.exoplatform.services.jcr.access.AccessManager;
+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.datamodel.NodeData;
+import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.nodetype.NodeTypeManagerImpl;
+import org.exoplatform.services.jcr.impl.core.value.ValueFactoryImpl;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.CacheableWorkspaceDataManager;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+
+/**
+ * Created by The eXo Platform SAS.
+ * 
+ * <br/>Date: 2010
+ *
+ * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a> 
+ * @version $Id$
+ */
+public class RdbmsBackupWorkspaceInitializer
+   extends RdbmsWorkspaceInitializer
+{
+   /**
+    * Logger.
+    */
+   protected static final Log log = ExoLogger.getLogger("exo.jcr.component.core.RdbmsBackupWorkspaceInitializer");
+
+   /**
+    * Constructor RdbmsBackupWorkspaceInitializer.
+    */
+   public RdbmsBackupWorkspaceInitializer(WorkspaceEntry config, RepositoryEntry repConfig,
+            CacheableWorkspaceDataManager dataManager, NamespaceRegistryImpl namespaceRegistry,
+            LocationFactory locationFactory, NodeTypeManagerImpl nodeTypeManager, ValueFactoryImpl valueFactory,
+            AccessManager accessManager) throws RepositoryConfigurationException, PathNotFoundException,
+            RepositoryException
+   {
+      super(config, repConfig, dataManager, namespaceRegistry, locationFactory, nodeTypeManager, valueFactory,
+               accessManager);
+   }
+
+
+   /**
+    * {@inheritDoc}
+    */
+   public NodeData initWorkspace() throws RepositoryException
+   {
+      if (isWorkspaceInitialized())
+      {
+         return (NodeData) dataManager.getItemData(Constants.ROOT_UUID);
+      }
+
+      long start = System.currentTimeMillis();
+
+      rdbmsRestore();
+
+      // restore from incremental backup
+      incrementalRead();
+
+      final NodeData root = (NodeData) dataManager.getItemData(Constants.ROOT_UUID);
+
+      log.info("Workspace [" + workspaceName + "] restored from storage " + restorePath + " in "
+               + (System.currentTimeMillis() - start) * 1d / 1000 + "sec");
+
+      return root;
+   }
+
+}


Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsBackupWorkspaceInitializer.java
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializer.java	2010-12-07 15:38:28 UTC (rev 3615)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/RdbmsWorkspaceInitializer.java	2010-12-08 09:32:42 UTC (rev 3616)
@@ -18,6 +18,28 @@
  */
 package org.exoplatform.services.jcr.impl.core;
 
+import java.io.ByteArrayInputStream;
+import java.io.EOFException;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.PrivilegedExceptionAction;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jcr.PathNotFoundException;
+import javax.jcr.RepositoryException;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+
 import org.exoplatform.commons.utils.PrivilegedFileHelper;
 import org.exoplatform.commons.utils.SecurityHelper;
 import org.exoplatform.services.jcr.access.AccessManager;
@@ -41,33 +63,12 @@
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
-import java.io.ByteArrayInputStream;
-import java.io.EOFException;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.security.PrivilegedExceptionAction;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jcr.PathNotFoundException;
-import javax.jcr.RepositoryException;
-import javax.naming.InitialContext;
-import javax.naming.NameNotFoundException;
-import javax.naming.NamingException;
-import javax.sql.DataSource;
-
 /**
  * @author <a href="mailto:anatoliy.bazko at gmail.com">Anatoliy Bazko</a>
  * @version $Id: RdbmsWorkspaceInitializer.java 34360 2009-07-22 23:58:59Z tolusha $
  */
-public class RdbmsWorkspaceInitializer extends BackupWorkspaceInitializer
+public class RdbmsWorkspaceInitializer
+   extends BackupWorkspaceInitializer
 {
    /**
     * Logger.
@@ -139,7 +140,6 @@
    /**
     * {@inheritDoc}
     */
-   @Override
    public NodeData initWorkspace() throws RepositoryException
    {
       if (isWorkspaceInitialized())
@@ -147,13 +147,25 @@
          return (NodeData)dataManager.getItemData(Constants.ROOT_UUID);
       }
 
+      long start = System.currentTimeMillis();
+
+      rdbmsRestore();
+
+      final NodeData root = (NodeData) dataManager.getItemData(Constants.ROOT_UUID);
+
+      log.info("Workspace [" + workspaceName + "] restored from storage " + restorePath + " in "
+               + (System.currentTimeMillis() - start) * 1d / 1000 + "sec");
+
+      return root;
+   }
+
+   protected void rdbmsRestore() throws RepositoryException
+   {
       Connection jdbcConn = null;
       Integer transactionIsolation = null;
       Statement st = null;
       try
       {
-         long start = System.currentTimeMillis();
-
          String dsName = workspaceEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME);
          if (dsName == null)
          {
@@ -248,17 +260,6 @@
 
          restoreValueStorage();
          restoreIndex();
-
-         // restore from incremental backup
-         incrementalRead();
-
-         final NodeData root = (NodeData)dataManager.getItemData(Constants.ROOT_UUID);
-
-         log.info("Workspace [" + workspaceName + "] restored from storage " + restorePath + " in "
-            + (System.currentTimeMillis() - start) * 1d / 1000 + "sec");
-
-         return root;
-
       }
       catch (RepositoryConfigurationException e)
       {



More information about the exo-jcr-commits mailing list