[exo-jcr-commits] exo-jcr SVN: r5901 - in jcr/branches/1.15.x: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms and 12 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Mar 20 03:16:59 EDT 2012


Author: tolusha
Date: 2012-03-20 03:16:57 -0400 (Tue, 20 Mar 2012)
New Revision: 5901

Modified:
   jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-configuration.xml
   jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
   jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/test-jcr-config.xml
   jcr/branches/1.15.x/exo.jcr.component.core/pom.xml
   jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
   jcr/branches/1.15.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
   jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration-jbc.xml
   jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config-jbc.xml
   jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-ijdbc-jbc.xml
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml
   jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-jcr-ext-config.xml
   jcr/branches/1.15.x/exo.jcr.component.ftp/src/test/resources/conf/standalone/test-jcr-config.xml
   jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml
   jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-jcr-config.xml
   jcr/branches/1.15.x/exo.jcr.framework.command/src/test/resources/conf/standalone/test-jcr-framework-config.xml
Log:
EXOJCR-1808: make configuration with isolated tables as default in all tests

Modified: jcr/branches/1.15.x/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/pom.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/pom.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -30,12 +30,12 @@
    <name>eXo JCR :: Component :: Core Service</name>
    <description>eXo JCR Service core component</description>
    <properties>
-      <jcr.test.configuration.file>/conf/standalone/test-configuration-jbc.xml</jcr.test.configuration.file>
+      <jcr.test.configuration.file>/conf/standalone/test-configuration-ijdbc-jbc.xml</jcr.test.configuration.file>
       <jbosscache.shareable>true</jbosscache.shareable>
       <cache.enabled>true</cache.enabled>
       <value.storage.enabled>true</value.storage.enabled>
       <statistics.enabled>false</statistics.enabled>
-      <properties.url.suffix>.properties</properties.url.suffix>
+      <properties.url.suffix>-ijdbc.properties</properties.url.suffix>
       <properties.url.prefix>classpath:/conf/standalone/default</properties.url.prefix>
       <test.cache.all>**/persistent/cache/**</test.cache.all>
       <!-- ispn specific exclude by default -->
@@ -980,6 +980,13 @@
          </properties>
       </profile>      
       <profile>
+         <id>mjdbc</id>
+         <properties>
+            <jcr.test.configuration.file>/conf/standalone/test-configuration-jbc.xml</jcr.test.configuration.file>
+            <properties.url.suffix>.properties</properties.url.suffix>
+         </properties>
+      </profile>      
+      <profile>
          <id>ijdbc</id>
          <properties>
             <jcr.test.configuration.file>/conf/standalone/test-configuration-ijdbc-jbc.xml</jcr.test.configuration.file>

Modified: jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -65,7 +65,7 @@
       SecurityHelper.validateSecurityPermission(JCRRuntimePermissions.MANAGE_REPOSITORY_PERMISSION);
 
       Connection jdbcConn = getConnection(wsEntry);
-      boolean autoCommit = DialectConstants.DB_DIALECT_SYBASE.equalsIgnoreCase(resolveDialect(wsEntry));
+      boolean autoCommit = DialectConstants.DB_DIALECT_SYBASE.equalsIgnoreCase(resolveDialect(jdbcConn, wsEntry));
 
       try
       {
@@ -115,7 +115,7 @@
       else
       {
          Connection jdbcConn = getConnection(wsEntry);
-         boolean autoCommit = DialectConstants.DB_DIALECT_SYBASE.equalsIgnoreCase(resolveDialect(wsEntry));
+         boolean autoCommit = DialectConstants.DB_DIALECT_SYBASE.equalsIgnoreCase(resolveDialect(jdbcConn, wsEntry));
 
          try
          {
@@ -166,7 +166,7 @@
             "It is not possible to create cleaner with common connection for multi database repository configuration");
       }
 
-      String dialect = resolveDialect(wsEntry);
+      String dialect = resolveDialect(jdbcConn, wsEntry);
       boolean autoCommit = dialect.equalsIgnoreCase(DialectConstants.DB_DIALECT_SYBASE);
 
       DBCleaningScripts scripts = DBCleaningScriptsFactory.prepareScripts(dialect, rEntry);
@@ -189,7 +189,7 @@
    {
       SecurityHelper.validateSecurityPermission(JCRRuntimePermissions.MANAGE_REPOSITORY_PERMISSION);
 
-      String dialect = resolveDialect(wsEntry);
+      String dialect = resolveDialect(jdbcConn, wsEntry);
       boolean autoCommit = dialect.equalsIgnoreCase(DialectConstants.DB_DIALECT_SYBASE);
       
       DBCleaningScripts scripts = DBCleaningScriptsFactory.prepareScripts(dialect, wsEntry);
@@ -307,7 +307,7 @@
     * @return dialect
     * @throws DBCleanException
     */
-   private static String resolveDialect(WorkspaceEntry wsEntry) throws DBCleanException
+   private static String resolveDialect(Connection jdbcConn, WorkspaceEntry wsEntry) throws DBCleanException
    {
       String dialect =
          wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT, DBConstants.DB_DIALECT_AUTO);
@@ -316,7 +316,6 @@
       {
          try
          {
-            Connection jdbcConn = getConnection(wsEntry);
             dialect = DialectDetecter.detect(jdbcConn.getMetaData());
          }
          catch (SQLException e)

Modified: jcr/branches/1.15.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -19,11 +19,9 @@
 package org.exoplatform.services.jcr.impl.core;
 
 import org.exoplatform.services.jcr.JcrImplBaseTest;
-import org.exoplatform.services.jcr.RepositoryService;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
 import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
 import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
 
@@ -49,16 +47,10 @@
 {
    private final TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
 
-   private WorkspaceEntry wsEntry;
-
-   private DatabaseStructureType dbStructureType;
-
    @Override
    public void setUp() throws Exception
    {
       super.setUp();
-      wsEntry = (WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
-      dbStructureType = JDBCWorkspaceDataContainer.getDatabaseType(wsEntry);
    }
 
    public void testRestore() throws RepositoryConfigurationException, Exception
@@ -66,11 +58,9 @@
       ManageableRepository repository = null;
       try
       {
-         String dsName = helper.createDatasource();
-         repository = helper.createRepository(container, dbStructureType, dsName);
+         repository = helper.createRepository(container, DatabaseStructureType.MULTI, null);
 
-         WorkspaceEntry workspaceEntry =
-            helper.createWorkspaceEntry(dbStructureType, dbStructureType.isMultiDatabase() ? helper.createDatasource() : dsName);
+         WorkspaceEntry workspaceEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
          helper.addWorkspace(repository, workspaceEntry);
 
          InputStream is = TestWorkspaceManagement.class.getResourceAsStream("/import-export/db1_ws1-20071220_0430.xml");
@@ -90,11 +80,9 @@
       ManageableRepository repository = null;
       try
       {
-         String dsName = helper.createDatasource();
-         repository = helper.createRepository(container, dbStructureType, dsName);
+         repository = helper.createRepository(container, DatabaseStructureType.MULTI, null);
 
-         WorkspaceEntry workspaceEntry =
-            helper.createWorkspaceEntry(dbStructureType, dbStructureType.isMultiDatabase() ? helper.createDatasource() : dsName);
+         WorkspaceEntry workspaceEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
          helper.addWorkspace(repository, workspaceEntry);
 
          Session defSession = repository.login(this.credentials, workspaceEntry.getName());
@@ -132,20 +120,4 @@
          }
       }
    }
-
-   private void doTestOnWorkspace(String wsName) throws RepositoryException, RepositoryConfigurationException
-   {
-      RepositoryService service = (RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-      Session sess = service.getDefaultRepository().getSystemSession(wsName);
-
-      Node root2 = sess.getRootNode();
-      assertNotNull(root2);
-
-      Node node1 = root2.getNode("node1");
-      assertNotNull(node1);
-
-      assertEquals("2", node1.getProperty("p1").getString());
-
-      sess.logout();
-   }
 }

Modified: jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration-jbc.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration-jbc.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-configuration-jbc.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -281,87 +281,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1.url:jdbc:hsqldb:file:target/temp/data/jcr}"/>
-          <property name="username" value="${jdbcjcr1.username:sa}"/>
-          <property name="password" value="${jdbcjcr1.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr2</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr2.url:jdbc:hsqldb:file:target/temp/data/jcr2}"/>
-          <property name="username" value="${jdbcjcr2.username:sa}"/>
-          <property name="password" value="${jdbcjcr2.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-        <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr3</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr3.url:jdbc:hsqldb:file:target/temp/data/jcr3}"/>
-          <property name="username" value="${jdbcjcr3.username:sa}"/>
-          <property name="password" value="${jdbcjcr3.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-	<component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcrtest</value>
         </value-param>
         <value-param>
@@ -417,33 +336,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1db2</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1db2.url:jdbc:hsqldb:file:target/temp/data/jcrdb2}"/>
-          <property name="username" value="${jdbcjcr1db2.username:sa}"/>
-          <property name="password" value="${jdbcjcr1db2.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcrtck</value>
         </value-param>
         <value-param>
@@ -471,60 +363,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1tck</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1tck.url:jdbc:hsqldb:file:target/temp/data/jcrtck}"/>
-          <property name="username" value="${jdbcjcr1tck.username:sa}"/>
-          <property name="password" value="${jdbcjcr1tck.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr2tck</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr2tck.url:jdbc:hsqldb:file:target/temp/data/jcr2tck}"/>
-          <property name="username" value="${jdbcjcr2tck.username:sa}"/>
-          <property name="password" value="${jdbcjcr2tck.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcr2export1</value>
         </value-param>
         <value-param>

Modified: jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config-jbc.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config-jbc.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config-jbc.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -23,7 +23,7 @@
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                      <property name="dialect" value="auto" />
@@ -92,8 +92,8 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcr" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1" />
                      <property name="dialect" value="auto" />
@@ -167,8 +167,8 @@
             <workspace name="ws2" lazy-read-threshold="1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcr" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                      <property name="dialect" value="auto" />
@@ -243,8 +243,8 @@
                <!-- for system storage -->
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr3" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcr" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws3" />
                      <property name="dialect" value="auto" />
@@ -345,7 +345,7 @@
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
                      <property name="source-name" value="jdbcjcrdb2" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wsdb2" />
                      <property name="dialect" value="auto" />
@@ -404,7 +404,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrdb2" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -413,8 +413,8 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1db2" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcrdb2" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1db2" />
                      <property name="dialect" value="auto" />
@@ -474,7 +474,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrdb2" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -494,7 +494,7 @@
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
                      <property name="source-name" value="jdbcjcrtck" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wstck" />
                      <property name="dialect" value="auto" />
@@ -566,7 +566,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -575,8 +575,8 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1tck" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcrtck" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1tck" />
                      <property name="dialect" value="auto" />
@@ -646,7 +646,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -655,8 +655,8 @@
             <workspace name="ws2">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2tck" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="source-name" value="jdbcjcktck" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2tck" />
                      <property name="dialect" value="auto" />
@@ -729,7 +729,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>

Modified: jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-ijdbc-jbc.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-ijdbc-jbc.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core/src/test/resources/conf/standalone/test-jcr-config-ijdbc-jbc.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -298,7 +298,7 @@
                <!-- for system storage -->
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr" />
+                     <property name="source-name" value="jdbcjcrdb2" />
                      <property name="dialect" value="auto" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
@@ -347,7 +347,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrdb2" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -356,7 +356,7 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr" />
+                     <property name="source-name" value="jdbcjcrdb2" />
                      <property name="dialect" value="auto" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
@@ -404,7 +404,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrdb2" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -423,7 +423,7 @@
                <!-- for system storage -->
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr" />
+                     <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
@@ -481,7 +481,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -490,7 +490,7 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr" />
+                     <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
@@ -547,7 +547,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>
@@ -556,12 +556,12 @@
             <workspace name="ws2">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr" />
+                     <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2tck" />
-                  </properties>
+                  </properties>
                   <value-storages>
                      <value-storage id="ws2"
                         class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
@@ -616,7 +616,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="jbosscache-shareable" value="${jbosscache-shareable}" />
                   </properties>
                </lock-manager>

Modified: jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-configuration.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-configuration.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-configuration.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -281,87 +281,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1.url:jdbc:hsqldb:file:target/temp/data/jcr}"/>
-          <property name="username" value="${jdbcjcr1.username:sa}"/>
-          <property name="password" value="${jdbcjcr1.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr2</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr2.url:jdbc:hsqldb:file:target/temp/data/jcr2}"/>
-          <property name="username" value="${jdbcjcr2.username:sa}"/>
-          <property name="password" value="${jdbcjcr2.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-        <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr3</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr3.url:jdbc:hsqldb:file:target/temp/data/jcr3}"/>
-          <property name="username" value="${jdbcjcr3.username:sa}"/>
-          <property name="password" value="${jdbcjcr3.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-	<component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcrtest</value>
         </value-param>
         <value-param>
@@ -417,33 +336,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1db2</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1db2.url:jdbc:hsqldb:file:target/temp/data/jcrdb2}"/>
-          <property name="username" value="${jdbcjcr1db2.username:sa}"/>
-          <property name="password" value="${jdbcjcr1db2.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcrtck</value>
         </value-param>
         <value-param>
@@ -471,60 +363,6 @@
       <init-params>
         <value-param>
           <name>bind-name</name>
-          <value>jdbcjcr1tck</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr1tck.url:jdbc:hsqldb:file:target/temp/data/jcrtck}"/>
-          <property name="username" value="${jdbcjcr1tck.username:sa}"/>
-          <property name="password" value="${jdbcjcr1tck.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
-          <value>jdbcjcr2tck</value>
-        </value-param>
-        <value-param>
-          <name>class-name</name>
-          <value>javax.sql.DataSource</value>
-        </value-param>
-        <value-param>
-          <name>factory</name>
-          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-        </value-param>
-        <properties-param>
-          <name>ref-addresses</name>
-          <description>ref-addresses</description>
-          <property name="driverClassName" value="${all.driverClassName:org.hsqldb.jdbcDriver}"/>
-          <property name="url" value="${jdbcjcr2tck.url:jdbc:hsqldb:file:target/temp/data/jcr2tck}"/>
-          <property name="username" value="${jdbcjcr2tck.username:sa}"/>
-          <property name="password" value="${jdbcjcr2tck.password:}"/>
-        </properties-param>
-      </init-params>
-    </component-plugin>
-    <component-plugin>
-      <name>bind.datasource</name>
-      <set-method>addPlugin</set-method>
-      <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-      <init-params>
-        <value-param>
-          <name>bind-name</name>
           <value>jdbcjcr2export1</value>
         </value-param>
         <value-param>

Modified: jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -24,7 +24,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                   </properties>
@@ -90,9 +90,9 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1" />
                   </properties>
@@ -147,7 +147,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr1" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>
@@ -156,9 +156,9 @@
             <workspace name="ws2" lazy-read-threshold="1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                   </properties>
@@ -213,7 +213,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr2" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>
@@ -223,9 +223,9 @@
                <!-- for system storage -->
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr3" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws3" />
                   </properties>
@@ -303,7 +303,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr3" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>
@@ -324,7 +324,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcrdb2" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wsdb2" />
                   </properties>
@@ -387,9 +387,9 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1db2" />
+                     <property name="source-name" value="jdbcjcrdb2" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1db2" />
                   </properties>
@@ -442,7 +442,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr1db2" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcrdb2" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>
@@ -463,7 +463,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wstck" />
                   </properties>
@@ -535,9 +535,9 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1tck" />
+                     <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1tck" />
                   </properties>
@@ -599,7 +599,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr1tck" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>
@@ -608,9 +608,9 @@
             <workspace name="ws2">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2tck" />
+                     <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2tck" />
                   </properties>
@@ -675,7 +675,7 @@
                      <property name="infinispan-cl-cache.jdbc.id.column" value="id" />
                      <property name="infinispan-cl-cache.jdbc.data.column" value="data" />
                      <property name="infinispan-cl-cache.jdbc.timestamp.column" value="timestamp" />
-                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcr2tck" />
+                     <property name="infinispan-cl-cache.jdbc.datasource" value="jdbcjcrtck" />
                      <property name="infinispan-cl-cache.jdbc.connectionFactory" value="org.infinispan.loaders.jdbc.connectionfactory.ManagedConnectionFactory" />
                   </properties>
                </lock-manager>

Modified: jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.core.impl.infinispan.v5/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -34,7 +34,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                   </properties>
@@ -90,7 +90,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr1" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1" />
                   </properties>
@@ -143,7 +143,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr2" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                   </properties>
@@ -197,7 +197,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr3" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws3" />
                   </properties>
@@ -282,7 +282,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcrdb2" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wsdb2" />
                   </properties>
@@ -335,7 +335,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr1db2" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1db2" />
                   </properties>
@@ -399,7 +399,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcrtck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/wstck" />
                   </properties>
@@ -459,7 +459,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr1tck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1tck" />
                   </properties>
@@ -518,7 +518,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr2tck" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2tck" />
                   </properties>

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -40,9 +40,13 @@
 import org.exoplatform.services.jcr.impl.core.SessionImpl;
 import org.exoplatform.services.jcr.impl.core.SessionRegistry;
 import org.exoplatform.services.jcr.impl.core.query.SystemSearchManager;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
 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 org.exoplatform.services.rest.ContainerResponseWriter;
+import org.exoplatform.services.rest.impl.ContainerResponse;
+import org.exoplatform.services.rest.tools.ByteArrayContainerResponseWriter;
 
 import java.io.File;
 import java.io.FileFilter;
@@ -52,12 +56,12 @@
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Iterator;
-import java.util.Map;
 
 import javax.jcr.ItemExistsException;
 import javax.jcr.Node;
 import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
+import javax.jcr.Session;
 import javax.jcr.ValueFormatException;
 import javax.jcr.lock.LockException;
 import javax.jcr.nodetype.ConstraintViolationException;
@@ -256,120 +260,6 @@
       return ws1back;
    }
 
-   protected RepositoryEntry makeRepositoryEntry(String repoName, RepositoryEntry baseRepoEntry, String sourceName,
-            Map<String, String> workspaceMapping)
-   {
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-
-      for (WorkspaceEntry wsEntry : baseRepoEntry.getWorkspaceEntries())
-      {
-         String newWorkspaceName = wsEntry.getName();
-         if (workspaceMapping != null)
-         {
-            newWorkspaceName = workspaceMapping.get(wsEntry.getName());
-         }
-
-         WorkspaceEntry newWSEntry =
-            makeWorkspaceEntry(wsEntry, newWorkspaceName, repoName, sourceName);
-
-         wsEntries.add(newWSEntry);
-      }
-
-      RepositoryEntry newRepositoryEntry = new RepositoryEntry();
-
-      newRepositoryEntry.setSystemWorkspaceName(workspaceMapping == null ? baseRepoEntry.getSystemWorkspaceName()
-               : workspaceMapping.get(baseRepoEntry.getSystemWorkspaceName()));
-      newRepositoryEntry.setAccessControl(baseRepoEntry.getAccessControl());
-      newRepositoryEntry.setAuthenticationPolicy(baseRepoEntry.getAuthenticationPolicy());
-      newRepositoryEntry.setDefaultWorkspaceName(workspaceMapping == null ? baseRepoEntry.getDefaultWorkspaceName()
-               : workspaceMapping.get(baseRepoEntry.getDefaultWorkspaceName()));
-      newRepositoryEntry.setName(repoName);
-      newRepositoryEntry.setSecurityDomain(baseRepoEntry.getSecurityDomain());
-      newRepositoryEntry.setSessionTimeOut(baseRepoEntry.getSessionTimeOut());
-
-      newRepositoryEntry.setWorkspaceEntries(wsEntries);
-
-      return newRepositoryEntry;
-   }
-
-   protected WorkspaceEntry makeWorkspaceEntry(WorkspaceEntry baseWorkspaceEntry, String wsName, String repoName,
-            String sourceName)
-   {
-      WorkspaceEntry ws1back = new WorkspaceEntry();
-      ws1back.setName(wsName);
-      ws1back.setUniqueName(repoName + "_" + ws1back.getName());
-
-      ws1back.setAccessManager(baseWorkspaceEntry.getAccessManager());
-      ws1back.setCache(baseWorkspaceEntry.getCache());
-      ws1back.setLockManager(baseWorkspaceEntry.getLockManager());
-      ws1back.setInitializer(baseWorkspaceEntry.getInitializer());
-
-      // Indexer
-      if (sourceName != null)
-      {
-         ArrayList qParams = new ArrayList();
-         qParams.add(new SimpleParameterEntry(QueryHandlerParams.PARAM_INDEX_DIR, "target" + File.separator + repoName
-                  + "_" + wsName));
-         QueryHandlerEntry qEntry =
-                  new QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex", qParams);
-
-         ws1back.setQueryHandler(qEntry);
-      }
-      else
-      {
-         ws1back.setQueryHandler(baseWorkspaceEntry.getQueryHandler());
-      }
-
-      ArrayList params = new ArrayList();
-      for (Iterator i = baseWorkspaceEntry.getContainer().getParameters().iterator(); i.hasNext();)
-      {
-         SimpleParameterEntry p = (SimpleParameterEntry) i.next();
-         SimpleParameterEntry newp = new SimpleParameterEntry(p.getName(), p.getValue());
-
-         if (newp.getName().equals("source-name"))
-         {
-            if (sourceName != null)
-            {
-               newp.setValue(sourceName);
-            }
-         }
-         else if (newp.getName().equals("swap-directory"))
-            newp.setValue("target/temp/swap/" + repoName + "_" + wsName);
-         else if (newp.getName().equals("multi-db"))
-            newp.setValue("false");
-
-         params.add(newp);
-      }
-
-      ContainerEntry ce =
-               new ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer", params);
-      
-      ArrayList list = new ArrayList();
-      
-      // value storage
-      ArrayList<ValueStorageFilterEntry> vsparams = new ArrayList<ValueStorageFilterEntry>();
-      ValueStorageFilterEntry filterEntry = new ValueStorageFilterEntry();
-      filterEntry.setPropertyType("Binary");
-      vsparams.add(filterEntry);
-
-      ValueStorageEntry valueStorageEntry =
-         new ValueStorageEntry("org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage", vsparams);
-      ArrayList<SimpleParameterEntry> spe = new ArrayList<SimpleParameterEntry>();
-      spe.add(new SimpleParameterEntry("path", "target/temp/swap/" + repoName + "_" + wsName + "_"
-         + System.currentTimeMillis()));
-      valueStorageEntry.setId("draft");
-      valueStorageEntry.setParameters(spe);
-      valueStorageEntry.setFilters(vsparams);
-
-      // containerEntry.setValueStorages();
-      list.add(valueStorageEntry);
-      ce.setValueStorages(list);
-
-      ws1back.setContainer(ce);
-
-      return ws1back;
-   }
-
    protected void restoreAndCheck(String workspaceName, String datasourceName, String backupLogFilePath, File backDir,
             int startIndex, int stopIndex) throws RepositoryConfigurationException, RepositoryException,
             BackupOperationException, BackupConfigurationException
@@ -722,4 +612,48 @@
       }
    }
 
+   protected RepoInfo createRepositoryAndGetSession() throws Exception
+   {
+      ManageableRepository repository = helper.createRepository(container, DatabaseStructureType.MULTI, null);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
+      helper.addWorkspace(repository, wsEntry);
+
+      RepoInfo rInfo = new RepoInfo();
+      rInfo.rName = repository.getConfiguration().getName();
+      rInfo.wsName = wsEntry.getName();
+      rInfo.sysWsName = repository.getConfiguration().getSystemWorkspaceName();
+      rInfo.session = repositoryService.getRepository(rInfo.rName).login(credentials, rInfo.wsName);
+
+      return rInfo;
+   }
+
+   /**
+    * Class for tests purpose only. To have ability to access to {@link ContainerResponseWriter}.
+    */
+   protected class TesterContainerResponce extends ContainerResponse
+   {
+
+      public ByteArrayContainerResponseWriter responseWriter;
+
+      public TesterContainerResponce(ByteArrayContainerResponseWriter responseWriter)
+      {
+         super(responseWriter);
+         this.responseWriter = responseWriter;
+      }
+   }
+
+   /**
+    * Aggregate info about newly created repository.
+    */
+   protected class RepoInfo
+   {
+      public String rName;
+
+      public String wsName;
+
+      public String sysWsName;
+
+      public Session session;
+   }
+
 }

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestRdbmsWorkspaceInitializer.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -121,12 +121,12 @@
 
       Calendar calendar = Calendar.getInstance();
 
-      job.init(repositoryService.getRepository("db7"), "ws1", config, calendar);
+      job.init(repositoryService.getRepository("db3"), "ws1", config, calendar);
       job.run();
 
       URL url = job.getStorageURL();
 
-      for (WorkspaceEntry workspaceEntry : repositoryService.getRepository("db7").getConfiguration()
+      for (WorkspaceEntry workspaceEntry : repositoryService.getRepository("db3").getConfiguration()
          .getWorkspaceEntries())
       {
          if (workspaceEntry.getName().equals("ws1"))

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -18,24 +18,22 @@
  */
 package org.exoplatform.services.jcr.ext.backup.server;
 
-import org.exoplatform.services.jcr.config.ContainerEntry;
-import org.exoplatform.services.jcr.config.QueryHandlerEntry;
 import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
 import org.exoplatform.services.jcr.config.RepositoryEntry;
-import org.exoplatform.services.jcr.config.SimpleParameterEntry;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.core.WorkspaceContainerFacade;
 import org.exoplatform.services.jcr.ext.app.SessionProviderService;
 import org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService;
 import org.exoplatform.services.jcr.ext.backup.AbstractBackupTestCase;
+import org.exoplatform.services.jcr.ext.backup.BackupChain;
 import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
-import org.exoplatform.services.jcr.ext.backup.BackupJob;
+import org.exoplatform.services.jcr.ext.backup.BackupConfig;
 import org.exoplatform.services.jcr.ext.backup.BackupManager;
 import org.exoplatform.services.jcr.ext.backup.ContainerRequestUserRole;
 import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
 import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChain;
 import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.RepositoryBackupConfig;
 import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
 import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
 import org.exoplatform.services.jcr.ext.backup.server.bean.BackupConfigBean;
@@ -44,35 +42,30 @@
 import org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfo;
 import org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfoList;
 import org.exoplatform.services.jcr.ext.common.SessionProvider;
-import org.exoplatform.services.jcr.impl.core.SessionRegistry;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
 import org.exoplatform.services.rest.RequestHandler;
-import org.exoplatform.services.rest.impl.ContainerResponse;
 import org.exoplatform.services.rest.impl.InputHeadersMap;
 import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
-import org.exoplatform.services.rest.impl.ResourceBinder;
 import org.exoplatform.services.rest.tools.ByteArrayContainerResponseWriter;
 import org.exoplatform.services.security.ConversationState;
 import org.exoplatform.services.security.Identity;
 import org.exoplatform.ws.frameworks.json.JsonHandler;
 import org.exoplatform.ws.frameworks.json.JsonParser;
-import org.exoplatform.ws.frameworks.json.JsonWriter;
 import org.exoplatform.ws.frameworks.json.impl.BeanBuilder;
 import org.exoplatform.ws.frameworks.json.impl.JsonDefaultHandler;
 import org.exoplatform.ws.frameworks.json.impl.JsonGeneratorImpl;
 import org.exoplatform.ws.frameworks.json.impl.JsonParserImpl;
-import org.exoplatform.ws.frameworks.json.impl.JsonWriterImpl;
 import org.exoplatform.ws.frameworks.json.value.JsonValue;
 
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URLEncoder;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
+import javax.jcr.LoginException;
 import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -87,16 +80,15 @@
  * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a>
  * @version $Id: HTTPBackupAgentTest.java 111 2008-11-11 11:11:11Z rainf0x $
  */
-public class HTTPBackupAgentTest
-   extends AbstractBackupTestCase
+public class HTTPBackupAgentTest extends AbstractBackupTestCase
 {
 
    private String HTTP_BACKUP_AGENT_PATH = HTTPBackupAgent.Constants.BASE_URL;
 
-   private ResourceBinder binder;
-
    private RequestHandler handler;
 
+   private File backupDir;
+
    /**
     * {@inheritDoc}
     */
@@ -105,33 +97,28 @@
    {
       super.setUp();
 
-      binder = (ResourceBinder) container.getComponentInstanceOfType(ResourceBinder.class);
       handler = (RequestHandler) container.getComponentInstanceOfType(RequestHandler.class);
+      backupDir = new File("target/temp/backup/" + System.currentTimeMillis());
+      backupDir.mkdirs();
 
       SessionProviderService sessionProviderService =
-               (SessionProviderService) container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
+         (SessionProviderService)container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
       assertNotNull(sessionProviderService);
       sessionProviderService.setSessionProvider(null, new SessionProvider(new ConversationState(new Identity("root"))));
    }
 
    public void testInfo() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.BACKUP_SERVICE_INFO), new URI(""), null,
-                        new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.BACKUP_SERVICE_INFO));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
       BackupServiceInfoBean info =
-               (BackupServiceInfoBean) getObject(BackupServiceInfoBean.class, responseWriter.getBody());
-      BackupManager backupManager = (BackupManager) container.getComponentInstanceOfType(BackupManager.class);
+         (BackupServiceInfoBean)getObject(BackupServiceInfoBean.class, cres.responseWriter.getBody());
 
+      BackupManager backupManager = (BackupManager)container.getComponentInstanceOfType(BackupManager.class);
+
       assertNotNull(info);
       assertEquals(backupManager.getBackupDirectory().getAbsolutePath(), info.getBackupLogDir());
       assertEquals(backupManager.getFullBackupType(), info.getFullBackupType());
@@ -141,2934 +128,990 @@
 
    public void testDropWorkspace() throws Exception
    {
-      // login to workspace '/db6/ws1'
-      Session session_db6_ws1 = repositoryService.getRepository("db6").login(credentials, "ws1");
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      rInfo.session.logout();
 
-      assertNotNull(session_db6_ws1);
+      int intialCount = repositoryService.getRepository(rInfo.rName).getConfiguration().getWorkspaceEntries().size();
 
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.DROP_WORKSPACE + "/db6/ws1/true"), new URI(""), null,
-                        new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.DROP_WORKSPACE + "/"
+            + rInfo.rName + "/" + rInfo.wsName + "/true"));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
-
-      try
-      {
-         Session ses_db6_ws1 = repositoryService.getRepository("db6").login(credentials, "ws1");
-         fail();
-      }
-      catch (NoSuchWorkspaceException e)
-      {
-         // ok
-      }
+      assertEquals(intialCount - 1, repositoryService.getRepository(rInfo.rName).getConfiguration()
+         .getWorkspaceEntries().size());
    }
 
    public void testStart() throws Exception
    {
-      // login to workspace '/db6/ws2'
-      Session session_db6_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-      assertNotNull(session_db6_ws2);
+      RepoInfo rInfo = createRepositoryAndGetSession();
 
-      session_db6_ws2.getRootNode().addNode("NODE_NAME_TO_TEST");
-      session_db6_ws2.save();
+      BackupConfigBean configBean =
+         new BackupConfigBean(BackupManager.FULL_AND_INCREMENTAL, backupDir.getPath(), 10000l);
+      
+      TesterContainerResponce cres = makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH
+         + HTTPBackupAgent.Constants.OperationType.START_BACKUP + "/" + rInfo.rName + "/" + rInfo.wsName), configBean);
 
-      File f = new File("target/temp/backup/" + System.currentTimeMillis());
-      f.mkdirs();
-
-      BackupConfigBean configBean = new BackupConfigBean(BackupManager.FULL_AND_INCREMENTAL, f.getPath(), 10000l);
-
-      JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-      JsonValue json = generatorImpl.createJsonObject(configBean);
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.START_BACKUP + "/db6/ws2"), new URI(""),
-                        new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
-
-      Thread.sleep(5000);
    }
 
    public void testStartBackupRepository() throws Exception
    {
-      Session session_db6_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-      assertNotNull(session_db6_ws2);
+      RepoInfo rInfo = createRepositoryAndGetSession();
 
-      session_db6_ws2.getRootNode().addNode("NODE_NAME_TO_TEST");
-      session_db6_ws2.save();
+      BackupConfigBean configBean =
+         new BackupConfigBean(BackupManager.FULL_AND_INCREMENTAL, backupDir.getPath(), 10000l);
 
-      File f = new File("target/temp/backup/" + System.currentTimeMillis());
-      f.mkdirs();
+      TesterContainerResponce cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.START_BACKUP_REPOSITORY + "/" + rInfo.rName), configBean);
 
-      BackupConfigBean configBean = new BackupConfigBean(BackupManager.FULL_AND_INCREMENTAL, f.getPath(), 10000l);
-
-      JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-      JsonValue json = generatorImpl.createJsonObject(configBean);
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.START_BACKUP_REPOSITORY + "/db6"), new URI(""),
-                        new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
-
-      Thread.sleep(10000);
    }
 
    public void testInfoBackup() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_INFO), new URI(""),
-                        null, new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupWorkspace(rInfo);
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_INFO));
 
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
       assertNotNull(info);
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertEquals(BackupJob.FINISHED, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
+      assertEquals(BackupChain.FINISHED, info.getState().intValue());
+      assertEquals(rInfo.wsName, info.getWorkspaceName());
    }
 
    public void testInfoBackupRepository() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_REPOSITORY_INFO),
-                        new URI(""), null, new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupRepository(rInfo);
+      
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_REPOSITORY_INFO));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertTrue(RepositoryBackupChain.WORKING == info.getState().intValue()
-               || RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING == info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
+      assertEquals(RepositoryBackupChain.FINISHED, info.getState().intValue());
    }
 
    public void testInfoBackupOnWorkspace() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET",
-                        new URI(HTTP_BACKUP_AGENT_PATH
-                                 + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_INFO_ON_WS
-                                 + "/db6/ws2"), new URI(""), null, new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupWorkspace(rInfo);
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_INFO_ON_WS + "/" + rInfo.rName
+            + "/" + rInfo.wsName));
 
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
       assertNotNull(info);
 
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertEquals(BackupJob.FINISHED, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
+      assertEquals(BackupChain.FINISHED, info.getState().intValue());
+      assertEquals(rInfo.wsName, info.getWorkspaceName());
    }
 
    public void testInfoBackupOnRepository() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_REPOSITORY_INFO
-                        + "/db6"), new URI(""), null, new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupRepository(rInfo);
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_REPOSITORY_INFO + "/" + rInfo.rName));
 
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertTrue(RepositoryBackupChain.WORKING == info.getState().intValue()
-               || RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING == info.getState().intValue());
+      assertEquals(RepositoryBackupChain.FINISHED, info.getState().intValue());
    }
 
    public void testInfoBackupCurrent() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_INFO), new URI(""), null,
-                        new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupWorkspace(rInfo);
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
+      // get current backup
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_INFO));
 
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertEquals(BackupJob.FINISHED, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
-   }
+      assertEquals(BackupChain.FINISHED, info.getState().intValue());
+      assertEquals(rInfo.wsName, info.getWorkspaceName());
 
-   public void testInfoBackupRepositoryCurrent() throws Exception
-   {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_REPOSITORY_INFO), new URI(""), null,
-                        new InputHeadersMap(headers));
+      // get current backup by id
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_INFO + "/" + info.getBackupId()));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      DetailedInfo dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
-
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-      assertNotNull(info.getStartedTime());
-      assertNotNull(info.getFinishedTime());
-      assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertTrue(RepositoryBackupChain.WORKING == info.getState().intValue()
-               || RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING == info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.CURRENT, dInfo.getType().intValue());
+      assertEquals(RepositoryBackupChain.FINISHED, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
    }
 
-   public void testInfoBackupCurrentById() throws Exception
+   public void testInfoBackupRepositoryCurrent() throws Exception
    {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupRepository(rInfo);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      // get current backup
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_REPOSITORY_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-         assertEquals(info.getWorkspaceName(), "ws2");
-
-         id = info.getBackupId();
-      }
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_INFO + "/" + id),
-                        new URI(""), null, new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
       assertNotNull(info);
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertEquals(BackupJob.FINISHED, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
-      assertNotNull(info.getBackupConfig());
-   }
+      assertEquals(RepositoryBackupChain.FINISHED, info.getState().intValue());
 
-   public void testInfoBackupRepositoryId() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      // get current backup by id
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_REPOSITORY_INFO + "/"
+            + info.getBackupId()));
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_AND_COMPLETED_BACKUPS_REPOSITORY_INFO),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_REPOSITORY_INFO + "/"
-                        + id), new URI(""), null, new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      DetailedInfo dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      assertNotNull(info);
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-      assertNotNull(info.getStartedTime());
-      assertNotNull(info.getFinishedTime());
-      assertEquals(ShortInfo.CURRENT, info.getType().intValue());
-      assertTrue(RepositoryBackupChain.WORKING == info.getState().intValue()
-               || RepositoryBackupChain.FULL_BACKUP_FINISHED_INCREMENTAL_BACKUP_WORKING == info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertNotNull(info.getBackupConfig());
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.CURRENT, dInfo.getType().intValue());
+      assertEquals(RepositoryBackupChain.FINISHED, dInfo.getState().intValue());
+      assertNotNull(dInfo.getBackupConfig());
    }
 
    public void testStop() throws Exception
    {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupWorkspace(rInfo);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
+      assertNotNull(info);
+      assertEquals(rInfo.wsName, info.getWorkspaceName());
 
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.STOP_BACKUP + "/"
+            + info.getBackupId()));
 
-         assertEquals(info.getRepositoryName(), "db6");
-         assertEquals(info.getWorkspaceName(), "ws2");
-
-         id = info.getBackupId();
-      }
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.STOP_BACKUP + "/" + id), new URI(""), null,
-                        new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
    }
 
    public void testStopBackupRepository() throws Exception
    {
-      String id = null;
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      backupRepository(rInfo);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_BACKUPS_REPOSITORY_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
+      assertNotNull(info);
 
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.STOP_BACKUP_REPOSITORY + "/" + id), new URI(""),
-                        null, new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.STOP_BACKUP_REPOSITORY
+            + "/" + info.getBackupId()));
       assertEquals(200, cres.getStatus());
    }
 
    public void testInfoBackupCompleted() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                        new InputHeadersMap(headers));
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      BackupChain bch = backupWorkspace(rInfo);
+      backup.stopBackup(bch);
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
+      // get completed backup
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO));
 
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
       List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.COMPLETED, info.getType().intValue());
       assertEquals(0, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
-   }
+      assertEquals(rInfo.wsName, info.getWorkspaceName());
+      
+      // get completed backup by id
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_INFO + "/" + info.getBackupId()));
 
-   public void testInfoBackupRepositoryCompleted() throws Exception
-   {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                        null, new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      DetailedInfo dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      ShortInfo info = getBackupInfo(list);
-      assertNotNull(info);
-
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-      assertNotNull(info.getStartedTime());
-      assertNotNull(info.getFinishedTime());
-      assertEquals(ShortInfo.COMPLETED, info.getType().intValue());
-      assertEquals(0, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.COMPLETED, dInfo.getType().intValue());
+      assertEquals(0, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
    }
 
-   public void testInfoBackupCompletedById() throws Exception
+   public void testInfoBackupRepositoryCompleted() throws Exception
    {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      RepositoryBackupChain bch = backupRepository(rInfo);
+      backup.stopBackup(bch);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-      }
-
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.CURRENT_OR_COMPLETED_BACKUP_INFO + "/" + id),
-                        new URI(""), null, new InputHeadersMap(headers));
-
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
+
       assertNotNull(info);
-      assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
       assertNotNull(info.getStartedTime());
       assertNotNull(info.getFinishedTime());
       assertEquals(ShortInfo.COMPLETED, info.getType().intValue());
       assertEquals(0, info.getState().intValue());
-      assertEquals("db6", info.getRepositoryName());
-      assertEquals("ws2", info.getWorkspaceName());
-
-      assertNotNull(info.getBackupConfig());
    }
 
    public void testGetDefaultWorkspaceConfig() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                        new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      WorkspaceEntry defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
+      WorkspaceEntry defEntry = (WorkspaceEntry)getObject(WorkspaceEntry.class, cres.responseWriter.getBody());
 
       assertEquals(repository.getConfiguration().getDefaultWorkspaceName(), defEntry.getName());
    }
 
    public void testGetDefaultRepositoryConfig() throws Exception
    {
-      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-      ContainerRequestUserRole creq =
-               new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                        + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                        new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG));
 
-      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-      ContainerResponse cres = new ContainerResponse(responseWriter);
-      handler.handleRequest(creq, cres);
-
       assertEquals(200, cres.getStatus());
 
-      RepositoryEntry defEntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
+      RepositoryEntry defEntry = (RepositoryEntry)getObject(RepositoryEntry.class, cres.responseWriter.getBody());
 
       assertEquals(repository.getConfiguration().getName(), defEntry.getName());
    }
 
-   public void testWorkspaceEntryRestore() throws Exception
-   {
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
-
-      // Restore
-
-      // Create JSON to WorkspaceEntry
-      JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-      JsonValue json = generatorImpl.createJsonObject(wEntry);
-      ByteArrayOutputStream out = new ByteArrayOutputStream();
-      JsonWriter jsonWriter = new JsonWriterImpl(out);
-      json.writeTo(jsonWriter);
-      jsonWriter.flush();
-      jsonWriter.close();
-
-      // Create WorkspaceEntry from JSON
-      ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-      JsonParser jsonParser = new JsonParserImpl();
-      JsonHandler jsonHandler = new JsonDefaultHandler();
-
-      jsonParser.parse(in, jsonHandler);
-      JsonValue jsonValue = jsonHandler.getJsonObject();
-
-      WorkspaceEntry entry = (WorkspaceEntry) (new BeanBuilder().createObject(WorkspaceEntry.class, jsonValue));
-
-      assertNotNull(entry);
-
-   }
-
    public void testRestore() throws Exception
    {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      BackupChain bch = backupWorkspace(rInfo);
+      backup.stopBackup(bch);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
 
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
+      assertNotNull(info);
 
-         id = info.getBackupId();
-      }
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      // restore in new workspace 
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE + "/"
+            + rInfo.rName + "/" + info.getBackupId()), wsEntry);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      waitWorkspaceRestore(rInfo.rName, wsEntry.getName());
 
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + wsEntry.getName()));
 
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
+      assertEquals(200, cres.getStatus());
 
-      // Check the workspace /db6/ws3 not exists.
-      try
-      {
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         fail("The workspace /db6/ws3 should not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
+      DetailedInfo dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(wEntry);
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(wsEntry.getName(), dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE + "/" + "db6" + "/" + id), new URI(""),
-                           new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
+      Session session = repositoryService.getRepository(rInfo.rName).login(credentials, wsEntry.getName());
+      assertNotNull(session);
+      assertNotNull(session.getRootNode());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres = makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORES));
 
-         assertEquals(200, cres.getStatus());
-      }
+      assertEquals(200, cres.getStatus());
 
-      waitWorkspaceRestore("db6", "ws3");
+      infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      assertNotNull(infoList);
 
-      // Get restore info to workspace /db6/ws3
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws3"), new URI(""), null, new InputHeadersMap(headers));
+      info = new ArrayList<ShortInfo>(infoList.getBackups()).get(0);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
+      assertNotNull(info.getStartedTime());
+      assertNotNull(info.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, info.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
+      assertEquals(wsEntry.getName(), info.getWorkspaceName());
+      assertNotNull(info.getBackupId());
+      
+      // restore in existed workspace
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE + "/"
+            + rInfo.rName + "/" + info.getBackupId() + "/true"), wsEntry);
 
-         assertEquals(200, cres.getStatus());
+      assertEquals(200, cres.getStatus());
+      waitWorkspaceRestore(rInfo.rName, wsEntry.getName());
+      
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + wsEntry.getName()));
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      assertEquals(200, cres.getStatus());
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(wsEntry.getName(), dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-      // Get restores info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORES), new URI(""), null,
-                           new InputHeadersMap(headers));
+      // restore in new workspace, "remove-existing" is false
+      wsEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE + "/"
+            + rInfo.rName + "/" + info.getBackupId() + "/false"), wsEntry);
 
-         assertEquals(200, cres.getStatus());
+      assertEquals(200, cres.getStatus());
+      waitWorkspaceRestore(rInfo.rName, wsEntry.getName());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         assertNotNull(infoList);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + wsEntry.getName()));
 
-         ShortInfo info = new ArrayList<ShortInfo>(infoList.getBackups()).get(0);
+      assertEquals(200, cres.getStatus());
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupId());
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
-   }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(wsEntry.getName(), dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-   public void testRestoreExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      info = getBackupInfo(list, rInfo.rName);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      // restore in existed workspace, "remove-existing" is true
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE + "/"
+            + info.getBackupId() + "/true"));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      waitWorkspaceRestore(rInfo.rName, rInfo.wsName);
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + rInfo.wsName));
 
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(info.getRepositoryName(), "db6");
-         assertEquals(info.getWorkspaceName(), "ws2");
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         id = info.getBackupId();
-      }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
-
-      // Check the workspace /db6/ws3 is exists.
-      try
-      {
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         // ok  
-      }
-      catch (Exception e)
-      {
-         fail("The workspace /db6/ws3 should be exists.");
-      }
-
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(wEntry);
-
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE + "/" + "db6" + "/" + id + "/" + "true"),
-                           new URI(""), new ByteArrayInputStream(json.toString().getBytes("UTF-8")),
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws3");
-
-      // Get restore info to workspace /db6/ws3
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws3"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
-   }
-
-   public void testRestoreExistsFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-      }
-
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
-
-      removeWorkspaceFully("db6", "ws3");
-
-      // Check the workspace /db6/ws3 is not exists.
-      try
-      {
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         fail("The workspace /db6/ws3 should  be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
-
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(wEntry);
-
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE + "/" + "db6" + "/" + id + "/" + "false"),
-                           new URI(""), new ByteArrayInputStream(json.toString().getBytes("UTF-8")),
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws3");
-
-      // Get restore info to workspace /db6/ws3
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws3"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
-   }
-
-   public void testRestoreExistsByIdOriginalConfigTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-      }
-
-      // Check the workspace /db6/ws3 is exists.
-      try
-      {
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         // ok  
-      }
-      catch (Exception e)
-      {
-         fail("The workspace /db6/ws2 should be exists.");
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE + "/" + id + "/" + "true"), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws2");
-
-      // Get restore info to workspace /db6/ws2
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws2"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws2", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         assertNotNull(sessin_ws2);
-         assertNotNull(sessin_ws2.getRootNode());
-      }
-   }
-
-   public void testRestoreExistsByIdOriginalConfigFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-      }
-
-      removeWorkspaceFully("db6", "ws2");
-
-      // Check the workspace /db6/ws2 is exists.
-      try
-      {
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         fail("The workspace /db6/ws2 should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok  
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE + "/" + id + "/" + "false"), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws2");
-
-      // Get restore info to workspace /db6/ws2
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws2"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws2", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         assertNotNull(sessin_ws2);
-         assertNotNull(sessin_ws2.getRootNode());
-      }
-   }
-
-   public void testRestoreBackupSetExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      // restore in existed workspace by @backup-set-path", remove existing is true
       String backupSetPath = null;
-
+      for (BackupChainLog bcl : backup.getBackupsLogs())
       {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
+         if (bcl.getBackupId().equals(info.getBackupId()))
          {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
+            backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
+            break;
          }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-
-         for (BackupChainLog bcl : backup.getBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
       }
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      assertNotNull(backupSetPath);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/" + rInfo.rName + "/" + "true" + "?backup-set-path=" + backupSetPath), wsEntry);
 
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
+      assertEquals(200, cres.getStatus());
 
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
+      waitWorkspaceRestore(rInfo.rName, wsEntry.getName());
 
-      // Check the workspace /db6/ws3 is exists.
-      try
-      {
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         // ok  
-      }
-      catch (Exception e)
-      {
-         fail("The workspace /db6/ws3 should be exists.");
-      }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + wsEntry.getName()));
 
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(wEntry);
+      assertEquals(200, cres.getStatus());
 
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-            new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "db6" + "/" + "true"
-                           + "?backup-set-path=" + backupSetPath), new URI(""), new ByteArrayInputStream(json
-                           .toString().getBytes("UTF-8")),
-               new InputHeadersMap(headers));
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(wsEntry.getName(), dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         assertEquals(200, cres.getStatus());
-      }
+      // restore in existed workspace by @backup-set-path", remove existing is true
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/" + "true" + "?backup-set-path=" + backupSetPath));
 
-      waitWorkspaceRestore("db6", "ws3");
+      assertEquals(200, cres.getStatus());
 
-      // Get restore info to workspace /db6/ws3
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws3"), new URI(""), null, new InputHeadersMap(headers));
+      waitWorkspaceRestore(rInfo.rName, rInfo.wsName);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + rInfo.wsName));
 
-         assertEquals(200, cres.getStatus());
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
+      // restore in existed workspace by @backup-set-path", remove existing is true
+      removeWorkspaceFully(rInfo.rName, rInfo.wsName);
 
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
-   }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/" + "false" + "?backup-set-path=" + backupSetPath));
 
-   public void testRestoreOriginalConfigBackupSetExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
-      String backupSetPath = null;
+      assertEquals(200, cres.getStatus());
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      waitWorkspaceRestore(rInfo.rName, rInfo.wsName);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + rInfo.wsName));
 
-         assertEquals(200, cres.getStatus());
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
+      
+      // restore in existed workspace by @backup-set-path", remove existing is true
+      removeWorkspaceFully(rInfo.rName, wsEntry.getName());
+      
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/" + rInfo.rName + "/" + "false" + "?backup-set-path=" + backupSetPath), wsEntry);
 
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
+      waitWorkspaceRestore(rInfo.rName, rInfo.wsName);
 
-         id = info.getBackupId();
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + rInfo.rName + "/"
+            + rInfo.wsName));
 
-         for (BackupChainLog bcl : backup.getBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      // Check the workspace /db6/ws2 is exists.
-      try
-      {
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         // ok  
-      }
-      catch (Exception e)
-      {
-         fail("The workspace /db6/ws2 should be exists.");
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "true"
-                           + "?backup-set-path=" + backupSetPath), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws2");
-
-      // Get restore info to workspace /db6/ws2
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws2"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws2", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         assertNotNull(sessin_ws2);
-         assertNotNull(sessin_ws2.getRootNode());
-      }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.wsName, dInfo.getWorkspaceName());
+      assertNotNull(dInfo.getBackupConfig());
    }
 
-   public void testRestoreOriginalConfigBackupSetExistsFalse() throws Exception
+   public void testRestoreRepository() throws Exception
    {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
-      String backupSetPath = null;
+      // make backup, get backupId and backupSetPath
+      RepoInfo rInfo = createRepositoryAndGetSession();
+      RepositoryBackupChain bch = backupRepository(rInfo);
+      backup.stopBackup(bch);
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
+      TesterContainerResponce cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      ShortInfoList infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
-         {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
-         }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-
-         for (BackupChainLog bcl : backup.getBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
-
-      removeWorkspaceFully("db6", "ws2");
-      // Check the workspace /db6/ws2 is exists.
-      try
-      {
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         fail("The workspace /db6/ws2 should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "false"
-                           + "?backup-set-path=" + backupSetPath), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitWorkspaceRestore("db6", "ws2");
-
-      // Get restore info to workspace /db6/ws2
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws2"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws2", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
-
-         Session sessin_ws2 = repositoryService.getRepository("db6").login(credentials, "ws2");
-         assertNotNull(sessin_ws2);
-         assertNotNull(sessin_ws2.getRootNode());
-      }
-   }
-
-   public void testRestoreBackupSetExistsFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      ShortInfo info = getBackupInfo(list, rInfo.rName);
+      assertNotNull(info);
+      
+      String backupId = info.getBackupId();
       String backupSetPath = null;
-
+      for (RepositoryBackupChainLog bcl : backup.getRepositoryBackupsLogs())
       {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_INFO), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = null;
-         for (ShortInfo inf : list)
+         if (bcl.getBackupId().equals(backupId))
          {
-            if (inf.getRepositoryName().equals("db6") && inf.getWorkspaceName().equals("ws2"))
-            {
-               info = inf;
-               break;
-            }
+            backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
+            break;
          }
-         assertNotNull(info);
-
-         id = info.getBackupId();
-
-         for (BackupChainLog bcl : backup.getBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
       }
+      assertNotNull(backupSetPath);
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      // restore in new repository
+      RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI, rInfo.sysWsName, null);
+      WorkspaceEntry wsEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
+      wsEntry.setName(rInfo.wsName);
+      rEntry.getWorkspaceEntries().add(wsEntry);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertFalse(isRepositoryExists(rEntry.getName()));
 
-         assertEquals(200, cres.getStatus());
-         defEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY
+            + "/" + info.getBackupId()), rEntry);
 
-      WorkspaceEntry wEntry = makeWorkspaceEntry(defEntry, "db6", "ws3", "jdbcjcr24");
+      waitRepositoryRestore(rEntry.getName());
+      assertTrue(isRepositoryExists(rEntry.getName()));
 
-      removeWorkspaceFully("db6", "ws3");
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rEntry.getName()));
 
-      // Check the workspace /db6/ws3 is not exists.
-      try
-      {
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         fail("The workspace /db6/ws3 should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok  
-      }
+      assertEquals(200, cres.getStatus());
 
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(wEntry);
+      DetailedInfo dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "db6" + "/"
-                           + "false" + "?backup-set-path=" + backupSetPath), new URI(""), new ByteArrayInputStream(json.toString()
-                           .getBytes("UTF-8")), new InputHeadersMap(headers));
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rEntry.getName(), dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORES_REPOSITORY));
 
-         assertEquals(200, cres.getStatus());
-      }
+      assertEquals(200, cres.getStatus());
 
-      waitWorkspaceRestore("db6", "ws3");
+      infoList = (ShortInfoList)getObject(ShortInfoList.class, cres.responseWriter.getBody());
+      assertNotNull(infoList);
 
-      // Get restore info to workspace /db6/ws3
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + "db6" + "/"
-                           + "ws3"), new URI(""), null, new InputHeadersMap(headers));
+      info = new ArrayList<ShortInfo>(infoList.getBackups()).get(0);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(info);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
+      assertNotNull(info.getStartedTime());
+      assertNotNull(info.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, info.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, info.getState().intValue());
+      assertEquals(rEntry.getName(), info.getRepositoryName());
+      assertNotNull(info.getBackupId());
 
-         assertEquals(200, cres.getStatus());
+      // restore by id, "remove-existing" is true
+      assertTrue(isRepositoryExists(rEntry.getName()));
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY
+            + "/" + backupId + "/true"), rEntry);
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      assertEquals(200, cres.getStatus());
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertEquals("ws3", info.getWorkspaceName());
-         assertNotNull(info.getBackupConfig());
+      waitRepositoryRestore(rEntry.getName());
+      assertTrue(isRepositoryExists(rEntry.getName()));
 
-         Session sessin_ws3 = repositoryService.getRepository("db6").login(credentials, "ws3");
-         assertNotNull(sessin_ws3);
-         assertNotNull(sessin_ws3.getRootNode());
-      }
-   }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rEntry.getName()));
 
-   public void testRestoreRepository() throws Exception
-   {
-      // Get backup id for backup on workspace /db6/ws2
-      String id = null;
+      assertEquals(200, cres.getStatus());
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, info.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rEntry.getName(), info.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         assertEquals(200, cres.getStatus());
+      // restore by id, "remove-existing" is false
+      removeRepositoryFully(rEntry.getName());
+      assertFalse(isRepositoryExists(rEntry.getName()));
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      // Getting default RepositoryEntry
-      RepositoryEntry defREntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY
+            + "/" + backupId + "/false"), rEntry);
          assertEquals(200, cres.getStatus());
-         defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
-      }
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defWEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      waitRepositoryRestore(rEntry.getName());
+      assertTrue(isRepositoryExists(rEntry.getName()));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rEntry.getName()));
 
-         assertEquals(200, cres.getStatus());
-         defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
+      assertEquals(200, cres.getStatus());
 
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
-      RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      // Check the repository /db6backup.
-      try
-      {
-         repositoryService.getRepository("db6backup");
-         fail("The repository /db6backup should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rEntry.getName(), dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(rEntry);
+      // restore by id, "remove-exising" is true
+      assertTrue(isRepositoryExists(rInfo.rName));
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY
+            + "/" + backupId + "/" + "true"));
 
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id), new URI(""),
-                           new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
+      assertEquals(200, cres.getStatus());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      waitRepositoryRestore(rInfo.rName);
+      assertTrue(isRepositoryExists(rInfo.rName));
 
-         assertEquals(200, cres.getStatus());
-      }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rInfo.rName));
+      assertEquals(200, cres.getStatus());
 
-      waitRepositoryRestore("db6backup");
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + "db6backup"), new URI(""), null, new InputHeadersMap(headers));
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.rName, dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      // restore by id, "remove-existing" if false
+      removeRepositoryFully(rInfo.rName);
+      assertFalse(isRepositoryExists(rInfo.rName));
 
-         assertEquals(200, cres.getStatus());
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY
+            + "/" + backupId + "/false"));
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+      waitRepositoryRestore(rInfo.rName);
+      assertTrue(isRepositoryExists(rInfo.rName));
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rInfo.rName));
 
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
+      assertEquals(200, cres.getStatus());
 
-      // Get restores info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORES_REPOSITORY), new URI(""), null,
-                           new InputHeadersMap(headers));
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, info.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.rName, dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         assertEquals(200, cres.getStatus());
+      // restore by backup-set path, "remove-existing" is true
+      assertTrue(isRepositoryExists(rEntry.getName()));
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY_BACKUP_SET + "/" + "true"
+            + "?backup-set-path=" + backupSetPath), rEntry);
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         assertNotNull(infoList);
+      assertEquals(200, cres.getStatus());
 
-         ShortInfo info = new ArrayList<ShortInfo>(infoList.getBackups()).get(0);
+      waitRepositoryRestore(rEntry.getName());
+      assertTrue(isRepositoryExists(rEntry.getName()));
+      
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rEntry.getName()));
 
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupId());
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
-   }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rEntry.getName(), dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-   public void testRestoreRepositoryExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
+      // restore by backup set path, "remove existing" is false
+      removeRepositoryFully(rEntry.getName());
+      assertFalse(isRepositoryExists(rEntry.getName()));
 
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
+      cres =
+         makePostRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY_BACKUP_SET + "/false" + "?backup-set-path="
+            + backupSetPath), rEntry);
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertEquals(200, cres.getStatus());
 
-         assertEquals(200, cres.getStatus());
+      waitRepositoryRestore(rEntry.getName());
+      assertTrue(isRepositoryExists(rEntry.getName()));
 
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rEntry.getName()));
+      assertEquals(200, cres.getStatus());
 
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         assertEquals(info.getRepositoryName(), "db6");
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rEntry.getName(), dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         id = info.getBackupId();
-      }
+      // restore by backup-set-path, "remove-existing" is true
+      assertTrue(isRepositoryExists(rInfo.rName));
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/true" + "?backup-set-path=" + backupSetPath));
 
-      // Getting default RepositoryEntry
-      RepositoryEntry defREntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      waitRepositoryRestore(rInfo.rName);
+      assertTrue(isRepositoryExists(rInfo.rName));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rInfo.rName));
 
-         assertEquals(200, cres.getStatus());
-         defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
-      }
+      assertEquals(200, cres.getStatus());
 
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defWEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.rName, dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
 
-         assertEquals(200, cres.getStatus());
-         defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
+      // restore by backup-set-path, "remove-existing" is false
+      removeRepositoryFully(rInfo.rName);
+      assertFalse(isRepositoryExists(rInfo.rName));
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET
+            + "/false" + "?backup-set-path=" + backupSetPath));
 
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
-      RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
+      waitRepositoryRestore(rInfo.rName);
+      assertTrue(isRepositoryExists(rInfo.rName));
 
-      // Check the repository /db6backup.
-      try
-      {
-         repositoryService.getRepository("db6backup");
-         // ok
-      }
-      catch (Exception e)
-      {
-         fail("The repository /db6backup should be exists.");
-      }
+      cres =
+         makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+            + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + rInfo.rName));
 
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(rEntry);
+      assertEquals(200, cres.getStatus());
 
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id + "/" + "true"),
-                           new URI(""),
-                           new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
+      dInfo = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6backup");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + "db6backup"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
+      assertNotNull(dInfo);
+      assertEquals(BackupManager.FULL_BACKUP_ONLY, dInfo.getBackupType().intValue());
+      assertNotNull(dInfo.getStartedTime());
+      assertNotNull(dInfo.getFinishedTime());
+      assertEquals(ShortInfo.RESTORE, dInfo.getType().intValue());
+      assertEquals(JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL, dInfo.getState().intValue());
+      assertEquals(rInfo.rName, dInfo.getRepositoryName());
+      assertNotNull(dInfo.getBackupConfig());
    }
 
-   public void testRestoreRepositoryExistsFalse() throws Exception
+   private boolean isRepositoryExists(String rName)
    {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      // Getting default RepositoryEntry
-      RepositoryEntry defREntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
-      }
-
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defWEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
-      RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
-
-      removeRepositoryFully("db6backup");
-      // Check the repository /db6backup.
-      try
-      {
-         repositoryService.getRepository("db6backup");
-         fail("The repository /db6backup should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
-
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(rEntry);
-
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id + "/" + "false"),
-                           new URI(""), new ByteArrayInputStream(json.toString().getBytes("UTF-8")),
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6backup");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + "db6backup"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
+      return isWorkspaceExists(rName, null);
    }
 
-   public void testRestoreRepositoryByIdOriginalConfigExistsTrue() throws Exception
+   
+   private boolean isWorkspaceExists(String rName, String wsName)
    {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      // Check the repository /db6backup.
+      ManageableRepository repository = null;
       try
       {
-         repositoryService.getRepository("db6");
-         // ok
+         repository = repositoryService.getRepository(rName);
       }
-      catch (Exception e)
+      catch (RepositoryException e)
       {
-         fail("The repository /db6 should be exists.");
+         return false;
       }
-
-      // Restore
+      catch (RepositoryConfigurationException e)
       {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id + "/" + "true"),
-                           new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
+         return false;
       }
 
-      waitRepositoryRestore("db6");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + "db6"),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6"));
-         Session sessin_ws = repositoryService.getRepository("db6").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
-   }
-
-   public void testRestoreRepositoryByIdOriginalConfigExistsFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-      }
-
-      removeRepositoryFully("db6");
-      // Check the repository /db6backup.
       try
       {
-         repositoryService.getRepository("db6");
-         fail("The repository /db6 should be not exists.");
+         repository.login(credentials, wsName);
       }
-      catch (Exception e)
+      catch (LoginException e)
       {
-         // ok
+         return false;
       }
-
-      // Restore
+      catch (NoSuchWorkspaceException e)
       {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY + "/" + id + "/" + "false"),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
+         return false;
       }
-
-      waitRepositoryRestore("db6");
-
-      // Get restore info
+      catch (RepositoryException e)
       {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + "db6"),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6"));
-         Session sessin_ws = repositoryService.getRepository("db6").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
+         return false;
       }
-   }
 
-   public void testRestoreRepositoryChangeConfigBackupSetExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-      String backupSetPath = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-
-         for (RepositoryBackupChainLog bcl : backup.getRepositoryBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
-
-      // Getting default RepositoryEntry
-      RepositoryEntry defREntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
-      }
-
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defWEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
-      RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
-
-      // Check the repository /db6backup.
-      try
-      {
-         repositoryService.getRepository("db6backup");
-         // ok
-      }
-      catch (Exception e)
-      {
-         fail("The repository /db6backup should be exists.");
-      }
-
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(rEntry);
-
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY_BACKUP_SET + "/"
-                           + "true" + "?backup-set-path=" + backupSetPath),
-                           new URI(""), new ByteArrayInputStream(json.toString().getBytes("UTF-8")),
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6backup");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + "db6backup"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
+      return true;
    }
 
-   public void testRestoreRepositoryChangeConfigBackupSetExistsFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-      String backupSetPath = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-
-         for (RepositoryBackupChainLog bcl : backup.getRepositoryBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
-
-      // Getting default RepositoryEntry
-      RepositoryEntry defREntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_REPOSITORY_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defREntry = (RepositoryEntry) getObject(RepositoryEntry.class, responseWriter.getBody());
-      }
-
-      // Getting default WorkspaceEntry
-      WorkspaceEntry defWEntry;
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.GET_DEFAULT_WORKSPACE_CONFIG), new URI(""), null,
-                           new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-         defWEntry = (WorkspaceEntry) getObject(WorkspaceEntry.class, responseWriter.getBody());
-      }
-
-      ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws", "jdbcjcr27"));
-      wsEntries.add(makeWorkspaceEntry(defWEntry, "db6backup", "ws2", "jdbcjcr27"));
-      RepositoryEntry rEntry = makeRepositoryEntry(defREntry, "db6backup", wsEntries);
-
-      removeRepositoryFully("db6backup");
-      // Check the repository /db6backup.
-      try
-      {
-         repositoryService.getRepository("db6backup");
-         fail("The repository /db6backup should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
-
-      // Restore
-      {
-         // Create JSON to WorkspaceEntry
-         JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
-         JsonValue json = generatorImpl.createJsonObject(rEntry);
-
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         headers.putSingle("Content-Type", "application/json; charset=UTF-8");
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("POST", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_REPOSITORY_BACKUP_SET + "/"
-                           + "false" + "?backup-set-path=" + backupSetPath), new URI(""), new ByteArrayInputStream(json.toString()
-                           .getBytes("UTF-8")), new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6backup");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + "db6backup"), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6backup", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6backup"));
-         Session sessin_ws = repositoryService.getRepository("db6backup").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
-   }
-
-   public void testRestoreRepositoryBackupSetExistsTrue() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-      String backupSetPath = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-
-         for (RepositoryBackupChainLog bcl : backup.getRepositoryBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
-
-      // Check the repository /db6.
-      try
-      {
-         repositoryService.getRepository("db6");
-         // ok
-      }
-      catch (Exception e)
-      {
-         fail("The repository /db6 should be exists.");
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "true"
-                           + "?backup-set-path=" + backupSetPath), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + "db6"),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6"));
-         Session sessin_ws = repositoryService.getRepository("db6").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
-   }
-
-   public void testRestoreRepositoryBackupSetExistsFalse() throws Exception
-   {
-      // Get backup id for backup on workspace /db6
-      String id = null;
-      String backupSetPath = null;
-
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.COMPLETED_BACKUPS_REPOSITORY_INFO), new URI(""),
-                           null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         ShortInfoList infoList = (ShortInfoList) getObject(ShortInfoList.class, responseWriter.getBody());
-         List<ShortInfo> list = new ArrayList<ShortInfo>(infoList.getBackups());
-
-         ShortInfo info = getBackupInfo(list);
-         assertNotNull(info);
-
-         assertEquals(info.getRepositoryName(), "db6");
-
-         id = info.getBackupId();
-
-         for (RepositoryBackupChainLog bcl : backup.getRepositoryBackupsLogs())
-         {
-            if (bcl.getBackupId().equals(id))
-            {
-               backupSetPath = URLEncoder.encode(bcl.getBackupConfig().getBackupDir().getCanonicalPath(), "UTF-8");
-               break;
-            }
-         }
-      }
-
-      removeRepositoryFully("db6");
-      // Check the repository /db6.
-      try
-      {
-         repositoryService.getRepository("db6");
-         fail("The repository /db6 should be not exists.");
-      }
-      catch (Exception e)
-      {
-         // ok
-      }
-
-      // Restore
-      {
-         // Execute restore
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.RESTORE_BACKUP_SET + "/" + "false"
-                           + "?backup-set-path=" + backupSetPath), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-      }
-
-      waitRepositoryRestore("db6");
-
-      // Get restore info
-      {
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + "db6"),
-                           new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
-         assertEquals(200, cres.getStatus());
-
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
-
-         assertNotNull(info);
-         assertEquals(BackupManager.FULL_AND_INCREMENTAL, info.getBackupType().intValue());
-         assertNotNull(info.getStartedTime());
-         assertNotNull(info.getFinishedTime());
-         assertEquals(ShortInfo.RESTORE, info.getType().intValue());
-         assertEquals(JobWorkspaceRestore.RESTORE_SUCCESSFUL, info.getState().intValue());
-         assertEquals("db6", info.getRepositoryName());
-         assertNotNull(info.getBackupConfig());
-
-         assertNotNull(repositoryService.getRepository("db6"));
-         Session sessin_ws = repositoryService.getRepository("db6").login(credentials, "ws");
-         assertNotNull(sessin_ws);
-         assertNotNull(sessin_ws.getRootNode());
-      }
-   }
-
-   public void testDropRepository() throws Exception
-   {
-
-      assertNotNull(repositoryService.getRepository("db5"));
-
-      for (String workspaceName : repositoryService.getRepository("db5").getWorkspaceNames())
-         forceCloseSession("db5", workspaceName);
-
-      try
-      {
-         repositoryService.removeRepository("db5");
-      }
-      catch (Exception e)
-      {
-         fail();
-      }
-   }
-
-   private int forceCloseSession(String repositoryName, String workspaceName) throws RepositoryException,
-            RepositoryConfigurationException
-   {
-      ManageableRepository mr = repositoryService.getRepository(repositoryName);
-      WorkspaceContainerFacade wc = mr.getWorkspaceContainer(workspaceName);
-
-      SessionRegistry sessionRegistry = (SessionRegistry) wc.getComponent(SessionRegistry.class);
-
-      return sessionRegistry.closeSessions(workspaceName);
-   }
-
-   @Override
-   protected WorkspaceEntry makeWorkspaceEntry(WorkspaceEntry defWEntry, String repoNmae, String wsName,
-            String sourceName)
-   {
-      WorkspaceEntry ws1back = new WorkspaceEntry();
-      ws1back.setName(wsName);
-      ws1back.setUniqueName(repoNmae + "_" + wsName);
-
-      ws1back.setAccessManager(defWEntry.getAccessManager());
-      ws1back.setCache(defWEntry.getCache());
-      ws1back.setLockManager(defWEntry.getLockManager());
-
-      // Indexer
-      ArrayList qParams = new ArrayList();
-      qParams.add(new SimpleParameterEntry("index-dir", "target" + File.separator + wsName));
-      QueryHandlerEntry qEntry = new QueryHandlerEntry(defWEntry.getQueryHandler().getType(), qParams);
-
-      ws1back.setQueryHandler(qEntry);
-
-      ArrayList params = new ArrayList();
-      for (Iterator i = defWEntry.getContainer().getParameters().iterator(); i.hasNext();)
-      {
-         SimpleParameterEntry p = (SimpleParameterEntry) i.next();
-         SimpleParameterEntry newp = new SimpleParameterEntry(p.getName(), p.getValue());
-
-         if (newp.getName().equals("source-name"))
-            newp.setValue(sourceName);
-         else if (newp.getName().equals("swap-directory"))
-            newp.setValue("target/temp/swap/" + wsName);
-         else if (newp.getName().equals("multi-db"))
-            newp.setValue("false");
-
-         params.add(newp);
-      }
-
-      ContainerEntry ce = new ContainerEntry(defWEntry.getContainer().getType(), params);
-      ws1back.setContainer(ce);
-
-      return ws1back;
-   }
-
-   protected RepositoryEntry makeRepositoryEntry(RepositoryEntry defREntry, String repoName,
-            ArrayList<WorkspaceEntry> wsEntries)
-   {
-      RepositoryEntry rEntry = new RepositoryEntry();
-      rEntry.setAccessControl(defREntry.getAccessControl());
-      rEntry.setAuthenticationPolicy(defREntry.getAuthenticationPolicy());
-      rEntry.setDefaultWorkspaceName(defREntry.getDefaultWorkspaceName());
-      rEntry.setName(repoName);
-      rEntry.setSecurityDomain(defREntry.getSecurityDomain());
-      rEntry.setSessionTimeOut(defREntry.getSessionTimeOut());
-      rEntry.setSystemWorkspaceName(defREntry.getSystemWorkspaceName());
-      rEntry.setWorkspaceEntries(wsEntries);
-
-      return rEntry;
-   }
-
+   
    /**
     * Will be created the Object from JSON binary data.
     * 
@@ -3094,7 +1137,6 @@
    /**
     * {@inheritDoc}
     */
-   @Override
    protected ExtendedBackupManager getBackupManager()
    {
       return (ExtendedBackupManager) container.getComponentInstanceOfType(BackupManager.class);
@@ -3102,76 +1144,53 @@
 
    protected void waitWorkspaceRestore(String repoName, String wsName) throws Exception
    {
-      boolean wait = true;
-
-      while (wait)
+      while (true)
       {
+         TesterContainerResponce cres =
+            makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+               + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + repoName + "/" + wsName));
 
-         // Get restore info to workspace /<repoName>/<wsName>
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" + repoName + "/"
-                           + wsName), new URI(""), null, new InputHeadersMap(headers));
-
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
          assertEquals(200, cres.getStatus());
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+         DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
          if (info.getState().intValue() == JobWorkspaceRestore.RESTORE_SUCCESSFUL
-                  || info.getState().intValue() == JobWorkspaceRestore.RESTORE_FAIL)
+            || info.getState().intValue() == JobWorkspaceRestore.RESTORE_FAIL)
          {
-            wait = false;
+            break;
          }
-         else
-         {
-            Thread.sleep(500);
-         }
+
+         Thread.sleep(500);
       }
    }
 
    protected void waitRepositoryRestore(String repoName) throws Exception
    {
-      boolean wait = true;
-
-      while (wait)
+      while (true)
       {
-         // Get restore info
-         MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-         ContainerRequestUserRole creq =
-                  new ContainerRequestUserRole("GET", new URI(HTTP_BACKUP_AGENT_PATH
-                           + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
-                           + repoName), new URI(""), null, new InputHeadersMap(headers));
+         TesterContainerResponce cres =
+            makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
+               + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/" + repoName));
 
-         ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
-         ContainerResponse cres = new ContainerResponse(responseWriter);
-         handler.handleRequest(creq, cres);
-
          assertEquals(200, cres.getStatus());
 
-         DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class, responseWriter.getBody());
+         DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class, cres.responseWriter.getBody());
 
          if (info.getState().intValue() == JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
-                  || info.getState().intValue() == JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
+            || info.getState().intValue() == JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
          {
-            wait = false;
+            break;
          }
-         else
-         {
-            Thread.sleep(500);
-         }
+
+         Thread.sleep(500);
       }
    }
 
-   private ShortInfo getBackupInfo(List<ShortInfo> list)
+   private ShortInfo getBackupInfo(List<ShortInfo> list, String rName)
    {
       for (ShortInfo info : list)
       {
-         if (info.getRepositoryName().equals("db6"))
+         if (info.getRepositoryName().equals(rName))
          {
             return info;
          }
@@ -3179,4 +1198,64 @@
 
       return null;
    }
+
+   private BackupChain backupWorkspace(RepoInfo rInfo) throws Exception
+   {
+      BackupConfig config = new BackupConfig();
+      config.setRepository(rInfo.rName);
+      config.setWorkspace(rInfo.wsName);
+      config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+      config.setBackupDir(backupDir);
+
+      BackupChain bch = backup.startBackup(config);
+      waitEndOfBackup(bch);
+
+      return bch;
+   }
+
+   private RepositoryBackupChain backupRepository(RepoInfo rInfo) throws Exception
+   {
+      RepositoryBackupConfig config = new RepositoryBackupConfig();
+      config.setRepository(rInfo.rName);
+      config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+      config.setBackupDir(backupDir);
+
+      RepositoryBackupChain bch = backup.startBackup(config);
+      waitEndOfBackup(bch);
+
+      return bch;
+   }
+
+   private TesterContainerResponce makeGetRequest(URI uri) throws Exception
+   {
+      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+
+      ContainerRequestUserRole creq =
+         new ContainerRequestUserRole("GET", uri, new URI(""), null, new InputHeadersMap(headers));
+
+      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
+      TesterContainerResponce cres = new TesterContainerResponce(responseWriter);
+      handler.handleRequest(creq, cres);
+
+      return cres;
+   }
+
+   private TesterContainerResponce makePostRequest(URI uri, Object object) throws Exception
+   {
+      JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
+      JsonValue json = generatorImpl.createJsonObject(object);
+
+      MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+      
+      headers.putSingle("Content-Type", "application/json; charset=UTF-8");
+      ContainerRequestUserRole creq =
+         new ContainerRequestUserRole("POST", uri, new URI(""), new ByteArrayInputStream(json.toString().getBytes(
+            "UTF-8")), new InputHeadersMap(headers));
+
+      ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
+      TesterContainerResponce cres = new TesterContainerResponce(responseWriter);
+      handler.handleRequest(creq, cres);
+
+      return cres;
+   }
 }

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java	2012-03-20 07:16:57 UTC (rev 5901)
@@ -25,12 +25,13 @@
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.core.CredentialsImpl;
 import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
-import org.exoplatform.services.jcr.ext.BaseStandaloneTest;
 import org.exoplatform.services.jcr.ext.app.SessionProviderService;
 import org.exoplatform.services.jcr.ext.app.ThreadLocalSessionProviderService;
+import org.exoplatform.services.jcr.ext.backup.AbstractBackupTestCase;
 import org.exoplatform.services.jcr.ext.backup.ContainerRequestUserRole;
+import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
 import org.exoplatform.services.jcr.ext.common.SessionProvider;
+import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
 import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
 import org.exoplatform.services.rest.RequestHandler;
 import org.exoplatform.services.rest.impl.ContainerResponse;
@@ -68,7 +69,7 @@
  * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a>
  * @version $Id: RestRepositoryServiceTest.java 111 2008-11-11 11:11:11Z rainf0x $
  */
-public class RestRepositoryServiceTest extends BaseStandaloneTest
+public class RestRepositoryServiceTest extends AbstractBackupTestCase
 {
    private String REST_REPOSITORY_SERVICE_PATH = RestRepositoryService.Constants.BASE_URL;
 
@@ -179,26 +180,8 @@
 
    public void testCreateRepository() throws Exception
    {
-      String wsName = "ws_over_rest_1";
-      String rName = "repo_over_rest";
+      RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI, null, null);
 
-      RepositoryEntry rDefault =
-         repositoryService.getConfig().getRepositoryConfiguration(
-            repositoryService.getConfig().getDefaultRepositoryName());
-
-      RepositoryEntry rEntry = new RepositoryEntry();
-
-      rEntry.setName(rName);
-      rEntry.setSessionTimeOut(3600000);
-      rEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
-      rEntry.setSecurityDomain("exo-domain");
-      rEntry.setSystemWorkspaceName(wsName);
-      rEntry.setDefaultWorkspaceName(wsName);
-
-      WorkspaceEntry wEntry =
-         makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName, "jdbcjcr_to_rest_repo_1", true);
-      rEntry.addWorkspace(wEntry);
-
       JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
       JsonValue json = generatorImpl.createJsonObject(rEntry);
 
@@ -219,7 +202,7 @@
       assertEquals(200, cres.getStatus());
 
       Session session =
-         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository(rEntry.getName()).login(new CredentialsImpl("root", "exo".toCharArray()));
       assertNotNull(session);
       assertNotNull(session.getRootNode());
       session.logout();
@@ -230,23 +213,12 @@
       String wsName = "ws_over:?//\\__rest!!_1";
       String rName = "repo:?//\\_over:_re??st";
 
-      RepositoryEntry rDefault =
-         repositoryService.getConfig().getRepositoryConfiguration(
-            repositoryService.getConfig().getDefaultRepositoryName());
-
-      RepositoryEntry rEntry = new RepositoryEntry();
-
+      RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI, null, null);
       rEntry.setName(rName);
-      rEntry.setSessionTimeOut(3600000);
-      rEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
-      rEntry.setSecurityDomain("exo-domain");
+      rEntry.getWorkspaceEntries().get(0).setName(wsName);
       rEntry.setSystemWorkspaceName(wsName);
       rEntry.setDefaultWorkspaceName(wsName);
 
-      WorkspaceEntry wEntry =
-         makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName, "jdbcjcr_to_rest_repo_1", true);
-      rEntry.addWorkspace(wEntry);
-
       JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
       JsonValue json = generatorImpl.createJsonObject(rEntry);
 
@@ -258,8 +230,6 @@
             + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), new URI(""), new ByteArrayInputStream(
             json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
 
-      System.out.print("testCreateRepository  : " + json.toString());
-
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
       handler.handleRequest(creq, cres);
@@ -275,14 +245,8 @@
 
    public void testCreateWorkspace() throws Exception
    {
-      String wsName = "ws_over_rest_2";
-      String rName = "repo_over_rest";
+      WorkspaceEntry wEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
 
-      WorkspaceEntry wEntry =
-         makeWorkspaceEntry(repositoryService.getDefaultRepository().getConfiguration().getWorkspaceEntries().get(0),
-            rName, wsName, "jdbcjcr_to_rest_repo_2", true);
-      wEntry.setAccessManager(null);
-
       JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
       JsonValue json = generatorImpl.createJsonObject(wEntry);
 
@@ -291,11 +255,9 @@
 
       ContainerRequestUserRole creq =
          new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-            + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE + "/" + rName), new URI(""),
+            + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE + "/db1"), new URI(""),
             new ByteArrayInputStream(json.toString().getBytes("UTF-8")), new InputHeadersMap(headers));
 
-      System.out.print("testCreateWorkspace  : " + json.toString());
-
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
       handler.handleRequest(creq, cres);
@@ -303,7 +265,8 @@
       assertEquals(200, cres.getStatus());
 
       Session session =
-         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
+         repositoryService.getRepository("db1").login(new CredentialsImpl("root", "exo".toCharArray()),
+            wEntry.getName());
       assertNotNull(session);
       assertNotNull(session.getRootNode());
 
@@ -312,19 +275,14 @@
 
    public void testRemoveWorkspace() throws Exception
    {
-      String wsName = "ws_over_rest_2";
-      String rName = "repo_over_rest";
-      Session session =
-         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
-      assertNotNull(session);
-      assertNotNull(session.getRootNode());
+      RepoInfo rInfo = createRepositoryAndGetSession();
 
       MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
 
       ContainerRequestUserRole creq =
          new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/" + wsName + "/false/"),
-            new URI(""), null, new InputHeadersMap(headers));
+            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rInfo.rName + "/" + rInfo.wsName
+            + "/false/"), new URI(""), null, new InputHeadersMap(headers));
 
       ByteArrayContainerResponseWriter responseWriter = new ByteArrayContainerResponseWriter();
       ContainerResponse cres = new ContainerResponse(responseWriter);
@@ -335,7 +293,8 @@
       //remove with prepare close sessions
       creq =
          new ContainerRequestUserRole("POST", new URI(REST_REPOSITORY_SERVICE_PATH
-            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rName + "/" + wsName + "/true/"),
+            + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE + "/" + rInfo.rName + "/" + rInfo.wsName
+            + "/true/"),
             new URI(""), null, new InputHeadersMap(headers));
 
       responseWriter = new ByteArrayContainerResponseWriter();
@@ -346,8 +305,9 @@
 
       try
       {
-         repositoryService.getRepository(rName).login(new CredentialsImpl("root", "exo".toCharArray()), wsName);
-         fail("The workspace /" + rName + "/" + wsName + "should be removed. ");
+         repositoryService.getRepository(rInfo.rName).login(new CredentialsImpl("root", "exo".toCharArray()),
+            rInfo.wsName);
+         fail("The workspace /" + rInfo.rName + "/" + rInfo.wsName + "should be removed. ");
       }
       catch (NoSuchWorkspaceException e)
       {
@@ -477,4 +437,10 @@
       }
 
    }
+
+   @Override
+   protected ExtendedBackupManager getBackupManager()
+   {
+      return null;
+   }
 }

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-configuration.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -825,413 +825,6 @@
             </properties-param>
          </init-params>
       </component-plugin>
-
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr6</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr6" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr7</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr7" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr8</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr8" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
- 
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr19</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr19" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr21</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr21" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr23</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr23" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr24</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr24" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr25</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr25" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr26</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr26" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr27</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr27" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr30</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/db8ws" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr31</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/db8ws2" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr_to_rest_repo_1</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr_to_rest_repo_1" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr_to_rest_repo_2</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr_to_rest_repo_2" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr_to_repository_restore_singel_db</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jdbcjcr_to_repository_restore_singel_db" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
     </external-component-plugins>
 	<external-component-plugins>
 		<target-component>org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator</target-component>

Modified: jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-jcr-ext-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-jcr-ext-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ext/src/test/resources/conf/standalone/test-jcr-ext-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -31,7 +31,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                   </properties>
@@ -77,9 +77,9 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1" />
                   </properties>
@@ -106,7 +106,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr1" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -115,9 +115,9 @@
             <workspace name="ws2">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                   </properties>
@@ -144,7 +144,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr2" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -153,9 +153,9 @@
             <workspace name="ws3">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr3" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws3" />
                   </properties>
@@ -182,7 +182,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr3" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -191,9 +191,9 @@
             <workspace name="ws4">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr4" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws4" />
                   </properties>
@@ -220,7 +220,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr4" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -229,9 +229,9 @@
             <workspace name="ws5">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr5" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws5" />
                   </properties>
@@ -258,7 +258,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr5" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -266,52 +266,6 @@
          </workspaces>
       </repository>\
 
-      <repository name="db2" system-workspace="ws" default-workspace="ws">
-         <security-domain>exo-domain</security-domain>
-         <access-control>optional</access-control>
-         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
-         <workspaces>
-            <workspace name="ws">
-               <!-- for system storage -->
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr19" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db2_ws" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db2_ws" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr19" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-         </workspaces>
-      </repository>
-      
       <repository name="db3" system-workspace="ws" default-workspace="ws">
          <security-domain>exo-domain</security-domain>
          <access-control>optional</access-control>
@@ -320,7 +274,7 @@
             <workspace name="ws">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr6" />
+                     <property name="source-name" value="jdbcjcr2" />
                      <property name="db-structure-type" value="single" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db3ws" />
@@ -363,7 +317,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr6" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr2" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -372,7 +326,7 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr6" />
+                     <property name="source-name" value="jdbcjcr2" />
                      <property name="db-structure-type" value="single" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db3ws1" />
@@ -415,7 +369,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr6" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr2" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -431,7 +385,7 @@
             <workspace name="ws">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr7" />
+                     <property name="source-name" value="jdbcjcr3" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db4ws" />
@@ -474,7 +428,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr7" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr3" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -483,7 +437,7 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr8" />
+                     <property name="source-name" value="jdbcjcr3" />
                      <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db4ws1" />
@@ -526,7 +480,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr8" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr3" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -534,316 +488,6 @@
          </workspaces>
       </repository>     
       
-      <repository name="db5" system-workspace="ws" default-workspace="ws">
-         <security-domain>exo-domain</security-domain>
-         <access-control>optional</access-control>
-         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
-         <workspaces>
-            <workspace name="ws">
-               <!-- for system storage -->
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr21" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db5_ws" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db5_ws" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr21" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-
-            <workspace name="ws1">
-               <!-- for system storage -->
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr23" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="multi" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db5_ws1" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db5_ws1" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr23" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-         </workspaces>
-      </repository>
-
-      <repository name="db6" system-workspace="ws" default-workspace="ws">
-         <security-domain>exo-domain</security-domain>
-         <access-control>optional</access-control>
-         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
-         <workspaces>
-            <workspace name="ws">
-               <!-- for system storage -->
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr24" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="single" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db6_ws" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db6_ws" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr24" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-
-            <workspace name="ws1">
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr25" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="single" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db6_ws1" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db6_ws1" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr25" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-
-            <workspace name="ws2">
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr26" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="single" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db6_ws2" />
-                  </properties>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db6_ws2" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr26" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-         </workspaces>
-      </repository>
-      
-      <repository name="db7" system-workspace="ws" default-workspace="ws">
-         <security-domain>exo-domain</security-domain>
-         <access-control>optional</access-control>
-         <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
-         <workspaces>
-            <workspace name="ws">
-               <!-- for system storage -->
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr_to_repository_restore_singel_db" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="single" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db7_ws" />
-                  </properties>
-                  <value-storages>
-                     <value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
-                        <properties>
-                           <property name="path" value="target/temp/values/db7_ws" />
-                        </properties>
-                        <filters>
-                           <filter property-type="Binary" />
-                        </filters>
-                     </value-storage>
-                  </value-storages>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db7_ws" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr_to_repository_restore_singel_db" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-
-            <workspace name="ws1">
-               <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
-                  <properties>
-                     <property name="source-name" value="jdbcjcr_to_repository_restore_singel_db" />
-                     <property name="dialect" value="auto" />
-                     <property name="db-structure-type" value="single" />
-                     <property name="max-buffer-size" value="200k" />
-                     <property name="swap-directory" value="target/temp/swap/db7_ws1" />
-                  </properties>
-                  <value-storages>
-                     <value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
-                        <properties>
-                           <property name="path" value="target/temp/values/db7_ws1" />
-                        </properties>
-                        <filters>
-                           <filter property-type="Binary" />
-                        </filters>
-                     </value-storage>
-                  </value-storages>
-               </container>
-               <cache enabled="true">
-                  <properties>
-                     <property name="max-size" value="5k" />
-                     <property name="live-time" value="1h" />
-                  </properties>
-               </cache>
-               <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
-                  <properties>
-                     <property name="index-dir" value="target/temp/index/db7_ws1" />
-                  </properties>
-               </query-handler>
-               <lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl">
-                  <properties>
-                     <property name="time-out" value="15m" />
-                     <property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock.xml" />
-                     <property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks" />
-                     <property name="jbosscache-cl-cache.jdbc.table.create" value="true" />
-                     <property name="jbosscache-cl-cache.jdbc.table.drop" value="false" />
-                     <property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_pk" />
-                     <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
-                     <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
-                     <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr_to_repository_restore_singel_db" />
-                     <property name="jbosscache-shareable" value="true" />
-                  </properties>
-               </lock-manager>
-            </workspace>
-         </workspaces>
-      </repository>
       <repository name="db8" system-workspace="ws" default-workspace="ws">
          <security-domain>exo-domain</security-domain>
          <access-control>optional</access-control>
@@ -852,7 +496,7 @@
             <workspace name="ws">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr30" />
+                     <property name="source-name" value="jdbcjcr4" />
                      <property name="db-structure-type" value="multi" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db4ws" />
@@ -895,7 +539,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr30" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr4" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -904,7 +548,7 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr31" />
+                     <property name="source-name" value="jdbcjcr5" />
                      <property name="db-structure-type" value="multi" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/db8ws1" />
@@ -947,7 +591,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr31" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr5" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>

Modified: jcr/branches/1.15.x/exo.jcr.component.ftp/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.ftp/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.ftp/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -31,7 +31,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="auto" />
-                     <property name="multi-db" value="false" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="204800" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                   </properties>
@@ -69,8 +69,8 @@
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="dialect" value="auto" />
-                     <property name="multi-db" value="false" />
                      <property name="max-buffer-size" value="204800" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                   </properties>

Modified: jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-configuration.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -254,141 +254,6 @@
          </init-params>
       </component-plugin>
       <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr1</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr2</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr2" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcrtck</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/portaltck" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr1tck</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcrtck" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
-         <name>bind.datasource</name>
-         <set-method>addPlugin</set-method>
-         <type>org.exoplatform.services.naming.BindReferencePlugin</type>
-         <init-params>
-            <value-param>
-               <name>bind-name</name>
-               <value>jdbcjcr2tck</value>
-            </value-param>
-            <value-param>
-               <name>class-name</name>
-               <value>javax.sql.DataSource</value>
-            </value-param>
-            <value-param>
-               <name>factory</name>
-               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
-            </value-param>
-            <properties-param>
-               <name>ref-addresses</name>
-               <description>ref-addresses</description>
-               <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
-               <property name="url" value="jdbc:hsqldb:file:target/temp/data/jcr2tck" />
-               <property name="username" value="sa" />
-               <property name="password" value="" />
-            </properties-param>
-         </init-params>
-      </component-plugin>
-      <component-plugin>
          <name>jotm.tx</name>
          <set-method>addPlugin</set-method>
          <type>org.exoplatform.services.naming.BindReferencePlugin</type>

Modified: jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-jcr-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.component.webdav/src/test/resources/conf/standalone/test-jcr-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -31,7 +31,7 @@
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="hsqldb" />
-                     <property name="multi-db" value="true" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws" />
                   </properties>
@@ -86,9 +86,9 @@
             <workspace name="ws1">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr1" />
+                     <property name="source-name" value="jdbcjcr" />
                      <property name="dialect" value="hsqldb" />
-                     <property name="multi-db" value="true" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws1" />
                   </properties>
@@ -125,7 +125,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr1" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>
@@ -134,9 +134,9 @@
             <workspace name="ws2">
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
-                     <property name="source-name" value="jdbcjcr2" />
-                     <property name="dialect" value="hsqldb" />
-                     <property name="multi-db" value="true" />
+                     <property name="source-name" value="jdbcjcr" />
+                     <property name="dialect" value="hsqldb" />
+                     <property name="db-structure-type" value="isolated" />
                      <property name="max-buffer-size" value="200k" />
                      <property name="swap-directory" value="target/temp/swap/ws2" />
                   </properties>
@@ -173,7 +173,7 @@
                      <property name="jbosscache-cl-cache.jdbc.fqn.column" value="fqn" />
                      <property name="jbosscache-cl-cache.jdbc.node.column" value="node" />
                      <property name="jbosscache-cl-cache.jdbc.parent.column" value="parent" />
-                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr2" />
+                     <property name="jbosscache-cl-cache.jdbc.datasource" value="jdbcjcr" />
                      <property name="jbosscache-shareable" value="true" />
                   </properties>
                </lock-manager>

Modified: jcr/branches/1.15.x/exo.jcr.framework.command/src/test/resources/conf/standalone/test-jcr-framework-config.xml
===================================================================
--- jcr/branches/1.15.x/exo.jcr.framework.command/src/test/resources/conf/standalone/test-jcr-framework-config.xml	2012-03-19 16:19:32 UTC (rev 5900)
+++ jcr/branches/1.15.x/exo.jcr.framework.command/src/test/resources/conf/standalone/test-jcr-framework-config.xml	2012-03-20 07:16:57 UTC (rev 5901)
@@ -30,7 +30,7 @@
                <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
                   <properties>
                      <property name="source-name" value="jdbcjcr" />
-                     <property name="multi-db" value="true" />
+                     <property name="db-structure-type" value="isolated" />
                   </properties>
                </container>
                <cache enabled="true">



More information about the exo-jcr-commits mailing list