[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