Author: tolusha
Date: 2012-03-20 04:17:47 -0400 (Tue, 20 Mar 2012)
New Revision: 5902
Removed:
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupRestart.java
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/server/HTTPBackupAgentTest.java
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
Log:
EXOJCR-1808: tests cleanup
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-20
07:16:57 UTC (rev 5901)
+++
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupTestCase.java 2012-03-20
08:17:47 UTC (rev 5902)
@@ -20,23 +20,25 @@
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
-import org.exoplatform.services.jcr.config.ContainerEntry;
-import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.QueryHandlerParams;
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.core.WorkspaceContainerFacade;
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.impl.BackupManagerImpl;
import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
+import org.exoplatform.services.jcr.ext.backup.server.HTTPBackupAgent;
+import org.exoplatform.services.jcr.ext.backup.server.HTTPBackupAgentTest;
+import org.exoplatform.services.jcr.ext.backup.server.bean.response.DetailedInfo;
+import org.exoplatform.services.jcr.ext.backup.server.bean.response.ShortInfo;
+import org.exoplatform.services.jcr.ext.common.SessionProvider;
import org.exoplatform.services.jcr.impl.clean.rdbms.DBCleanService;
-import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
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;
@@ -45,19 +47,34 @@
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.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.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.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.value.JsonValue;
+import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.InputStream;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
-import java.util.Iterator;
+import java.util.List;
import javax.jcr.ItemExistsException;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
@@ -66,6 +83,7 @@
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.version.VersionException;
+import javax.ws.rs.core.MultivaluedMap;
/**
* Created by The eXo Platform SAS Author : Peter Nedonosko
peter.nedonosko(a)exoplatform.com.ua
@@ -83,36 +101,10 @@
protected ExtendedBackupManager backup;
- protected SessionImpl ws1Session;
+ protected File backupDir;
- protected Node ws1TestRoot;
+ protected RequestHandler handler;
- protected String repositoryNameToBackup = "db7";
-
- protected String workspaceNameToBackup = "ws1";
-
- protected String dataSourceToWorkspaceRestore =
"jdbcjcr_workspace_restore";
-
- protected String dataSourceToRepositoryRestore =
"jdbcjcr_to_repository_restore";
-
- protected String dataSourceToRepositoryRestoreSingleDB =
"jdbcjcr_to_repository_restore_singel_db";
-
- protected String repositoryNameToBackupSingleDB = "db7";
-
- protected String repositoryNameToRestore = "db8backup";
-
- protected String workspaceNameToRestore = "ws1backup";
-
- class LogFilter
- implements FileFilter
- {
-
- public boolean accept(File pathname)
- {
- return pathname.getName().startsWith("backup-") &&
pathname.getName().endsWith(".xml");
- }
- }
-
/**
* {@inheritDoc}
*/
@@ -122,6 +114,16 @@
backup = getBackupManager();
blob = createBLOBTempFile(300);
+
+ backupDir = new File("target/temp/backup/" +
System.currentTimeMillis());
+ backupDir.mkdirs();
+
+ handler =
(RequestHandler)container.getComponentInstanceOfType(RequestHandler.class);
+
+ SessionProviderService sessionProviderService =
+
(SessionProviderService)container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
+ assertNotNull(sessionProviderService);
+ sessionProviderService.setSessionProvider(null, new SessionProvider(new
ConversationState(new Identity("root"))));
}
/**
@@ -184,126 +186,6 @@
return backup;
}
- protected RepositoryImpl getReposityToBackup() throws RepositoryException,
RepositoryConfigurationException
- {
- return (RepositoryImpl) repositoryService.getRepository(repositoryNameToBackup);
- }
-
-
- protected WorkspaceEntry makeWorkspaceEntry(String name, String sourceName)
- {
- WorkspaceEntry ws1e = (WorkspaceEntry)
ws1Session.getContainer().getComponentInstanceOfType(WorkspaceEntry.class);
-
- WorkspaceEntry ws1back = new WorkspaceEntry();
- ws1back.setName(name);
- // RepositoryContainer rcontainer = (RepositoryContainer)
- // container.getComponentInstanceOfType(RepositoryContainer.class);
- ws1back.setUniqueName(((RepositoryImpl) ws1Session.getRepository()).getName() +
"_" + ws1back.getName()); // EXOMAN
-
- ws1back.setAccessManager(ws1e.getAccessManager());
- ws1back.setCache(ws1e.getCache());
- // ws1back.setContainer(ws1e.getContainer());
- ws1back.setLockManager(ws1e.getLockManager());
- ws1back.setInitializer(ws1e.getInitializer());
-
- // Indexer
- ArrayList qParams = new ArrayList();
- // qParams.add(new SimpleParameterEntry("indexDir", "target" +
File.separator+ "temp" +
- // File.separator +"index" + name));
- qParams.add(new SimpleParameterEntry(QueryHandlerParams.PARAM_INDEX_DIR,
"target/temp/index/" + name
- + System.currentTimeMillis()));
- QueryHandlerEntry qEntry =
- new
QueryHandlerEntry("org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex",
qParams);
-
- ws1back.setQueryHandler(qEntry); // EXOMAN
-
- ArrayList params = new ArrayList();
- for (Iterator i = ws1e.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/" + name +
System.currentTimeMillis());
-
- params.add(newp);
- }
-
- ContainerEntry ce =
- new
ContainerEntry("org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer",
params);
-
- ArrayList<ValueStorageEntry> list = new
ArrayList<ValueStorageEntry>();
-
- // 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/values/"
+ name + "_" + 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
- {
- // restore
- RepositoryEntry re =
- (RepositoryEntry)
ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
- WorkspaceEntry ws1back = makeWorkspaceEntry(workspaceName, datasourceName);
-
- repository.configWorkspace(ws1back);
-
- File backLog = new File(backupLogFilePath);
- if (backLog.exists())
- {
- BackupChainLog bchLog = new BackupChainLog(backLog);
- backup.restore(bchLog, re.getName(), ws1back, false);
-
- // check
- SessionImpl back1 = null;
- try
- {
- back1 = (SessionImpl) repository.login(credentials, ws1back.getName());
- Node ws1backTestRoot = back1.getRootNode().getNode("backupTest");
- for (int i = startIndex; i < stopIndex; i++)
- {
- assertEquals("Restored content should be same",
"property-" + i, ws1backTestRoot.getNode("node_" + i)
- .getProperty("exo:data").getString());
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- fail(e.getMessage());
- }
- finally
- {
- if (back1 != null)
- back1.logout();
- }
- }
- else
- fail("There are no backup files in " + backDir.getAbsolutePath());
- }
-
protected void addContent(Node node, int startIndex, int stopIndex, long sleepTime)
throws ValueFormatException,
VersionException, LockException, ConstraintViolationException,
ItemExistsException, PathNotFoundException,
RepositoryException, InterruptedException
@@ -656,4 +538,184 @@
public Session session;
}
+ protected boolean isRepositoryExists(String rName)
+ {
+ return isWorkspaceExists(rName, null);
+ }
+
+ protected boolean isWorkspaceExists(String rName, String wsName)
+ {
+ ManageableRepository repository = null;
+ try
+ {
+ repository = repositoryService.getRepository(rName);
+ }
+ catch (RepositoryException e)
+ {
+ return false;
+ }
+ catch (RepositoryConfigurationException e)
+ {
+ return false;
+ }
+
+ try
+ {
+ repository.login(credentials, wsName);
+ }
+ catch (LoginException e)
+ {
+ return false;
+ }
+ catch (NoSuchWorkspaceException e)
+ {
+ return false;
+ }
+ catch (RepositoryException e)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Will be created the Object from JSON binary data.
+ *
+ * @param cl
+ * Class
+ * @param data
+ * binary data (JSON)
+ * @return Object
+ * @throws Exception
+ * will be generated Exception
+ */
+ protected Object getObject(Class cl, byte[] data) throws Exception
+ {
+ JsonHandler jsonHandler = new JsonDefaultHandler();
+ JsonParser jsonParser = new JsonParserImpl();
+ InputStream inputStream = new ByteArrayInputStream(data);
+ jsonParser.parse(inputStream, jsonHandler);
+ JsonValue jsonValue = jsonHandler.getJsonObject();
+
+ return new BeanBuilder().createObject(cl, jsonValue);
+ }
+
+ protected void waitWorkspaceRestore(String repoName, String wsName) throws Exception
+ {
+ while (true)
+ {
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(HTTPBackupAgentTest.HTTP_BACKUP_AGENT_PATH
+ + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS +
"/" + repoName + "/" + wsName));
+
+ assertEquals(200, cres.getStatus());
+
+ DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class,
cres.responseWriter.getBody());
+
+ if (info.getState().intValue() == JobWorkspaceRestore.RESTORE_SUCCESSFUL
+ || info.getState().intValue() == JobWorkspaceRestore.RESTORE_FAIL)
+ {
+ break;
+ }
+
+ Thread.sleep(500);
+ }
+ }
+
+ protected void waitRepositoryRestore(String repoName) throws Exception
+ {
+ while (true)
+ {
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(HTTPBackupAgentTest.HTTP_BACKUP_AGENT_PATH
+ +
HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
+ repoName));
+
+ assertEquals(200, cres.getStatus());
+
+ DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class,
cres.responseWriter.getBody());
+
+ if (info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
+ || info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
+ {
+ break;
+ }
+
+ Thread.sleep(500);
+ }
+ }
+
+ protected ShortInfo getBackupInfo(List<ShortInfo> list, String rName)
+ {
+ for (ShortInfo info : list)
+ {
+ if (info.getRepositoryName().equals(rName))
+ {
+ return info;
+ }
+ }
+
+ return null;
+ }
+
+ protected 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;
+ }
+
+ protected 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;
+ }
+
+ protected 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;
+ }
+
+ protected 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;
+ }
+
}
Deleted:
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupRestart.java
===================================================================
---
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupRestart.java 2012-03-20
07:16:57 UTC (rev 5901)
+++
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupRestart.java 2012-03-20
08:17:47 UTC (rev 5902)
@@ -1,63 +0,0 @@
-/*
- * Copyright (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
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.exoplatform.services.jcr.ext.backup;
-
-import java.io.File;
-
-/**
- * Created by The eXo Platform SAS
- *
- * Date: 27.02.2008
- *
- * TODO Test should be run twice to check restored task 1. testPeriodicSchedulerPrepare()
and stop
- * 2. restart and run testPeriodicSchedulerRestore()
- *
- * @author <a href="mailto:peter.nedonosko@exoplatform.com.ua">Peter
Nedonosko</a>
- * @version $Id: TestBackupRestart.java 11395 2008-02-27 16:19:37Z pnedonosko $
- */
-public class TestBackupRestart extends AbstractBackupTestCase
-{
-
- @Override
- protected void tearDown() throws Exception
- {
- // empty to be able work after the JVM restart
- }
-
- protected ExtendedBackupManager getBackupManager()
- {
- return (ExtendedBackupManager)
container.getComponentInstanceOfType(BackupManager.class);
- }
-
- public void _testPeriodicSchedulerRestore() throws Exception
- {
- BackupChain bch = backup.getCurrentBackups().iterator().next();
- File backDir = bch.getBackupConfig().getBackupDir();
-
- // wait till backup will be stopped
- while (!backup.getCurrentBackups().isEmpty())
- {
- Thread.yield();
- Thread.sleep(100);
- }
-
- // restore
- restoreAndCheck("ws1back.restored", "jdbcjcr9",
bch.getLogFilePath(), backDir, 1, 50);
- }
-}
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-20
07:16:57 UTC (rev 5901)
+++
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java 2012-03-20
08:17:47 UTC (rev 5902)
@@ -18,22 +18,15 @@
*/
package org.exoplatform.services.jcr.ext.backup.server;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
-import org.exoplatform.services.jcr.core.ManageableRepository;
-import org.exoplatform.services.jcr.ext.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.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;
@@ -41,35 +34,14 @@
import org.exoplatform.services.jcr.ext.backup.server.bean.response.DetailedInfo;
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.storage.jdbc.JDBCDataContainerConfig.DatabaseStructureType;
-import org.exoplatform.services.rest.RequestHandler;
-import org.exoplatform.services.rest.impl.InputHeadersMap;
-import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
-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.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.value.JsonValue;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
import java.net.URI;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
-import javax.jcr.LoginException;
-import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import javax.ws.rs.core.MultivaluedMap;
/**
* Created by The eXo Platform SAS.
@@ -83,30 +55,8 @@
public class HTTPBackupAgentTest extends AbstractBackupTestCase
{
- private String HTTP_BACKUP_AGENT_PATH = HTTPBackupAgent.Constants.BASE_URL;
+ public static String HTTP_BACKUP_AGENT_PATH = HTTPBackupAgent.Constants.BASE_URL;
- private RequestHandler handler;
-
- private File backupDir;
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void setUp() throws Exception
- {
- super.setUp();
-
- handler = (RequestHandler)
container.getComponentInstanceOfType(RequestHandler.class);
- backupDir = new File("target/temp/backup/" +
System.currentTimeMillis());
- backupDir.mkdirs();
-
- SessionProviderService sessionProviderService =
-
(SessionProviderService)container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
- assertNotNull(sessionProviderService);
- sessionProviderService.setSessionProvider(null, new SessionProvider(new
ConversationState(new Identity("root"))));
- }
-
public void testInfo() throws Exception
{
TesterContainerResponce cres =
@@ -1069,193 +1019,12 @@
assertNotNull(dInfo.getBackupConfig());
}
- private boolean isRepositoryExists(String rName)
- {
- return isWorkspaceExists(rName, null);
- }
-
-
- private boolean isWorkspaceExists(String rName, String wsName)
- {
- ManageableRepository repository = null;
- try
- {
- repository = repositoryService.getRepository(rName);
- }
- catch (RepositoryException e)
- {
- return false;
- }
- catch (RepositoryConfigurationException e)
- {
- return false;
- }
-
- try
- {
- repository.login(credentials, wsName);
- }
- catch (LoginException e)
- {
- return false;
- }
- catch (NoSuchWorkspaceException e)
- {
- return false;
- }
- catch (RepositoryException e)
- {
- return false;
- }
-
- return true;
- }
-
-
/**
- * Will be created the Object from JSON binary data.
- *
- * @param cl
- * Class
- * @param data
- * binary data (JSON)
- * @return Object
- * @throws Exception
- * will be generated Exception
- */
- private Object getObject(Class cl, byte[] data) throws Exception
- {
- JsonHandler jsonHandler = new JsonDefaultHandler();
- JsonParser jsonParser = new JsonParserImpl();
- InputStream inputStream = new ByteArrayInputStream(data);
- jsonParser.parse(inputStream, jsonHandler);
- JsonValue jsonValue = jsonHandler.getJsonObject();
-
- return new BeanBuilder().createObject(cl, jsonValue);
- }
-
- /**
* {@inheritDoc}
*/
+ @Override
protected ExtendedBackupManager getBackupManager()
{
- return (ExtendedBackupManager)
container.getComponentInstanceOfType(BackupManager.class);
+ return
(ExtendedBackupManager)container.getComponentInstanceOfType(BackupManager.class);
}
-
- protected void waitWorkspaceRestore(String repoName, String wsName) throws Exception
- {
- while (true)
- {
- TesterContainerResponce cres =
- makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
- + HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS +
"/" + repoName + "/" + wsName));
-
- assertEquals(200, cres.getStatus());
-
- DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class,
cres.responseWriter.getBody());
-
- if (info.getState().intValue() == JobWorkspaceRestore.RESTORE_SUCCESSFUL
- || info.getState().intValue() == JobWorkspaceRestore.RESTORE_FAIL)
- {
- break;
- }
-
- Thread.sleep(500);
- }
- }
-
- protected void waitRepositoryRestore(String repoName) throws Exception
- {
- while (true)
- {
- TesterContainerResponce cres =
- makeGetRequest(new URI(HTTP_BACKUP_AGENT_PATH
- +
HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY + "/"
+ repoName));
-
- assertEquals(200, cres.getStatus());
-
- DetailedInfo info = (DetailedInfo)getObject(DetailedInfo.class,
cres.responseWriter.getBody());
-
- if (info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
- || info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
- {
- break;
- }
-
- Thread.sleep(500);
- }
- }
-
- private ShortInfo getBackupInfo(List<ShortInfo> list, String rName)
- {
- for (ShortInfo info : list)
- {
- if (info.getRepositoryName().equals(rName))
- {
- return info;
- }
- }
-
- 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-20
07:16:57 UTC (rev 5901)
+++
jcr/branches/1.15.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java 2012-03-20
08:17:47 UTC (rev 5902)
@@ -18,48 +18,14 @@
*/
package org.exoplatform.services.jcr.ext.repository;
-import org.exoplatform.services.jcr.config.ContainerEntry;
-import org.exoplatform.services.jcr.config.QueryHandlerEntry;
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.CredentialsImpl;
-import org.exoplatform.services.jcr.core.ManageableRepository;
-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;
-import org.exoplatform.services.rest.impl.InputHeadersMap;
-import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
-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.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.value.JsonValue;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
import java.net.URI;
-import java.util.ArrayList;
-import java.util.Iterator;
-import javax.jcr.NoSuchWorkspaceException;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.ws.rs.core.MultivaluedMap;
-
/**
* Created by The eXo Platform SAS.
*
@@ -73,37 +39,15 @@
{
private String REST_REPOSITORY_SERVICE_PATH =
RestRepositoryService.Constants.BASE_URL;
- protected TesterConfigurationHelper helper = TesterConfigurationHelper.getInstance();
-
- private RequestHandler handler;
-
- public void setUp() throws Exception
- {
- super.setUp();
-
- handler =
(RequestHandler)container.getComponentInstanceOfType(RequestHandler.class);
-
- SessionProviderService sessionProviderService =
-
(SessionProviderService)container.getComponentInstanceOfType(ThreadLocalSessionProviderService.class);
- assertNotNull(sessionProviderService);
- sessionProviderService.setSessionProvider(null, new SessionProvider(new
ConversationState(new Identity("root"))));
- }
-
public void testRepositoriesList() throws Exception
{
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REPOSITORIES_LIST), new
URI(""), null, new InputHeadersMap(
- headers));
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.REPOSITORIES_LIST));
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(200, cres.getStatus());
- NamesList repositories = (NamesList)getObject(NamesList.class,
responseWriter.getBody());
+ NamesList repositories = (NamesList)getObject(NamesList.class,
cres.responseWriter.getBody());
assertNotNull(repositories);
assertEquals(repositoryService.getConfig().getRepositoryConfigurations().size(),
repositories.getNames().size());
@@ -113,19 +57,13 @@
{
String repoName = repositoryService.getConfig().getDefaultRepositoryName();
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.WORKSPACES_LIST +
"/" + repoName + "/"), new URI(""), null,
- new InputHeadersMap(headers));
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.WORKSPACES_LIST +
"/" + repoName + "/"));
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(200, cres.getStatus());
- NamesList workspaces = (NamesList)getObject(NamesList.class,
responseWriter.getBody());
+ NamesList workspaces = (NamesList)getObject(NamesList.class,
cres.responseWriter.getBody());
assertNotNull(workspaces);
assertEquals(repositoryService.getConfig().getRepositoryConfiguration(repoName).getWorkspaceEntries().size(),
@@ -136,19 +74,13 @@
{
String repoName = repositoryService.getConfig().getDefaultRepositoryName();
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.DEFAULT_WS_CONFIG +
"/" + repoName + "/"), new URI(""),
- null, new InputHeadersMap(headers));
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.DEFAULT_WS_CONFIG +
"/" + repoName + "/"));
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(200, cres.getStatus());
- WorkspaceEntry workspaceEntry = (WorkspaceEntry)getObject(WorkspaceEntry.class,
responseWriter.getBody());
+ WorkspaceEntry workspaceEntry = (WorkspaceEntry)getObject(WorkspaceEntry.class,
cres.responseWriter.getBody());
assertNotNull(workspaceEntry);
assertEquals(repositoryService.getConfig().getRepositoryConfiguration(repoName).getDefaultWorkspaceName(),
@@ -157,20 +89,14 @@
public void testGetRepositoryServiceConfiguration() throws Exception
{
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- +
RestRepositoryService.Constants.OperationType.REPOSITORY_SERVICE_CONFIGURATION), new
URI(""), null,
- new InputHeadersMap(headers));
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ +
RestRepositoryService.Constants.OperationType.REPOSITORY_SERVICE_CONFIGURATION));
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(200, cres.getStatus());
RepositoryServiceConf repositoryConf =
- (RepositoryServiceConf)getObject(RepositoryServiceConf.class,
responseWriter.getBody());
+ (RepositoryServiceConf)getObject(RepositoryServiceConf.class,
cres.responseWriter.getBody());
assertNotNull(repositoryConf);
assertEquals(repositoryService.getConfig().getDefaultRepositoryName(),
repositoryConf.getDefaultRepositoryName());
@@ -182,30 +108,12 @@
{
RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI,
null, null);
- JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
- JsonValue json = generatorImpl.createJsonObject(rEntry);
+ TesterContainerResponce cres =
+ makePostRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), rEntry);
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- headers.putSingle("Content-Type", "application/json;
charset=UTF-8");
-
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + 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);
-
assertEquals(200, cres.getStatus());
-
- Session session =
- repositoryService.getRepository(rEntry.getName()).login(new
CredentialsImpl("root", "exo".toCharArray()));
- assertNotNull(session);
- assertNotNull(session.getRootNode());
- session.logout();
+ assertTrue(isRepositoryExists(rEntry.getName()));
}
public void testCreateRepositoryWithInvalidChars() throws Exception
@@ -213,231 +121,71 @@
String wsName = "ws_over:?//\\__rest!!_1";
String rName = "repo:?//\\_over:_re??st";
- RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI,
null, null);
+ RepositoryEntry rEntry = helper.createRepositoryEntry(DatabaseStructureType.MULTI,
wsName, null);
rEntry.setName(rName);
- rEntry.getWorkspaceEntries().get(0).setName(wsName);
- rEntry.setSystemWorkspaceName(wsName);
- rEntry.setDefaultWorkspaceName(wsName);
- JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
- JsonValue json = generatorImpl.createJsonObject(rEntry);
+ TesterContainerResponce cres =
+ makePostRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), rEntry);
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- headers.putSingle("Content-Type", "application/json;
charset=UTF-8");
-
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.CREATE_REPOSITORY), 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());
-
- Session session =
- repositoryService.getRepository(rName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
- assertNotNull(session);
- assertNotNull(session.getRootNode());
- session.logout();
+ assertTrue(isRepositoryExists(rEntry.getName()));
}
public void testCreateWorkspace() throws Exception
{
WorkspaceEntry wEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI,
null);
- JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
- JsonValue json = generatorImpl.createJsonObject(wEntry);
+ TesterContainerResponce cres =
+ makePostRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE +
"/db1"), wEntry);
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
- headers.putSingle("Content-Type", "application/json;
charset=UTF-8");
-
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE +
"/db1"), 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());
-
- Session session =
- repositoryService.getRepository("db1").login(new
CredentialsImpl("root", "exo".toCharArray()),
- wEntry.getName());
- assertNotNull(session);
- assertNotNull(session.getRootNode());
-
- session.logout();
+ assertTrue(isWorkspaceExists("db1", wEntry.getName()));
}
public void testRemoveWorkspace() throws Exception
{
RepoInfo rInfo = createRepositoryAndGetSession();
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
+ TesterContainerResponce cres =
+ makePostRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE +
"/" + rInfo.rName + "/" + rInfo.wsName
- + "/false/"), new URI(""), null, new
InputHeadersMap(headers));
+ + "/false/"), "");
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(409, cres.getStatus());
- //remove with prepare close sessions
- creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
+ cres =
+ makePostRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE +
"/" + rInfo.rName + "/" + rInfo.wsName
- + "/true/"),
- new URI(""), null, new InputHeadersMap(headers));
-
- responseWriter = new ByteArrayContainerResponseWriter();
- cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
+ + "/true/"), "");
assertEquals(200, cres.getStatus());
- try
- {
- 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)
- {
- //ok.
- }
+ assertFalse(isWorkspaceExists(rInfo.rName, rInfo.wsName));
}
public void testRemoveRepository() throws Exception
{
- ManageableRepository repository = helper.createRepository(container,
DatabaseStructureType.MULTI, null);
+ RepoInfo rInfo = createRepositoryAndGetSession();
- String wsName = repository.getConfiguration().getSystemWorkspaceName();
- String repoName = repository.getConfiguration().getName();
- Session session =
- repositoryService.getRepository(repoName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
- assertNotNull(session);
- assertNotNull(session.getRootNode());
+ TesterContainerResponce cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY +
"/" + rInfo.rName + "/false/"));
- MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
-
- ContainerRequestUserRole creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY +
"/" + repoName + "/false/"),
- new URI(""), null, new InputHeadersMap(headers));
-
- ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
- ContainerResponse cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(409, cres.getStatus());
- //remove with prepare close sessions
- creq =
- new ContainerRequestUserRole("GET", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY +
"/" + repoName + "/true/"),
- new URI(""), null, new InputHeadersMap(headers));
+ cres =
+ makeGetRequest(new URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY +
"/" + rInfo.rName + "/true/"));
- responseWriter = new ByteArrayContainerResponseWriter();
- cres = new ContainerResponse(responseWriter);
- handler.handleRequest(creq, cres);
-
assertEquals(200, cres.getStatus());
-
- try
- {
- repositoryService.getRepository(repoName);
- fail("The repository /" + repoName + "should be removed.
");
- }
- catch (RepositoryException e)
- {
- //ok.
- }
+ assertFalse(isRepositoryExists(rInfo.rName));
}
/**
- * Will be created the Object from JSON binary data.
- *
- * @param cl
- * Class
- * @param data
- * binary data (JSON)
- * @return Object
- * @throws Exception
- * will be generated Exception
+ * {@inheritDoc}
*/
- private Object getObject(Class cl, byte[] data) throws Exception
- {
- JsonHandler jsonHandler = new JsonDefaultHandler();
- JsonParser jsonParser = new JsonParserImpl();
- InputStream inputStream = new ByteArrayInputStream(data);
- jsonParser.parse(inputStream, jsonHandler);
- JsonValue jsonValue = jsonHandler.getJsonObject();
-
- return new BeanBuilder().createObject(cl, jsonValue);
- }
-
- protected WorkspaceEntry makeWorkspaceEntry(WorkspaceEntry defWEntry, String repoNmae,
String wsName,
- String sourceName, boolean multiDb)
- {
- 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("indexDir", "target" +
File.separator + skipInvalidCharacters(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/" +
skipInvalidCharacters(wsName));
- else if (newp.getName().equals("multi-db"))
- newp.setValue(Boolean.toString(multiDb));
-
- params.add(newp);
- }
-
- ContainerEntry ce = new ContainerEntry(defWEntry.getContainer().getType(),
params);
- ws1back.setContainer(ce);
-
- return ws1back;
- }
-
- private String skipInvalidCharacters(String s)
- {
- if (File.separator.equals("\\"))
- {
- return s.replaceAll("[:,?]", "_");
- }
- else
- {
- return s;
- }
-
- }
-
@Override
protected ExtendedBackupManager getBackupManager()
{