Author: areshetnyak
Date: 2009-09-01 05:45:32 -0400 (Tue, 01 Sep 2009)
New Revision: 121
Modified:
jcr/trunk/component/core/src/main/java/org/exoplatform/services/jcr/config/RepositoryEntry.java
jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryService.java
jcr/trunk/component/ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
Log:
EXOJCR-13 : Has been updated the service RestRepositoryService.
Modified:
jcr/trunk/component/core/src/main/java/org/exoplatform/services/jcr/config/RepositoryEntry.java
===================================================================
---
jcr/trunk/component/core/src/main/java/org/exoplatform/services/jcr/config/RepositoryEntry.java 2009-09-01
08:54:01 UTC (rev 120)
+++
jcr/trunk/component/core/src/main/java/org/exoplatform/services/jcr/config/RepositoryEntry.java 2009-09-01
09:45:32 UTC (rev 121)
@@ -46,10 +46,22 @@
{
return workspaces;
}
+
+ /**
+ * Set workspaces.
+ *
+ * @param workspaces
+ * the list of WorkspaceEntry-s
+ */
+ public void setWorkspaceEntries(ArrayList<WorkspaceEntry> workspaces)
+ {
+ this.workspaces = workspaces;
+ }
/**
* adds workspace entry object
* @param ws
+ * the WorkspaceEntry
*/
public void addWorkspace(WorkspaceEntry ws)
{
Modified:
jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryService.java
===================================================================
---
jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryService.java 2009-09-01
08:54:01 UTC (rev 120)
+++
jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryService.java 2009-09-01
09:45:32 UTC (rev 121)
@@ -175,9 +175,8 @@
}
/**
- * @return
- * @throws RepositoryConfigurationException
- * @throws RepositoryException
+ * @return Response
+ * return the Response with RepositoryServiceConf
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@@ -192,6 +191,12 @@
return Response.ok(conf,
MediaType.APPLICATION_JSON_TYPE).cacheControl(NO_CACHE).build();
}
+ /**
+ * @param repositoryName
+ * String, the repository name
+ * @return Response
+ * return the Response with WorkspaceEntry
+ */
@GET
@Produces(MediaType.APPLICATION_JSON)
@RolesAllowed("administrators")
@@ -235,9 +240,13 @@
/**
* @param uriInfo
+ * UriInfo, the uri location
* @param newRepository
- * @return
+ * RepositoryEntry, the RepositoryEntry to new repository
+ * @return Response
+ * return the Response
* @throws URISyntaxException
+ * will be generated the URISyntaxException
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -281,10 +290,15 @@
/**
* @param uriInfo
+ * UriInfo, the uri location
* @param repositoryName
+ * String, the repository name
* @param newWorkspace
- * @return
+ * WorkspaceEntry, the WorkspaceEntry to new repository
+ * @return Response
+ * return the Response
* @throws URISyntaxException
+ * will be generated the URISyntaxException
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -330,9 +344,13 @@
/**
* @param uriInfo
+ * UriInfo, the uri location
* @param repositoryName
- * @return
- * @throws URISyntaxException
+ * String, the repository name
+ * @param forseSessionClose
+ * Boolean, flag to force session close
+ * @return Response
+ * return the Response
*/
@POST
@RolesAllowed("administrators")
@@ -378,9 +396,15 @@
/**
* @param uriInfo
+ * UriInfo, the uri location
* @param repositoryName
- * @return
- * @throws URISyntaxException
+ * String, the repository name
+ * @param workspaceName
+ * String, the workspace name
+ * @param forseSessionClose
+ * Boolean, flag to force session close
+ * @return Response
+ * return the Response
*/
@POST
@RolesAllowed("administrators")
@@ -434,7 +458,8 @@
}
/**
- * @return
+ * @return Response
+ * return the Response with list of repository names
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@@ -454,7 +479,9 @@
/**
* @param repositoryName
- * @return
+ * String, the repository name
+ * @return Response
+ * return the Response with list of workspace names
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
@@ -497,6 +524,16 @@
.build();
}
+ /**
+ * * @param repositoryName
+ * String, the repository name
+ * @param workspaceName
+ * String, the workspace name
+ * @param workspaceEntry
+ * WorkspaceEntry, the confg to workspace
+ * @return Response
+ * return the Response
+ */
@POST
@Consumes(MediaType.APPLICATION_JSON)
@RolesAllowed("administrators")
Modified:
jcr/trunk/component/ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java
===================================================================
---
jcr/trunk/component/ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java 2009-09-01
08:54:01 UTC (rev 120)
+++
jcr/trunk/component/ext/src/test/java/org/exoplatform/services/jcr/ext/repository/RestRepositoryServiceTest.java 2009-09-01
09:45:32 UTC (rev 121)
@@ -175,24 +175,24 @@
public void testCreateRepository() throws Exception
{
- String wsName = "ws_over_rest";
+ String wsName = "ws_over_rest_1";
String rName = "repo_over_rest";
RepositoryEntry rDefault =
repositoryService.getConfig().getRepositoryConfiguration(
repositoryService.getConfig().getDefaultRepositoryName());
+
RepositoryEntry rEntry = new RepositoryEntry();
- rEntry.setAccessControl(rDefault.getAccessControl());
- rEntry.setAuthenticationPolicy(rDefault.getAuthenticationPolicy());
- rEntry.setDefaultWorkspaceName("ws_over_rest");
rEntry.setName(rName);
- rEntry.setSecurityDomain(rDefault.getSecurityDomain());
- rEntry.setSessionTimeOut(rDefault.getSessionTimeOut());
+ rEntry.setSessionTimeOut(3600000);
+
rEntry.setAuthenticationPolicy("org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator");
+ rEntry.setSecurityDomain("exo-domain");
rEntry.setSystemWorkspaceName(wsName);
+ rEntry.setDefaultWorkspaceName(wsName);
WorkspaceEntry wEntry =
- makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName,
"jdbcjcr_to_rest_repo", false);
+ makeWorkspaceEntry(rDefault.getWorkspaceEntries().get(0), rName, wsName,
"jdbcjcr_to_rest_repo_1", true);
rEntry.addWorkspace(wEntry);
JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
@@ -212,18 +212,21 @@
assertEquals(200, cres.getStatus());
- //TODO
- // assertEquals(repositoryService.getConfig().getDefaultRepositoryName(),
repositoryConf.getDefaultRepositoryName());
- //
assertEquals(repositoryService.getConfig().getRepositoryConfigurations().size(),
repositoryConf.getRepositories().size());
+ Session session =
+ repositoryService.getRepository(rName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
+ assertNotNull(session);
+ assertNotNull(session.getRootNode());
+ session.logout();
}
public void testCreateWorkspace() throws Exception
{
- String wsName = "ws_over_rest";
+ String wsName = "ws_over_rest_2";
+ String rName = "repo_over_rest";
WorkspaceEntry wEntry =
makeWorkspaceEntry(repositoryService.getDefaultRepository().getConfiguration().getWorkspaceEntries()
- .get(0), "db1", wsName,
"jdbcjcr_to_rest_repo_2", true);
+ .get(0), rName, wsName, "jdbcjcr_to_rest_repo_2",
true);
JsonGeneratorImpl generatorImpl = new JsonGeneratorImpl();
JsonValue json = generatorImpl.createJsonObject(wEntry);
@@ -234,7 +237,7 @@
ContainerRequestUserRole creq =
new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
+ RestRepositoryService.Constants.OperationType.CREATE_WORKSPACE
+ "/"
- +
repositoryService.getDefaultRepository().getConfiguration().getName()), new
URI(""),
+ + rName), new URI(""),
new
ByteArrayInputStream(json.toString().getBytes("UTF-8")), new
InputHeadersMap(headers));
ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
@@ -244,8 +247,7 @@
assertEquals(200, cres.getStatus());
Session session =
- repositoryService.getDefaultRepository().login(new
CredentialsImpl("root", "exo".toCharArray()),
- "ws_over_rest");
+ repositoryService.getRepository(rName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
assertNotNull(session);
assertNotNull(session.getRootNode());
@@ -254,85 +256,93 @@
public void testRemoveWorkspace() throws Exception
{
- Session session = repositoryService.getDefaultRepository().login(new
CredentialsImpl("root", "exo".toCharArray()),
- "ws_over_rest");
+ String wsName = "ws_over_rest_2";
+ String rName = "repo_over_rest";
+ Session session =
+ repositoryService.getRepository(rName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
assertNotNull(session);
assertNotNull(session.getRootNode());
-
- String wsName = "ws_over_rest";
- String repoName =
repositoryService.getDefaultRepository().getConfiguration().getName();
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE
+ "/"
- + repoName + "/" + wsName + "/false/"), new
URI(""), null, new InputHeadersMap(headers));
+ + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE
+ "/" + rName + "/"
+ + wsName + "/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("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE +
"/"
- + repoName + "/" + wsName + "/true/"), new
URI(""), null, new InputHeadersMap(headers));
+ new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.REMOVE_WORKSPACE
+ "/" + rName + "/"
+ + wsName + "/true/"), new URI(""), null, new
InputHeadersMap(headers));
responseWriter = new ByteArrayContainerResponseWriter();
cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
-
+
assertEquals(204, cres.getStatus());
- try {
- repositoryService.getDefaultRepository().login(new
CredentialsImpl("root", "exo".toCharArray()),
"ws_over_rest");
- fail("The workspace /" + repoName + "/" + wsName +
"should be removed. ");
- } catch (NoSuchWorkspaceException e) {
+ try
+ {
+ repositoryService.getRepository(rName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
+ fail("The workspace /" + rName + "/" + wsName + "should
be removed. ");
+ }
+ catch (NoSuchWorkspaceException e)
+ {
//ok.
}
}
-
+
public void testRemoveRepository() throws Exception
{
String wsName = "ws";
String repoName = "db2";
-
- Session session = repositoryService.getRepository(repoName).login(new
CredentialsImpl("root", "exo".toCharArray()), wsName);
+
+ Session session =
+ repositoryService.getRepository(repoName)
+ .login(new CredentialsImpl("root",
"exo".toCharArray()), wsName);
assertNotNull(session);
assertNotNull(session.getRootNode());
-
+
MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
ContainerRequestUserRole creq =
- new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY
+ "/"
- + repoName + "/false/"), new URI(""), null,
new InputHeadersMap(headers));
+ new ContainerRequestUserRole("POST",
+ 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("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
- + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY +
"/"
- + repoName + "/true/"), new URI(""), null, new
InputHeadersMap(headers));
+ new ContainerRequestUserRole("POST", new
URI(REST_REPOSITORY_SERVICE_PATH
+ + RestRepositoryService.Constants.OperationType.REMOVE_REPOSITORY
+ "/" + repoName + "/true/"),
+ new URI(""), null, new InputHeadersMap(headers));
responseWriter = new ByteArrayContainerResponseWriter();
cres = new ContainerResponse(responseWriter);
handler.handleRequest(creq, cres);
-
+
assertEquals(204, cres.getStatus());
- try {
- repositoryService.getRepository(repoName);
- fail("The repository /" + repoName + "should be removed. ");
- } catch (RepositoryException e) {
+ try
+ {
+ repositoryService.getRepository(repoName);
+ fail("The repository /" + repoName + "should be removed.
");
+ }
+ catch (RepositoryException e)
+ {
//ok.
}
}