Author: tolusha
Date: 2011-06-16 11:14:09 -0400 (Thu, 16 Jun 2011)
New Revision: 4547
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
Log:
EXOJCR-1377: removed tests from exclude list
* TestWorkspaceManagement.java
* TestWorkspaceRestore.java
* TestRepositoryManagement.java
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-06-16 08:05:21 UTC (rev 4546)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-06-16 15:14:09 UTC (rev 4547)
@@ -412,9 +412,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestRepositoryManagement.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceRestore.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceManagement.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
@@ -756,9 +753,6 @@
<exclude>org/exoplatform/services/jcr/**/api/TestAll.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/Base*.java</exclude>
<exclude>org/exoplatform/services/jcr/**/usecases/BaseUsecasesTest.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceManagement.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestWorkspaceRestore.java</exclude>
-
<exclude>org/exoplatform/services/jcr/**/impl/**/TestRepositoryManagement.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationStream.java</exclude>
<exclude>org/exoplatform/services/jcr/**/impl/**/TestJCRSerializationVersionRestore.java</exclude>
<exclude>org/exoplatform/services/jcr/usecases/common/RemoveSameNameSiblingUnfixedTest.java</exclude>
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestRepositoryManagement.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -20,20 +20,11 @@
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.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
-import org.exoplatform.services.jcr.util.IdGenerator;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
-import javax.jcr.NamespaceException;
-import javax.jcr.Node;
-import javax.jcr.PathNotFoundException;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.nodetype.NoSuchNodeTypeException;
-
/**
* @author <a href="mailto:Sergey.Kabashnyuk@gmail.com">Sergey
Kabashnyuk</a>
* @version $Id: TestRepositoryManagement.java 11907 2008-03-13 15:36:21Z ksm $
@@ -56,519 +47,85 @@
public TestRepositoryManagement()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
- // TODO remove this method
- public void createDafaultRepository(String repoName, String defaultWs) throws
Exception
- {
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName(repoName);
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName(defaultWs);
- repositoryEntry.setDefaultWorkspaceName(defaultWs);
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs(defaultWs, isDefaultWsMultiDb, null,
"target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs(defaultWs + IdGenerator.generate(), isDefaultWsMultiDb,
isDefaultWsMultiDb ? null
- : workspaceEntry.getContainer().getParameterValue("source-name"),
- "target/temp/values/" + IdGenerator.generate(),
wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(secondWs);
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
- }
-
- @Override
- public void setUp() throws Exception
- {
- // bindDs();
- super.setUp();
- wsEntry =
(WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
- if
("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
- {
- isDefaultWsMultiDb = true;
- }
-
- }
-
public void testAddNewRepository() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName("repo4TestCreateRepository");
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4TestCreateRepository");
- repositoryEntry.setDefaultWorkspaceName("ws4TestCreateRepository");
- //
- // List params = new ArrayList();
- // params.add(new SimpleParameterEntry("sourceName", getNewDs()));
- // params.add(new SimpleParameterEntry("db-type", "generic"));
- // params.add(new SimpleParameterEntry("multi-db", "false"));
- // params.add(new SimpleParameterEntry("update-storage",
"true"));
- // params.add(new SimpleParameterEntry("max-buffer-size",
"204800"));
- // params.add(new SimpleParameterEntry("swap-directory",
- // "target/temp/swap/ws"));
- //
- // ContainerEntry containerEntry = new
- //
ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList) params);
- // containerEntry.setParameters(params);
- //
- // WorkspaceEntry workspaceEntry = new
- // WorkspaceEntry("ws4TestCreateRepository",
"nt:unstructured");
- //
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4TestCreateRepository", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" +
IdGenerator.generate(), wsEntry
- .getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
-
- RepositoryImpl newRtepository =
(RepositoryImpl)service.getRepository("repo4TestCreateRepository");
- try
- {
-
- Session sess = newRtepository.getSystemSession(workspaceEntry.getName());
-
- Node root = sess.getRootNode();
- assertNotNull(root);
-
- assertNotNull(root.getNode("jcr:system"));
-
- assertNotNull(root.getNode("jcr:system/exo:namespaces"));
- root.addNode("testNode");
- sess.save();
- Node testNode = root.getNode("testNode");
- assertNotNull(testNode);
- sess.logout();
- }
- catch (RepositoryException e)
- {
- fail();
- }
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
- Session sess = null;
- try
- {
-
- sess = defRep.getSystemSession();
-
- Node root = sess.getRootNode();
- assertNotNull(root);
-
- assertNotNull(root.getNode("jcr:system"));
-
- assertNotNull(root.getNode("jcr:system/exo:namespaces"));
- // root.addNode("testNode");
- // sess.save();
- Node testNode = root.getNode("testNode");
-
- }
- catch (PathNotFoundException e)
- {
- // Ok
- }
- finally
- {
- if (sess != null)
- sess.logout();
- }
- service.removeRepository("repo4TestCreateRepository");
+ ManageableRepository repository = helper.createRepository(container, false, null);
+ assertNotNull(repository.login(credentials,
repository.getConfiguration().getSystemWorkspaceName()).getRootNode());
}
public void testAddNewRepositoryWithSameName() throws Exception
{
+ ManageableRepository repository = helper.createRepository(container, false, null);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName(service.getConfig().getDefaultRepositoryName());
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
-
repositoryEntry.setSystemWorkspaceName("ws4testAddNewRepositoryWithSameName");
-
repositoryEntry.setDefaultWorkspaceName("ws4testAddNewRepositoryWithSameName");
-
- // List params = new ArrayList();
- // params.add(new SimpleParameterEntry("sourceName", getNewDs()));
- // params.add(new SimpleParameterEntry("db-type", "generic"));
- // params.add(new SimpleParameterEntry("multi-db", "false"));
- // params.add(new SimpleParameterEntry("update-storage",
"true"));
- // params.add(new SimpleParameterEntry("max-buffer-size",
"204800"));
- // params.add(new SimpleParameterEntry("swap-directory",
- // "target/temp/swap/ws"));
- //
- // ContainerEntry containerEntry = new
- //
ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList) params);
- // containerEntry.setParameters(params);
-
- // WorkspaceEntry workspaceEntry = new
- // WorkspaceEntry("ws4TestCreateRepository",
"nt:unstructured");
- // workspaceEntry.setContainer(containerEntry);
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testAddNewRepositoryWithSameName",
isDefaultWsMultiDb, null, "target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
- repositoryEntry.addWorkspace(workspaceEntry);
-
try
{
- service.createRepository(repositoryEntry);
+ RepositoryEntry rEntry = helper.createRepositoryEntry(false, null, null);
+ rEntry.setName(repository.getConfiguration().getName());
+
+ helper.createRepository(container, rEntry);
fail();
}
- catch (RepositoryConfigurationException e)
+ catch (Exception e)
{
// ok
}
-
}
public void testCanRemove() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
+ ManageableRepository repository = helper.createRepository(container, false, null);
- repositoryEntry.setName("repo4testCanRemove");
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4testCanRemove");
- repositoryEntry.setDefaultWorkspaceName("ws4testCanRemove");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testCanRemove", isDefaultWsMultiDb, null,
"target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4testCanRemove2", isDefaultWsMultiDb,
isDefaultWsMultiDb ? null : wsEntry.getContainer()
- .getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME),
"target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
- // WorkspaceEntry secondWs = TestWorkspaceManagement.getNewWs(null, false,
- // dsName,null);
- repositoryEntry.addWorkspace(secondWs);
-
RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- service.createRepository(repositoryEntry);
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials,
repository.getConfiguration().getSystemWorkspaceName());
- RepositoryImpl newRtepository =
(RepositoryImpl)service.getRepository("repo4testCanRemove");
- try
- {
-
- Session sess = newRtepository.getSystemSession();
-
- Node root = sess.getRootNode();
- assertNotNull(root);
- sess.logout();
-
- Session sess2 = newRtepository.getSystemSession(secondWs.getName());
-
- Node root2 = sess2.getRootNode();
- assertNotNull(root2);
- assertFalse(service.canRemoveRepository("repo4testCanRemove"));
- sess2.logout();
- assertTrue(service.canRemoveRepository("repo4testCanRemove"));
- service.removeRepository("repo4testCanRemove");
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
-
+ assertFalse(service.canRemoveRepository(repository.getConfiguration().getName()));
+ session.logout();
+ assertTrue(service.canRemoveRepository(repository.getConfiguration().getName()));
}
public void testInitNameSpaces() throws Exception
{
- // Test initialization of common node types
- String REPONAME = "testInitNameSpaces";
- String WSNAME = "ws4" + REPONAME;
+ ManageableRepository repository = helper.createRepository(container, false, null);
- createDafaultRepository(REPONAME, WSNAME);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials,
repository.getConfiguration().getSystemWorkspaceName());
- RepositoryImpl newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- Session sess = newRepository.getSystemSession(WSNAME);
-
-
assertEquals("http://www.apache.org/jackrabbit/test",
sess.getNamespaceURI("test"));
-
assertEquals("http://www.exoplatform.org/jcr/test/1.0",
sess.getNamespaceURI("exojcrtest"));
-
- try
- {
- sess.getNamespaceURI("blabla");
- fail();
- }
- catch (NamespaceException e)
- {
- // ok;
- }
-
+
assertEquals("http://www.apache.org/jackrabbit/test",
session.getNamespaceURI("test"));
+
assertEquals("http://www.exoplatform.org/jcr/test/1.0",
session.getNamespaceURI("exojcrtest"));
}
public void testInitNodeTypes() throws Exception
{
+ ManageableRepository repository = helper.createRepository(container, false, null);
- // Test initialization of common node types
- String REPONAME = "testInitNodeTypesCommonRepository";
- String WSNAME = "ws4testInitNodeTypes";
+ SessionImpl session =
+ (SessionImpl)repository.login(credentials,
repository.getConfiguration().getSystemWorkspaceName());
- createDafaultRepository(REPONAME, WSNAME);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- RepositoryImpl newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- Session sess = newRepository.getSystemSession(WSNAME);
- Node newRoot = sess.getRootNode();
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode", "exojcrtest:sub1");
- sess.save();
- Node testNode = newRoot.getNode("testNode");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- fail();
- }
- try
- {
- newRoot.addNode("testNode2", "exojcrtest:sub2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- try
- {
- newRoot.addNode("testNode2", "exojcrtest:test2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
-
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
- // test initialization node types only for one repository
- REPONAME = "testInitNodeTypesRepository";
- createDafaultRepository(REPONAME, WSNAME);
-
- newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- sess = newRepository.getSystemSession(WSNAME);
- newRoot = sess.getRootNode();
-
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode2", "exojcrtest:sub2");
- sess.save();
- Node testNode = newRoot.getNode("testNode2");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
- try
- {
- newRoot.addNode("testNode3", "exojcrtest:test2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
- // test initialization node types only for one repository
- REPONAME = "testInitNodeTypesRepositoryTest2";
- createDafaultRepository(REPONAME, WSNAME);
-
- newRepository = (RepositoryImpl)service.getRepository(REPONAME);
- sess = newRepository.getSystemSession(WSNAME);
- newRoot = sess.getRootNode();
-
- try
- {
-
- assertNotNull(newRoot);
-
- assertNotNull(newRoot.getNode("jcr:system"));
-
- assertNotNull(newRoot.getNode("jcr:system/exo:namespaces"));
- newRoot.addNode("testNode4", "exojcrtest:test2");
- sess.save();
- Node testNode = newRoot.getNode("testNode4");
- assertNotNull(testNode);
- }
- catch (RepositoryException e)
- {
- fail();
- }
- try
- {
- newRoot.addNode("testNode5", "exojcrtest:sub2");
- fail();
- }
- catch (NoSuchNodeTypeException e)
- {
- // ok
- }
- sess.logout();
-
- assertTrue(service.canRemoveRepository(REPONAME));
-
- service.removeRepository(REPONAME);
-
+ // check if nt:folder nodetype exists
+ session.getRootNode().addNode("folder", "nt:folder");
+ session.save();
}
public void testRemove() throws Exception
{
- RepositoryEntry repositoryEntry = new RepositoryEntry();
+ ManageableRepository repository = helper.createRepository(container, false, null);
- repositoryEntry.setName("repo4testRemove");
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4testRemove");
- repositoryEntry.setDefaultWorkspaceName("ws4testRemove");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4testRemove", isDefaultWsMultiDb, null,
"target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4testRemove2", isDefaultWsMultiDb,
isDefaultWsMultiDb ? null : wsEntry.getContainer()
- .getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME),
"target/temp/values/" + IdGenerator.generate(),
- wsEntry.getContainer());
- repositoryEntry.addWorkspace(secondWs);
-
RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ service.removeRepository(repository.getConfiguration().getName());
- service.createRepository(repositoryEntry);
-
- RepositoryImpl newRtepository =
(RepositoryImpl)service.getRepository("repo4testRemove");
- assertTrue(service.canRemoveRepository("repo4testRemove"));
-
- service.removeRepository("repo4testRemove");
- }
-
- public void testRemoveOtherThread() throws Exception
- {
- RepositoryEntry repositoryEntry = new RepositoryEntry();
-
- repositoryEntry.setName("repo4RemoveOtherThread");
- repositoryEntry.setSessionTimeOut(3600000);
-
repositoryEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
- repositoryEntry.setSecurityDomain("exo-domain");
- repositoryEntry.setSystemWorkspaceName("ws4RemoveOtherThread");
- repositoryEntry.setDefaultWorkspaceName("ws4RemoveOtherThread");
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("ws4RemoveOtherThread", isDefaultWsMultiDb, null,
"target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(workspaceEntry);
-
- WorkspaceEntry secondWs =
- helper.getNewWs("ws4RemoveOtherThread2", isDefaultWsMultiDb,
isDefaultWsMultiDb ? null : wsEntry
- .getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME),
"target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
-
- repositoryEntry.addWorkspace(secondWs);
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
-
- service.createRepository(repositoryEntry);
-
- // RepositoryImpl newRepository = (RepositoryImpl)
- // service.getRepository("repo4RemoveOtherThread");
- assertTrue(service.canRemoveRepository("repo4RemoveOtherThread"));
-
- RepositoryRemover remover = new
RepositoryRemover("repo4RemoveOtherThread", service);
- remover.start();
- Thread.sleep(1000 * 10);// 10 sec
try
{
- service.getRepository("repo4RemoveOtherThread");
- fail();
+ service.getRepository(repository.getConfiguration().getName());
}
- catch (RepositoryException e)
+ catch (Exception e)
{
- // ok
- }
- }
- private class RepositoryRemover extends Thread
- {
- private final String repoName;
-
- private final RepositoryService service;
-
- RepositoryRemover(String repoName, RepositoryService service)
- {
- this.repoName = repoName;
- this.service = service;
-
}
-
- @Override
- public void run()
- {
- try
- {
- if (service.canRemoveRepository(repoName))
- service.removeRepository(repoName);
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- }
- }
}
}
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceManagement.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 eXo Platform SAS.
+ * CopSyright (C) 2009 eXo Platform SAS.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
@@ -19,21 +19,17 @@
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.ContainerEntry;
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.ValueStorageEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
-import org.exoplatform.services.jcr.util.IdGenerator;
-import java.io.File;
-import java.util.List;
+import java.util.ArrayList;
-import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import javax.jcr.Session;
/**
* @author <a href="mailto:Sergey.Kabashnyuk@gmail.com">Sergey
Kabashnyuk</a>
@@ -50,359 +46,152 @@
public TestWorkspaceManagement()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
- @Override
- public void setUp() throws Exception
+ // single db test only
+ public void testAddWorkspaceWithNewDS() throws Exception
{
- super.setUp();
- wsEntry =
(WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
- if
("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
+ ManageableRepository repository = helper.createRepository(container, false, null);
+
+ try
{
- isDefaultWsMultiDb = true;
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false,
"not-existed-ds");
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- }
-
- // single db test only
- public void testAddSingleDbWsWithNewDs() throws Exception
- {
- if (!isDefaultWsMultiDb)
+ catch (Exception e)
{
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("SingleDbWsWithNewDs", true, null,
"target/temp/values/" + IdGenerator.generate(), wsEntry
- .getContainer());
-
- try
- {
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (RepositoryException e)
- {
- e.printStackTrace();
- fail();
- }
- catch (RepositoryConfigurationException e)
- {
- // ok;
- }
+ // ok;
}
}
- public void testAddWorkspaceWithExistName() throws RepositoryConfigurationException,
Exception
+ public void testAddWorkspaceWithExistingName() throws
RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = null;
- String[] names = null;
try
{
- defRep = (RepositoryImpl)service.getDefaultRepository();
- String sysWs = defRep.getSystemWorkspaceName();
- assertNotNull(sysWs);
- names = defRep.getWorkspaceNames();
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ wsEntry.setName(repository.getConfiguration().getSystemWorkspaceName());
+
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- catch (RepositoryException e)
- {
- fail(e.getLocalizedMessage());
- }
catch (RepositoryConfigurationException e)
{
- fail(e.getLocalizedMessage());
+ // ok;
}
- if (defRep == null || names == null)
- fail("Fail init params");
-
- for (int i = 0; i < names.length; i++)
- {
- WorkspaceEntry workspaceEntry =
- helper.getNewWs(names[i], isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- try
- {
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (RepositoryConfigurationException e)
- {
- // Ok
- }
- catch (RepositoryException e)
- {
- fail();
- }
- }
}
public void testAddWorkspaceWithIvalidVs() throws RepositoryConfigurationException,
Exception
{
- File file = File.createTempFile("test", ".dat");
- file.deleteOnExit();
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("WsInvalidVs", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), file.getAbsolutePath(),
wsEntry.getContainer());
try
{
- helper.createWorkspace(workspaceEntry, container);
- fail();
- }
- catch (Throwable e)
- {
- // ok
- // e.printStackTrace();
- // log.info(e.getLocalizedMessage());
- }
- finally
- {
- file.delete();
- }
- }
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
- public void testAddWorkspaceWithValidVs() throws Exception
- {
+ ValueStorageEntry valueStorageEntry =
wsEntry.getContainer().getValueStorages().get(0);
+
+ ArrayList<SimpleParameterEntry> spe = new
ArrayList<SimpleParameterEntry>();
+ spe.add(new SimpleParameterEntry("path", "/unknown/path"));
+ valueStorageEntry.setParameters(spe);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("WsValidVs", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" +
IdGenerator.generate(), wsEntry
- .getContainer());
+ wsEntry.getContainer().getValueStorages().set(0, valueStorageEntry);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();;
-
- helper.createWorkspace(workspaceEntry, container);
-
- assertNotNull(defRep);
- RepositoryEntry repoEntry = defRep.getConfiguration();
- List<WorkspaceEntry> wsEntrys = repoEntry.getWorkspaceEntries();
-
- for (WorkspaceEntry wEntry : wsEntrys)
+ helper.addWorkspace(repository, wsEntry);
+ }
+ catch (RepositoryConfigurationException e)
{
- if (wEntry.getName().equals(workspaceEntry.getName()))
- {
- ContainerEntry containerEntry = wEntry.getContainer();
- assertNotNull(containerEntry);
- assertNotNull(containerEntry.getValueStorages());
- assertEquals(1, containerEntry.getValueStorages().size());
- }
+ // ok;
}
-
}
public void testCreateWsNoConfig() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsnoconfig", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
try
{
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.createWorkspace(workspaceEntry.getName());
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ wsEntry.setContainer(new ContainerEntry(
+
"org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer", new
ArrayList()));
+
+ helper.addWorkspace(repository, wsEntry);
fail();
}
- catch (RepositoryException e)
+ catch (Exception e)
{
+ // ok;
}
- catch (RepositoryConfigurationException e)
- {
- }
-
}
public void testInitNewWS() throws RepositoryConfigurationException, Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- WorkspaceEntry workspaceEntry = null;
- workspaceEntry =
- helper.getNewWs("newws", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- helper.createWorkspace(workspaceEntry, container);
-
- doTestOnWorkspace(workspaceEntry.getName());
- }
-
- public void testMixMultiAndSingleDbWs() throws RepositoryConfigurationException,
Exception
- {
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("MixMultiAndSingleDbWs", !isDefaultWsMultiDb, null,
"target/temp/values/"
- + IdGenerator.generate(), wsEntry.getContainer());
try
{
- helper.createWorkspace(workspaceEntry, container);
- fail();
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
+ helper.addWorkspace(repository, wsEntry);
+
+ SessionImpl session = (SessionImpl)repository.login(credentials,
wsEntry.getName());
+ assertNotNull(session.getRootNode());
}
catch (RepositoryException e)
{
+ e.printStackTrace();
fail();
}
- catch (RepositoryConfigurationException e)
- {
- // e.printStackTrace();
- // ok;
- }
- catch (Throwable e)
- {
- boolean isRepoConfEx = false;
- Throwable tempe = e;
- do
- {
- if (tempe instanceof RepositoryConfigurationException)
- {
- isRepoConfEx = true;
- break;
- }
- tempe = tempe.getCause();
- }
- while ((tempe != null));
-
- assertTrue(isRepoConfEx);
- }
}
- public void testRemoveSystemWorkspace() throws Exception
+ public void testMixMultiAndSingleDbWs() throws RepositoryConfigurationException,
Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
- String systemWsName = defRep.getSystemWorkspaceName();
- assertFalse(defRep.canRemoveWorkspace(systemWsName));
- }
-
- public void testRemoveWorkspace() throws Exception
- {
-
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsForRemove", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" +
IdGenerator.generate(), wsEntry
- .getContainer());
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
try
{
- helper.createWorkspace(workspaceEntry, container);
- doTestOnWorkspace(workspaceEntry.getName());
- assertTrue(defRep.canRemoveWorkspace(workspaceEntry.getName()));
- String[] names = service.getDefaultRepository().getWorkspaceNames();
- service.getDefaultRepository().removeWorkspace(workspaceEntry.getName());
- String[] namesAfter = service.getDefaultRepository().getWorkspaceNames();
-
- // remove one
- assertTrue(names.length == namesAfter.length + 1);
- for (int i = 0; i < namesAfter.length; i++)
- {
- if (workspaceEntry.getName().equals(namesAfter[i]))
- {
- fail();
- }
- }
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(true, dsName);
+ helper.addWorkspace(repository, wsEntry);
+ fail();
}
- catch (RepositoryException e)
+ catch (Exception e)
{
- e.printStackTrace();
- fail(e.getLocalizedMessage());
+ // ok;
}
- catch (RepositoryConfigurationException e)
- {
- fail(e.getLocalizedMessage());
- }
- if (defRep != null)
- {
- try
- {
- Session sess = defRep.getSystemSession(workspaceEntry.getName());
- fail();
- }
- catch (RepositoryException e)
- {
- // Ok
- }
- }
}
-
- public void testRemoveWorkspaceFromDB() throws Exception
+
+ public void testRemoveSystemWorkspace() throws Exception
{
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
- WorkspaceEntry workspaceEntry =
- helper.getNewWs("wsForRemove", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" +
IdGenerator.generate(), wsEntry
- .getContainer());
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep = (RepositoryImpl)service.getDefaultRepository();
try
{
- helper.createWorkspace(workspaceEntry, container);
- doTestOnWorkspace(workspaceEntry.getName());
- assertTrue(defRep.canRemoveWorkspace(workspaceEntry.getName()));
- String[] names = service.getDefaultRepository().getWorkspaceNames();
- service.getDefaultRepository().removeWorkspace(workspaceEntry.getName());
- String[] namesAfter = service.getDefaultRepository().getWorkspaceNames();
-
- // remove one
- assertTrue(names.length == namesAfter.length + 1);
- for (int i = 0; i < namesAfter.length; i++)
- {
- if (workspaceEntry.getName().equals(namesAfter[i]))
- {
- fail();
- }
- }
+
repository.removeWorkspace(repository.getConfiguration().getSystemWorkspaceName());
+ fail();
}
catch (RepositoryException e)
{
- e.printStackTrace();
- fail(e.getLocalizedMessage());
}
- catch (RepositoryConfigurationException e)
- {
- fail(e.getLocalizedMessage());
- }
- if (defRep != null)
- {
- try
- {
- Session sess = defRep.getSystemSession(workspaceEntry.getName());
- fail();
- }
- catch (RepositoryException e)
- {
- // Ok
- }
- }
}
- private void doTestOnWorkspace(String wsName) throws RepositoryException,
RepositoryConfigurationException
+ public void testRemoveWorkspace() throws Exception
{
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- Session sess = service.getDefaultRepository().getSystemSession(wsName);
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
+ WorkspaceEntry wsEntry = helper.createWorkspaceEntry(false, dsName);
- Node root2 = sess.getRootNode();
- assertNotNull(root2);
+ helper.addWorkspace(repository, wsEntry);
+ assertEquals(2, repository.getWorkspaceNames().length);
- // assertNotNull(root2.getNode("jcr:system"));
- //
- // assertNotNull(root2.getNode("jcr:system/exo:namespaces"));
- root2.addNode("node1");
- assertTrue(root2.hasNode("node1"));
- sess.save();
- assertTrue(root2.hasNode("node1"));
- root2.getNode("node1").remove();
- assertFalse(root2.hasNode("node1"));
- sess.save();
- assertFalse(root2.hasNode("node1"));
- sess.logout();
+ repository.removeWorkspace(wsEntry.getName());
+ assertEquals(1, repository.getWorkspaceNames().length);
}
-
}
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/core/TestWorkspaceRestore.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -52,44 +52,12 @@
private final Log log =
ExoLogger.getLogger("exo.jcr.component.core.TestWorkspaceRestore");
- private final TesterConfigurationHelper helper =
TesterConfigurationHelper.getInstence();
+ private final TesterConfigurationHelper helper =
TesterConfigurationHelper.getInstance();
private WorkspaceEntry wsEntry;
private boolean isDefaultWsMultiDb;
- public void _testRestore() throws Exception
- {
- Session defSession = repository.login(this.credentials, "defWs");
- Node defRoot = defSession.getRootNode();
-
- Node node1 = defRoot.addNode("node1");
- node1.setProperty("p1", 2);
- defSession.save();
-
- File content = File.createTempFile("data", ".xml");
- content.deleteOnExit();
- OutputStream os = new BufferedOutputStream(new FileOutputStream(content));
- defSession.exportSystemView(defRoot.getPath(), os, false, false);
- os.close();
- defSession.logout();
- WorkspaceEntry workspaceEntry = null;
- workspaceEntry =
- helper.getNewWs("testRestore", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
- assertNotNull(workspaceEntry);
-
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
-
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.configWorkspace(workspaceEntry);
-
- defRep.importWorkspace(workspaceEntry.getName(), new BufferedInputStream(new
FileInputStream(content)));
-
- doTestOnWorkspace(workspaceEntry.getName());
- }
-
@Override
public void setUp() throws Exception
{
@@ -104,8 +72,10 @@
WorkspaceEntry workspaceEntry = null;
workspaceEntry =
- helper.getNewWs("defWs", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("defWs", isDefaultWsMultiDb,
+
wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
+
helper.createWorkspace(workspaceEntry, container);
isDefaultWsCreated = true;
}
@@ -114,8 +84,9 @@
public void testRestore() throws RepositoryConfigurationException, Exception
{
WorkspaceEntry workspaceEntry =
- helper.getNewWs("testResotore", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("testResotore", isDefaultWsMultiDb,
+
wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
RepositoryImpl defRep;
@@ -143,8 +114,9 @@
defSession.logout();
WorkspaceEntry workspaceEntry = null;
workspaceEntry =
- helper.getNewWs("testRestoreBadXml", isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), null, wsEntry.getContainer());
+ helper.getNewWs("testRestoreBadXml", isDefaultWsMultiDb,
+
wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME), null,
+ wsEntry.getContainer(), true);
assertNotNull(workspaceEntry);
RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/storage/ValueStoragePluginTest.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -25,8 +25,8 @@
import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
-import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
+import org.exoplatform.services.jcr.util.TesterConfigurationHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -205,7 +205,7 @@
private String createWs() throws Exception
{
- TesterConfigurationHelper helper = TesterConfigurationHelper.getInstence();
+ TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
WorkspaceEntry wsEntry =
(WorkspaceEntry)session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
boolean isDefaultWsMultiDb = false;
if
("true".equals(wsEntry.getContainer().getParameterValue("multi-db")))
@@ -213,12 +213,9 @@
isDefaultWsMultiDb = true;
}
WorkspaceEntry workspaceEntry =
- helper.getNewWs(IdGenerator.generate(), isDefaultWsMultiDb,
wsEntry.getContainer().getParameterValue(
- JDBCWorkspaceDataContainer.SOURCE_NAME), "target/temp/values/" +
IdGenerator.generate(), wsEntry
- .getContainer());
+ helper.createWorkspaceEntry(isDefaultWsMultiDb,
+
wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.SOURCE_NAME));
- helper.createWorkspace(workspaceEntry, container);
-
return workspaceEntry.getName();
}
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -59,7 +59,7 @@
public TestDBCleaner()
{
super();
- this.helper = TesterConfigurationHelper.getInstence();
+ this.helper = TesterConfigurationHelper.getInstance();
}
@SuppressWarnings("deprecation")
Modified:
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-06-16
08:05:21 UTC (rev 4546)
+++
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-06-16
15:14:09 UTC (rev 4547)
@@ -27,10 +27,12 @@
import org.exoplatform.services.jcr.config.LockPersisterEntry;
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.ValueStorageEntry;
import org.exoplatform.services.jcr.config.ValueStorageFilterEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
+import org.exoplatform.services.jcr.core.ManageableRepository;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
@@ -38,8 +40,6 @@
import org.exoplatform.services.log.Log;
import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
@@ -66,49 +66,188 @@
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.exoplatform.services.naming.SimpleContextFactory");
}
- public void createWorkspace(WorkspaceEntry workspaceEntry, ExoContainer container)
+ /**
+ * Add new workspace to repository.
+ */
+ public void addWorkspace(ManageableRepository repository, WorkspaceEntry
workspaceEntry)
throws RepositoryConfigurationException, RepositoryException
{
- RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
- RepositoryImpl defRep;
+ repository.configWorkspace(workspaceEntry);
+ repository.createWorkspace(workspaceEntry.getName());
+ }
- defRep = (RepositoryImpl)service.getDefaultRepository();
- defRep.configWorkspace(workspaceEntry);
- defRep.createWorkspace(workspaceEntry.getName());
+ /**
+ * Create new datasource.
+ *
+ * @return datasource name
+ */
+ public String createDatasource() throws Exception
+ {
+ String dsName = IdGenerator.generate();
+ Properties properties = new Properties();
+ properties.setProperty("driverClassName",
"org.hsqldb.jdbcDriver");
+ properties.setProperty("url",
"jdbc:hsqldb:file:target/temp/data/" + dsName);
+ properties.setProperty("username", "sa");
+ properties.setProperty("password", "");
+
+ DataSource ds = BasicDataSourceFactory.createDataSource(properties);
+
+ new InitialContext().bind(dsName, ds);
+
+ return dsName;
+
}
- public String getNewDataSource(String type) throws Exception
+ public ManageableRepository createRepository(ExoContainer container, boolean
isMultiDb, String dsName)
+ throws Exception
{
+ RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ RepositoryEntry repoEntry = createRepositoryEntry(isMultiDb, null, dsName);
+ service.createRepository(repoEntry);
- String newDS = IdGenerator.generate();
- Properties properties = new Properties();
+ return service.getRepository(repoEntry.getName());
+ }
- properties.setProperty("driverClassName",
"org.hsqldb.jdbcDriver");
- String newurl = "jdbc:hsqldb:file:target/temp/data/" + newDS;
+ public ManageableRepository createRepository(ExoContainer container, RepositoryEntry
repoEntry) throws Exception
+ {
+ RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ service.createRepository(repoEntry);
- log.info("New url " + newurl);
+ return service.getRepository(repoEntry.getName());
+ }
- properties.setProperty("url", newurl);
- properties.setProperty("username", "sa");
- properties.setProperty("password", "");
- DataSource bds = BasicDataSourceFactory.createDataSource(properties);
- if (!newurl.contains("hsqldb"))
+ /**
+ * Create workspace entry.
+ */
+ public RepositoryEntry createRepositoryEntry(boolean isMultiDb, String systemWSName,
String dsName) throws Exception
+ {
+ // create system workspace entry
+ List<String> ids = new ArrayList<String>();
+ ids.add("id");
+ WorkspaceEntry wsEntry = createWorkspaceEntry(isMultiDb, dsName, ids);
+
+ if (systemWSName != null)
{
- createDatabase(bds, newDS);
+ wsEntry.setName(systemWSName);
}
- new InitialContext().bind(newDS, bds);
- return newDS;
+ RepositoryEntry repository = new RepositoryEntry();
+ repository.setSystemWorkspaceName(wsEntry.getName());
+ repository.setDefaultWorkspaceName(wsEntry.getName());
+ repository.setName("repo-" + IdGenerator.generate());
+ repository.setSessionTimeOut(3600000);
+
repository.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
+ repository.setSecurityDomain("exo-domain");
+ repository.addWorkspace(wsEntry);
+ return repository;
}
- public WorkspaceEntry getNewWs(String wsName, boolean isMultiDb, String dsName, String
vsPath, ContainerEntry entry)
+ /**
+ * Create workspace entry.
+ */
+ public WorkspaceEntry createWorkspaceEntry(boolean isMultiDb, String dsName) throws
Exception
+ {
+ List<String> ids = new ArrayList<String>();
+ ids.add("id");
+
+ return createWorkspaceEntry(isMultiDb, dsName, ids);
+ }
+
+ /**
+ * Create workspace entry.
+ */
+ public WorkspaceEntry createWorkspaceEntry(boolean isMultiDb, String dsName,
List<String> valueStorageIds)
throws Exception
{
- return getNewWs(wsName, isMultiDb, dsName, vsPath, entry, true);
+ if (dsName == null)
+ {
+ dsName = createDatasource();
+ }
+
+ String id = IdGenerator.generate();
+ String wsName = "ws-" + id;
+
+ // container entry
+ List params = new ArrayList();
+ params.add(new SimpleParameterEntry("source-name", dsName));
+ params.add(new SimpleParameterEntry("multi-db", isMultiDb ?
"true" : "false"));
+ params.add(new SimpleParameterEntry("max-buffer-size",
"204800"));
+ params.add(new SimpleParameterEntry("dialect", "auto"));
+ params.add(new SimpleParameterEntry("swap-directory",
"target/temp/swap/" + wsName));
+
+ ContainerEntry containerEntry =
+ new
ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
+ (ArrayList)params);
+ containerEntry.setParameters(params);
+
+ // value storage
+ ArrayList list = new ArrayList();
+ if (valueStorageIds != null)
+ {
+ for (String vsId : valueStorageIds)
+ {
+ 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.SimpleFileValueStorage",
+ vsparams);
+ ArrayList<SimpleParameterEntry> spe = new
ArrayList<SimpleParameterEntry>();
+ spe.add(new SimpleParameterEntry("path",
"target/temp/values/" + wsName + "-" + vsId));
+ valueStorageEntry.setId(vsId);
+ valueStorageEntry.setParameters(spe);
+ valueStorageEntry.setFilters(vsparams);
+
+ // containerEntry.setValueStorages();
+ containerEntry.setParameters(params);
+ list.add(valueStorageEntry);
+ }
+ }
+
+ containerEntry.setValueStorages(list);
+
+ // Indexer
+ params = new ArrayList();
+ params.add(new SimpleParameterEntry("index-dir",
"target/temp/index/" + wsName));
+ QueryHandlerEntry qEntry =
+ new
QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex",
params);
+
+ // Cache
+ ArrayList cacheParams = new ArrayList();
+ cacheParams.add(new SimpleParameterEntry("maxSize", "2000"));
+ cacheParams.add(new SimpleParameterEntry("liveTime", "20m"));
+ CacheEntry cacheEntry = new CacheEntry(cacheParams);
+
cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
+
+ WorkspaceEntry workspaceEntry = new WorkspaceEntry();
+ workspaceEntry.setContainer(containerEntry);
+ workspaceEntry.setCache(cacheEntry);
+ workspaceEntry.setQueryHandler(qEntry);
+ workspaceEntry.setName(wsName);
+ workspaceEntry.setUniqueName(wsName);
+
+ return workspaceEntry;
}
+ public List<String> getValueStorageIds(ArrayList<ValueStorageEntry>
entries)
+ {
+ List<String> ids = new ArrayList<String>();
+ if (entries != null)
+ {
+ for (ValueStorageEntry entry : entries)
+ {
+ ids.add(entry.getId());
+ }
+ }
+
+ return ids;
+ }
+
+ @Deprecated
public WorkspaceEntry getNewWs(String wsName, boolean isMultiDb, String dsName, String
vsPath, ContainerEntry entry,
boolean newMultiDbDS) throws Exception
{
@@ -129,7 +268,7 @@
if (newMultiDbDS && (isMultiDb || dsName == null))
{
- dsName = getNewDataSource("");
+ dsName = createDatasource();
}
List params = new ArrayList();
@@ -220,124 +359,20 @@
return workspaceEntry;
}
- // public WorkspaceEntry getNewWsOnDataSource(String wsName, boolean isMultiDb,
String dsName, String vsPath,
- // ContainerEntry entry) throws Exception
- // {
- //
- // String dbDialect = null;
- // if (dsName != null)
- // {
- // DataSource ds = (DataSource)new InitialContext().lookup(dsName);
- // if (ds != null)
- // {
- // Connection jdbcConn = null;
- //
- // jdbcConn = ds.getConnection();
- // dbDialect = DialectDetecter.detect(jdbcConn.getMetaData());
- // }
- // }
- //
- // List params = new ArrayList();
- //
- // if (isMultiDb && dsName == null)
- // {
- // dsName = getNewDataSource("");
- // }
- //
- // params.add(new SimpleParameterEntry("sourceName", dsName));
- // params.add(new SimpleParameterEntry("db-type",
"generic"));
- // params.add(new SimpleParameterEntry("multi-db", isMultiDb ?
"true" : "false"));
- // params.add(new SimpleParameterEntry("update-storage",
"true"));
- // params.add(new SimpleParameterEntry("max-buffer-size",
"204800"));
- //
- // if (dbDialect != null)
- // {
- // params.add(new SimpleParameterEntry(JDBCWorkspaceDataContainer.DB_DIALECT,
dbDialect));
- // }
- // else if (entry.getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT) !=
null)
- // {
- // params.add(new SimpleParameterEntry(JDBCWorkspaceDataContainer.DB_DIALECT,
entry
- // .getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT)));
- // }
- //
- // String oldSwap = entry.getParameterValue("swap-directory");
- // String newSwap = oldSwap.substring(0, oldSwap.lastIndexOf('/')) +
'/' + wsName;
- //
- // params.add(new SimpleParameterEntry("swap-directory", newSwap));
- //
- // ContainerEntry containerEntry =
- // new
ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
- // (ArrayList)params);
- // containerEntry.setParameters(params);
- //
- // if (vsPath != null)
- // {
- //
- // 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.SimpleFileValueStorage",
vsparams);
- // ArrayList<SimpleParameterEntry> spe = new
ArrayList<SimpleParameterEntry>();
- // spe.add(new SimpleParameterEntry("path", vsPath));
- // valueStorageEntry.setId(IdGenerator.generate());
- // valueStorageEntry.setParameters(spe);
- // valueStorageEntry.setFilters(vsparams);
- //
- // // containerEntry.setValueStorages();
- // containerEntry.setParameters(params);
- // ArrayList list = new ArrayList(1);
- // list.add(valueStorageEntry);
- //
- // containerEntry.setValueStorages(list);
- //
- // }
- //
- // // Indexer
- // ArrayList qParams = new ArrayList();
- // qParams.add(new SimpleParameterEntry("indexDir",
"../temp/index/" + IdGenerator.generate()));
- // QueryHandlerEntry qEntry =
- // new
QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex",
qParams);
- //
- // WorkspaceEntry workspaceEntry =
- // new WorkspaceEntry(wsName != null ? wsName : IdGenerator.generate(),
"nt:unstructured");
- // workspaceEntry.setContainer(containerEntry);
- //
- // ArrayList cacheParams = new ArrayList();
- //
- // cacheParams.add(new SimpleParameterEntry("maxSize",
"2000"));
- // cacheParams.add(new SimpleParameterEntry("liveTime",
"20m"));
- // CacheEntry cacheEntry = new CacheEntry(cacheParams);
- //
cacheEntry.setType("org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl");
- //
- // workspaceEntry.setCache(cacheEntry);
- //
- // workspaceEntry.setQueryHandler(qEntry);
- //
- // LockManagerEntry lockManagerEntry = new LockManagerEntry();
- // lockManagerEntry.setTimeout(900000);
- // LockPersisterEntry persisterEntry = new LockPersisterEntry();
- //
persisterEntry.setType("org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister");
- // ArrayList lpParams = new ArrayList();
- // lpParams.add(new SimpleParameterEntry("path",
"../temp/lock"));
- // persisterEntry.setParameters(lpParams);
- // lockManagerEntry.setPersister(persisterEntry);
- // workspaceEntry.setLockManager(lockManagerEntry);
- //
- // // workspaceEntry
- // return workspaceEntry;
- // }
+ @Deprecated
+ public void createWorkspace(WorkspaceEntry workspaceEntry, ExoContainer container)
+ throws RepositoryConfigurationException, RepositoryException
+ {
+ RepositoryService service =
(RepositoryService)container.getComponentInstanceOfType(RepositoryService.class);
+ RepositoryImpl defRep;
- private void createDatabase(DataSource ds, String dbName) throws SQLException
- {
- Connection connection = ds.getConnection();
- PreparedStatement st = connection.prepareStatement("create database " +
dbName);
- st.executeQuery();
+ defRep = (RepositoryImpl)service.getDefaultRepository();
+ defRep.configWorkspace(workspaceEntry);
+ defRep.createWorkspace(workspaceEntry.getName());
+
}
- public static TesterConfigurationHelper getInstence()
+ public static TesterConfigurationHelper getInstance()
{
if (instance == null)
{