[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