[exo-jcr-commits] exo-jcr SVN: r4573 - jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Jul 1 05:50:10 EDT 2011
Author: tolusha
Date: 2011-07-01 05:50:10 -0400 (Fri, 01 Jul 2011)
New Revision: 4573
Added:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode1.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode2.java
Log:
EXOJCR-1398: Add cluster tests
Added: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode1.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode1.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode1.java 2011-07-01 09:50:10 UTC (rev 4573)
@@ -0,0 +1,117 @@
+/*
+ * 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.ext.repository.creation.cluster;
+
+import org.exoplatform.services.jcr.RepositoryService;
+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.ext.repository.creation.DBCreationProperties;
+import org.exoplatform.services.jcr.ext.repository.creation.RepositoryCreationService;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * <br/>Date:
+ *
+ * @author <a href="karpenko.sergiy at gmail.com">Karpenko Sergiy</a>
+ * @version $Id: TestRepositoryCreationService.java 111 2008-11-11 11:11:11Z serg $
+ */
+public class TestRepositoryCreationServiceInClusterNode1 extends AbstractBackupTestCase
+{
+ public void testCreateRepositorySingleDBWithSpecificCreationProps() throws Exception
+ {
+ log.info("Node1: Waits the second node");
+ Thread.sleep(60000);
+
+ Map<String, String> connProps = new HashMap<String, String>();
+ connProps.put("driverClassName", "com.mysql.jdbc.Driver");
+ connProps.put("username", "root");
+ connProps.put("password", "24635457");
+
+ DBCreationProperties creationProps =
+ new DBCreationProperties("jdbc:mysql://localhost/", connProps,
+ "src/test/resources/test-mysql.sql", "user1", "pass1");
+
+ // 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 = "tenant_2";
+ String repoToken = creatorService.reserveRepositoryName(tenantName);
+
+ // restore
+ RepositoryEntry newRE =
+ helper.createRepositoryEntry(false, repository.getConfiguration().getSystemWorkspaceName(), tenantName);
+ newRE.setName(tenantName);
+
+ WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(false, tenantName);
+ newWSEntry.setName(wsEntry.getName());
+ newRE.addWorkspace(newWSEntry);
+
+ creatorService.createRepository(bch.getBackupId(), newRE, repoToken, creationProps);
+
+ // 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));
+
+ log.info("Node1: Repository has been created");
+ Thread.sleep(100000);
+ }
+
+ @Override
+ protected ExtendedBackupManager getBackupManager()
+ {
+ return getRDBMSBackupManager();
+ }
+}
Added: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode2.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode2.java (rev 0)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/creation/cluster/TestRepositoryCreationServiceInClusterNode2.java 2011-07-01 09:50:10 UTC (rev 4573)
@@ -0,0 +1,59 @@
+/*
+ * 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.ext.repository.creation.cluster;
+
+import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.ext.backup.AbstractBackupTestCase;
+import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
+import org.exoplatform.services.jcr.impl.core.SessionImpl;
+
+/**
+ * Created by The eXo Platform SAS.
+ *
+ * <br/>Date:
+ *
+ * @author <a href="karpenko.sergiy at gmail.com">Karpenko Sergiy</a>
+ * @version $Id: TestRepositoryCreationService.java 111 2008-11-11 11:11:11Z serg $
+ */
+public class TestRepositoryCreationServiceInClusterNode2 extends AbstractBackupTestCase
+{
+ public void testCreateRepositorySingleDBWithSpecificCreationProps() throws Exception
+ {
+ log.info("Node2: Waits for the repository creation");
+ Thread.sleep(60000);
+
+ String tenantName = "tenant_2";
+
+ // check
+ ManageableRepository restoredRepository = repositoryService.getRepository(tenantName);
+ assertNotNull(restoredRepository);
+
+ SessionImpl session =
+ (SessionImpl)restoredRepository.login(credentials, restoredRepository.getConfiguration()
+ .getSystemWorkspaceName());
+ session.getRootNode();
+
+ log.info("Node2: test passed. I have root node");
+ Thread.sleep(100000);
+ }
+
+ @Override
+ protected ExtendedBackupManager getBackupManager()
+ {
+ return getRDBMSBackupManager();
+ }
+}
More information about the exo-jcr-commits
mailing list