[exo-jcr-commits] exo-jcr SVN: r4185 - in jcr/trunk/exo.jcr.component.ext: src/main/java/org/exoplatform/services/jcr/ext/repository/creation and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Mar 29 03:42:39 EDT 2011


Author: tolusha
Date: 2011-03-29 03:42:36 -0400 (Tue, 29 Mar 2011)
New Revision: 4185

Modified:
   jcr/trunk/exo.jcr.component.ext/pom.xml
   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/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java
   jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java
Log:
EXOJCR-1281: Create database without datasource prefix in case of SingleDB

Modified: jcr/trunk/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.ext/pom.xml	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/pom.xml	2011-03-29 07:42:36 UTC (rev 4185)
@@ -190,6 +190,7 @@
               <include>**/backup/load/TestLoadBackup.java</include>
               <include>**/backup/*.java</include>
               <include>**/backup/server/*.java</include>
+              <include>**/repository/creation/*.java</include>
             </includes>
             <excludes>
               <exclude>**/BaseStandaloneTest.java</exclude>

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-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -427,7 +427,9 @@
          Map<String, String> refAddr = null;
          try
          {
-            DBConnectionInfo dbConnectionInfo = dbCreator.createDatabase(rEntry.getName() + "_" + dataSource);
+            DBConnectionInfo dbConnectionInfo =
+               dbCreator.createDatabase(rEntry.getName() + (dataSourceNames.size() == 1 ? "" : "_" + dataSource));
+
             refAddr = dbConnectionInfo.getProperties();
          }
          catch (DBCreatorException e)

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -18,6 +18,8 @@
  */
 package org.exoplatform.services.jcr.ext.backup;
 
+import org.exoplatform.container.xml.InitParams;
+import org.exoplatform.container.xml.PropertiesParam;
 import org.exoplatform.services.jcr.config.ContainerEntry;
 import org.exoplatform.services.jcr.config.QueryHandlerEntry;
 import org.exoplatform.services.jcr.config.QueryHandlerParams;
@@ -30,6 +32,9 @@
 import org.exoplatform.services.jcr.core.ManageableRepository;
 import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
 import org.exoplatform.services.jcr.ext.BaseStandaloneTest;
+import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
+import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
+import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
 import org.exoplatform.services.jcr.impl.RepositoryServiceImpl;
 import org.exoplatform.services.jcr.impl.clean.rdbms.DBCleanService;
 import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
@@ -38,9 +43,12 @@
 import org.exoplatform.services.jcr.impl.core.query.SystemSearchManager;
 import org.exoplatform.services.jcr.impl.storage.value.fs.FileValueStorage;
 import org.exoplatform.services.jcr.impl.util.io.DirectoryHelper;
+import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
 
 import java.io.File;
 import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -66,12 +74,16 @@
 public abstract class AbstractBackupTestCase extends BaseStandaloneTest
 {
 
+   protected TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
+
+   protected File blob;
+
+   protected ExtendedBackupManager backup;
+
    protected SessionImpl ws1Session;
 
    protected Node ws1TestRoot;
 
-   protected ExtendedBackupManager backup;
-
    protected String repositoryNameToBackup = "db7";
 
    protected String workspaceNameToBackup = "ws1";
@@ -104,10 +116,59 @@
       super.setUp();// this
 
       backup = getBackupManager();
+      blob = createBLOBTempFile(300);
    }
 
    protected abstract ExtendedBackupManager getBackupManager();
 
+   protected ExtendedBackupManager getJCRBackupManager()
+   {
+      if (backup == null)
+      {
+         InitParams initParams = new InitParams();
+         PropertiesParam pps = new PropertiesParam();
+         pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
+            "org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob");
+         pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
+            "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
+         pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup");
+         pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
+
+         initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
+
+         BackupManagerImpl backup = new BackupManagerImpl(initParams, repositoryService);
+         backup.start();
+
+         return backup;
+      }
+
+      return backup;
+   }
+
+   protected ExtendedBackupManager getRDBMSBackupManager()
+   {
+      if (backup == null)
+      {
+         InitParams initParams = new InitParams();
+         PropertiesParam pps = new PropertiesParam();
+         pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
+            "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
+         pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
+            "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
+         pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup");
+         pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
+
+         initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
+
+         BackupManagerImpl backup = new BackupManagerImpl(initParams, repositoryService);
+         backup.start();
+
+         return backup;
+      }
+
+      return backup;
+   }
+
    protected RepositoryImpl getReposityToBackup() throws RepositoryException, RepositoryConfigurationException
    {
       return (RepositoryImpl) repositoryService.getRepository(repositoryNameToBackup);
@@ -562,4 +623,102 @@
 
       return sessionRegistry.closeSessions(workspaceName);
    }
+
+   public void waitEndOfBackup(BackupChain bch) throws Exception
+   {
+      while (bch.getFullBackupState() != BackupChain.FINISHED)
+      {
+         Thread.yield();
+         Thread.sleep(50);
+      }
+   }
+
+   public void waitEndOfBackup(RepositoryBackupChain bch) throws Exception
+   {
+      while (bch.getState() != RepositoryBackupChain.FINISHED
+         && bch.getState() != RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING)
+      {
+         Thread.yield();
+         Thread.sleep(50);
+      }
+   }
+
+   public void waitEndOfRestore(String repositoryName) throws Exception
+   {
+      while (backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
+         && backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
+      {
+         Thread.sleep(50);
+      }
+   }
+
+   public void waitEndOfRestore(String repositoryName, String workspaceName) throws Exception
+   {
+      while (backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_SUCCESSFUL
+         && backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_FAIL)
+      {
+         Thread.sleep(50);
+      }
+   }
+
+   public void addIncrementalConent(ManageableRepository repository, String wsName) throws Exception
+   {
+      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+      Node rootNode = session.getRootNode().addNode("testIncremental");
+
+      // add some changes which will be logged in incremental log
+      rootNode.addNode("node1").setProperty("prop1", "value1");
+      rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
+      rootNode.addNode("node3").addMixin("mix:lockable");
+      session.save();
+   }
+
+   public void addConent(ManageableRepository repository, String wsName) throws Exception
+   {
+      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+      Node rootNode = session.getRootNode().addNode("test");
+
+      // add some changes which will be logged in incremental log
+      rootNode.addNode("node1").setProperty("prop1", "value1");
+      rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
+      rootNode.addNode("node3").addMixin("mix:lockable");
+      session.save();
+   }
+
+   public void checkConent(ManageableRepository repository, String wsName) throws Exception
+   {
+      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+
+      Node rootNode = session.getRootNode().getNode("test");
+      assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+
+      InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
+      try
+      {
+         compareStream(new FileInputStream(blob), in);
+      }
+      finally
+      {
+         in.close();
+      }
+   }
+
+   public void checkIncrementalConent(ManageableRepository repository, String wsName) throws Exception
+   {
+      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+
+      Node rootNode = session.getRootNode().getNode("testIncremental");
+      assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+
+      InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
+      try
+      {
+         compareStream(new FileInputStream(blob), in);
+      }
+      finally
+      {
+         in.close();
+      }
+   }
+
 }

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -22,17 +22,11 @@
 import org.exoplatform.services.jcr.core.ManageableRepository;
 import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
 import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
-import org.exoplatform.services.jcr.impl.core.SessionImpl;
 import org.exoplatform.services.jcr.util.IdGenerator;
-import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
 import java.util.Map;
 
-import javax.jcr.Node;
-
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -44,17 +38,6 @@
 public abstract class AbstractBackupUseCasesTest extends AbstractBackupTestCase
 {
    
-   private File blob;
-
-   private TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
-
-   @Override
-   public void setUp() throws Exception
-   {
-      super.setUp();
-      blob = createBLOBTempFile(300);
-   }
-
    public void testFullBackupRestore() throws Exception
    {
       // prepare
@@ -1206,102 +1189,4 @@
       checkConent(repositoryService.getRepository(config.getRepository()),
          repositoryService.getRepository(config.getRepository()).getConfiguration().getSystemWorkspaceName());
    }
-
-   public void waitEndOfBackup(BackupChain bch) throws Exception
-   {
-      while (bch.getFullBackupState() != BackupChain.FINISHED)
-      {
-         Thread.yield();
-         Thread.sleep(50);
-      }
-   }
-
-   public void waitEndOfBackup(RepositoryBackupChain bch) throws Exception
-   {
-      while (bch.getState() != RepositoryBackupChain.FINISHED
-         && bch.getState() != RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING)
-      {
-         Thread.yield();
-         Thread.sleep(50);
-      }
-   }
-
-   
-   public void waitEndOfRestore(String repositoryName) throws Exception
-   {
-      while (backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
-         && backup.getLastRepositoryRestore(repositoryName).getStateRestore() != JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
-      {
-         Thread.sleep(50);
-      }
-   }
-
-   public void waitEndOfRestore(String repositoryName, String workspaceName) throws Exception
-   {
-      while (backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_SUCCESSFUL
-         && backup.getLastRestore(repositoryName, workspaceName).getStateRestore() != JobWorkspaceRestore.RESTORE_FAIL)
-      {
-         Thread.sleep(50);
-      }
-   }
-
-   public void addIncrementalConent(ManageableRepository repository, String wsName) throws Exception
-   {
-      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-      Node rootNode = session.getRootNode().addNode("testIncremental");
-
-      // add some changes which will be logged in incremental log
-      rootNode.addNode("node1").setProperty("prop1", "value1");
-      rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
-      rootNode.addNode("node3").addMixin("mix:lockable");
-      session.save();
-   }
-
-   public void addConent(ManageableRepository repository, String wsName) throws Exception
-   {
-      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-      Node rootNode = session.getRootNode().addNode("test");
-
-      // add some changes which will be logged in incremental log
-      rootNode.addNode("node1").setProperty("prop1", "value1");
-      rootNode.addNode("node2").setProperty("prop2", new FileInputStream(blob));
-      rootNode.addNode("node3").addMixin("mix:lockable");
-      session.save();
-   }
-
-   public void checkConent(ManageableRepository repository, String wsName) throws Exception
-   {
-      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-
-      Node rootNode = session.getRootNode().getNode("test");
-      assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
-
-      InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
-      try
-      {
-         compareStream(new FileInputStream(blob), in);
-      }
-      finally
-      {
-         in.close();
-      }
-   }
-
-   public void checkIncrementalConent(ManageableRepository repository, String wsName) throws Exception
-   {
-      SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
-
-      Node rootNode = session.getRootNode().getNode("testIncremental");
-      assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
-
-      InputStream in = rootNode.getNode("node2").getProperty("prop2").getStream();
-      try
-      {
-         compareStream(new FileInputStream(blob), in);
-      }
-      finally
-      {
-         in.close();
-      }
-   }
 }

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/BaseRDBMSBackupTest.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -16,9 +16,6 @@
  */
 package org.exoplatform.services.jcr.ext.backup;
 
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
 
 /**
  * Created by The eXo Platform SAS.
@@ -28,26 +25,11 @@
  * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a> 
  * @version $Id$
  */
-public class BaseRDBMSBackupTest
-   extends AbstractBackupTestCase
+public class BaseRDBMSBackupTest extends AbstractBackupTestCase
 {
    @Override
    protected ExtendedBackupManager getBackupManager()
    {
-      InitParams initParams = new InitParams();
-      PropertiesParam pps = new PropertiesParam();
-      pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
-               "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
-      pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
-               "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
-      pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_BaseRDBMSBackupTest");
-      pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
-      initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
-      BackupManagerImpl backupManagerImpl = new BackupManagerImpl(initParams, repositoryService);
-      backupManagerImpl.start();
-
-      return backupManagerImpl;
+      return getRDBMSBackupManager();
    }
 }

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -18,9 +18,6 @@
  */
 package org.exoplatform.services.jcr.ext.backup;
 
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
 
 
 /**
@@ -31,33 +28,12 @@
  * @author <a href="mailto:peter.nedonosko at exoplatform.com.ua">Peter Nedonosko</a>
  * @version $Id: TestBackupManager.java 760 2008-02-07 15:08:07Z pnedonosko $
  */
-public class TestBackupManager
-   extends AbstractBackupUseCasesTest
+public class TestBackupManager extends AbstractBackupUseCasesTest
 {
 
-   private BackupManagerImpl backup;
-
    @Override
    protected ExtendedBackupManager getBackupManager()
    {
-      if (backup == null)
-      {
-
-         InitParams initParams = new InitParams();
-         PropertiesParam pps = new PropertiesParam();
-         pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
-            "org.exoplatform.services.jcr.ext.backup.impl.fs.FullBackupJob");
-         pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
-            "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
-         pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_testBackupManager");
-         pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
-         initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
-         backup = new BackupManagerImpl(initParams, repositoryService);
-         backup.start();
-      }
-
-      return backup;
+      return getJCRBackupManager();
    }
 }

Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java	2011-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRDBMSBackupManager.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -16,9 +16,6 @@
  */
 package org.exoplatform.services.jcr.ext.backup;
 
-import org.exoplatform.container.xml.InitParams;
-import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
 
 /**
  * Created by The eXo Platform SAS.
@@ -31,29 +28,10 @@
 public class TestRDBMSBackupManager extends AbstractBackupUseCasesTest
 {
 
-   private BackupManagerImpl backup;
-
    @Override
    protected ExtendedBackupManager getBackupManager()
    {
-      if (backup == null)
-      {
-         InitParams initParams = new InitParams();
-         PropertiesParam pps = new PropertiesParam();
-         pps.setProperty(BackupManagerImpl.FULL_BACKUP_TYPE,
-            "org.exoplatform.services.jcr.ext.backup.impl.rdbms.FullBackupJob");
-         pps.setProperty(BackupManagerImpl.INCREMENTAL_BACKUP_TYPE,
-            "org.exoplatform.services.jcr.ext.backup.impl.fs.IncrementalBackupJob");
-         pps.setProperty(BackupManagerImpl.BACKUP_DIR, "target/backup_testRDBMSBackupManager");
-         pps.setProperty(BackupManagerImpl.DEFAULT_INCREMENTAL_JOB_PERIOD, "3600");
-
-         initParams.put(BackupManagerImpl.BACKUP_PROPERTIES, pps);
-
-         backup = new BackupManagerImpl(initParams, repositoryService);
-         backup.start();
-      }
-
-      return backup;
+      return getRDBMSBackupManager();
    }
 
 }

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-03-28 17:45:23 UTC (rev 4184)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/TestRepositoryCreationService.java	2011-03-29 07:42:36 UTC (rev 4185)
@@ -19,19 +19,17 @@
 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.ext.backup.AbstractBackupTestCase;
 import org.exoplatform.services.jcr.ext.backup.BackupManager;
 import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
 import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChain;
 import org.exoplatform.services.jcr.ext.backup.RepositoryBackupConfig;
-import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
-import org.exoplatform.services.jcr.impl.core.SessionImpl;
+import org.exoplatform.services.jcr.util.IdGenerator;
 
 import java.io.File;
 
-import javax.jcr.Node;
-
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -43,86 +41,107 @@
 public class TestRepositoryCreationService extends AbstractBackupTestCase
 {
 
-   protected ExtendedBackupManager getBackupManager()
+   public void testCreateRepositoryMultiDB() throws Exception
    {
-      return (ExtendedBackupManager)container.getComponentInstanceOfType(BackupManager.class);
-   }
+      // prepare
+      ManageableRepository repository = helper.createRepository(container, true, null);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+      helper.addWorkspace(repository, wsEntry);
+      addConent(repository, wsEntry.getName());
 
-   public void testCreateRepository() throws Exception
-   {
-
       // backup
       File backDir = new File("target/backup");
       backDir.mkdirs();
 
-      RepositoryImpl repository = getReposityToBackup();
-
       RepositoryBackupConfig config = new RepositoryBackupConfig();
-      config.setRepository(repository.getName());
+      config.setRepository(repository.getConfiguration().getName());
       config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
       config.setBackupDir(backDir);
 
-      backup.startBackup(config);
+      RepositoryBackupChain bch = backup.startBackup(config);
+      waitEndOfBackup(bch);
+      backup.stopBackup(bch);
 
-      RepositoryBackupChain bch = backup.findRepositoryBackup(repository.getName());
+      // restore with RepositoryCreatorService
+      RepositoryCreationService creatorService =
+         (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+      assertNotNull(creatorService);
 
-      backup.getRepositoryBackupsLogs();
+      String tenantName = "new_repository_mutli-db";
+      String repoToken = creatorService.reserveRepositoryName(tenantName);
 
-      // wait till full backup will be stopped
-      while (bch.getState() != RepositoryBackupChain.FINISHED)
-      {
-         Thread.yield();
-         Thread.sleep(50);
-      }
+      // restore             
+      RepositoryEntry newRE =
+         helper.createRepositoryEntry(true, repository.getConfiguration().getSystemWorkspaceName(),
+            IdGenerator.generate());
+      newRE.setName(tenantName);
 
-      // stop fullBackup
+      WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(true, IdGenerator.generate());
+      newWSEntry.setName(wsEntry.getName());
+      newRE.addWorkspace(newWSEntry);
 
-      if (bch != null)
-         backup.stopBackup(bch);
-      else
-         fail("Can't get fullBackup chain");
+      creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
 
+      // check
+      ManageableRepository restoredRepository = repositoryService.getRepository(tenantName);
+      assertNotNull(restoredRepository);
+      
+      checkConent(restoredRepository, wsEntry.getName());
+
+      //check repositoryConfiguration
+      RepositoryService repoService = (RepositoryService)this.container.getComponentInstance(RepositoryService.class);
+      assertNotNull(repoService.getConfig().getRepositoryConfiguration(tenantName));
+   }
+
+   public void testCreateRepositorySingleDB() throws Exception
+   {
+      // prepare
+      String dsName = helper.createDatasource();
+      ManageableRepository repository = helper.createRepository(container, false, dsName);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+      helper.addWorkspace(repository, wsEntry);
+      addConent(repository, wsEntry.getName());
+
+      // backup
+      File backDir = new File("target/backup");
+      backDir.mkdirs();
+
+      RepositoryBackupConfig config = new RepositoryBackupConfig();
+      config.setRepository(repository.getConfiguration().getName());
+      config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+      config.setBackupDir(backDir);
+
+      RepositoryBackupChain bch = backup.startBackup(config);
+      waitEndOfBackup(bch);
+      backup.stopBackup(bch);
+
       // restore with RepositoryCreatorService
       RepositoryCreationService creatorService =
          (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+      assertNotNull(creatorService);
 
-      String tenantName = "new_repository";
-
+      String tenantName = "new_repository_single-db";
       String repoToken = creatorService.reserveRepositoryName(tenantName);
 
       // restore             
-      RepositoryEntry baseRE =
-         (RepositoryEntry)ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
+      String newDSName = IdGenerator.generate();
 
-      RepositoryEntry rEntry = makeRepositoryEntry(tenantName, baseRE, "source", null);
+      RepositoryEntry newRE =
+         helper.createRepositoryEntry(false, repository.getConfiguration().getSystemWorkspaceName(), newDSName);
+      newRE.setName(tenantName);
 
-      creatorService.createRepository(bch.getBackupId(), rEntry, repoToken);
+      WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(false, newDSName);
+      newWSEntry.setName(wsEntry.getName());
+      newRE.addWorkspace(newWSEntry);
 
+      creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
+
       // check
       ManageableRepository restoredRepository = repositoryService.getRepository(tenantName);
       assertNotNull(restoredRepository);
 
-      for (String wsName : restoredRepository.getWorkspaceNames())
-      {
-         SessionImpl back = null;
-         try
-         {
-            back = (SessionImpl)restoredRepository.login(credentials, wsName);
-            Node ws1backTestRoot = back.getRootNode().getNode("backupTest");
-            assertEquals("Restored content should be same", "property-5", ws1backTestRoot.getNode("node_5")
-               .getProperty("exo:data").getString());
-         }
-         catch (Exception e)
-         {
-            e.printStackTrace();
-            fail(e.getMessage());
-         }
-         finally
-         {
-            if (back != null)
-               back.logout();
-         }
-      }
+      checkConent(restoredRepository, wsEntry.getName());
+
       //check repositoryConfiguration
       RepositoryService repoService = (RepositoryService)this.container.getComponentInstance(RepositoryService.class);
       assertNotNull(repoService.getConfig().getRepositoryConfiguration(tenantName));
@@ -164,10 +183,12 @@
    public void testCreateRepositoryException() throws Exception
    {
       String tenantName = "new_repository_3";
-      RepositoryEntry baseRE =
-         (RepositoryEntry)ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
 
-      RepositoryEntry rEntry = makeRepositoryEntry(tenantName, baseRE, "source2", null);
+      // prepare
+      ManageableRepository repository = helper.createRepository(container, true, null);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+      helper.addWorkspace(repository, wsEntry);
+      addConent(repository, wsEntry.getName());
 
       RepositoryCreationService creatorService =
          (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
@@ -175,43 +196,67 @@
       // 1) try to create with unregistered token
       try
       {
-         creatorService.createRepository("nomatter", rEntry, "any_name");
+         creatorService.createRepository("nomatter", repository.getConfiguration(), "any_name");
          fail("There must be RepositoryCreationException.");
       }
       catch (RepositoryCreationException e)
       {
          //ok
       }
+   }
 
+   public void testCreateRepositoryMultiDBExistingDS() throws Exception
+   {
+      // prepare
+      ManageableRepository repository = helper.createRepository(container, true, null);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, null);
+      helper.addWorkspace(repository, wsEntry);
+      addConent(repository, wsEntry.getName());
+
+      // backup
+      File backDir = new File("target/backup");
+      backDir.mkdirs();
+
+      RepositoryBackupConfig config = new RepositoryBackupConfig();
+      config.setRepository(repository.getConfiguration().getName());
+      config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+      config.setBackupDir(backDir);
+
+      RepositoryBackupChain bch = backup.startBackup(config);
+      waitEndOfBackup(bch);
+      backup.stopBackup(bch);
+
+      // restore with RepositoryCreatorService
+      RepositoryCreationService creatorService =
+         (RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
+      assertNotNull(creatorService);
+
+      String tenantName = "new_repository_mutli-db_existing_ds";
       String repoToken = creatorService.reserveRepositoryName(tenantName);
-      // 2) test with malformed repository entry
 
-      RepositoryEntry brokenRepositoryEntry = rEntry;
+      // restore             
+      RepositoryEntry newRE =
+         helper.createRepositoryEntry(true, repository.getConfiguration().getSystemWorkspaceName(), null);
+      newRE.setName(tenantName);
 
-      brokenRepositoryEntry.getWorkspaceEntries().get(0).getContainer().getParameters().remove(0);
-      brokenRepositoryEntry.getWorkspaceEntries().get(0).getContainer().getParameters().remove(0);
+      WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(true, null);
+      newWSEntry.setName(wsEntry.getName());
+      newRE.addWorkspace(newWSEntry);
 
       try
       {
-         creatorService.createRepository("nomatter", brokenRepositoryEntry, repoToken);
-         fail("There must be RepositoryConfigurationException.");
+         creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
+         fail("Exception should be thrown");
       }
       catch (RepositoryConfigurationException e)
       {
-         //ok
+         // ok
       }
+   }
 
-      repoToken = creatorService.reserveRepositoryName(tenantName);
-      // 3) test configuration with existing datasource
-      RepositoryEntry rEntryWithRealDataSource = makeRepositoryEntry(tenantName, baseRE, null, null);
-      try
-      {
-         creatorService.createRepository("nomatter", rEntryWithRealDataSource, repoToken);
-         fail("There must be RepositoryConfigurationException.");
-      }
-      catch (RepositoryConfigurationException e)
-      {
-         //ok
-      }
+   @Override
+   protected ExtendedBackupManager getBackupManager()
+   {
+      return getRDBMSBackupManager();
    }
 }



More information about the exo-jcr-commits mailing list