You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by pa...@apache.org on 2008/12/23 17:14:01 UTC
svn commit: r729019 - in /jackrabbit/sandbox/jcr-cmis/server/ws/src:
main/java/org/apache/jackrabbit/cmis/ws/repository/impl/
test/java/org/apache/jackrabbit/cmis/ws/repository/ test/resources/
Author: paolo
Date: Tue Dec 23 08:14:00 2008
New Revision: 729019
URL: http://svn.apache.org/viewvc?rev=729019&view=rev
Log:
repositoryInfo and repository capabilities in getRepositoryInfo method
Added:
jackrabbit/sandbox/jcr-cmis/server/ws/src/test/resources/repository.xml
Modified:
jackrabbit/sandbox/jcr-cmis/server/ws/src/main/java/org/apache/jackrabbit/cmis/ws/repository/impl/RepositoryServicePortImpl.java
jackrabbit/sandbox/jcr-cmis/server/ws/src/test/java/org/apache/jackrabbit/cmis/ws/repository/RepositoryServiceTest.java
Modified: jackrabbit/sandbox/jcr-cmis/server/ws/src/main/java/org/apache/jackrabbit/cmis/ws/repository/impl/RepositoryServicePortImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/ws/src/main/java/org/apache/jackrabbit/cmis/ws/repository/impl/RepositoryServicePortImpl.java?rev=729019&r1=729018&r2=729019&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/ws/src/main/java/org/apache/jackrabbit/cmis/ws/repository/impl/RepositoryServicePortImpl.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/ws/src/main/java/org/apache/jackrabbit/cmis/ws/repository/impl/RepositoryServicePortImpl.java Tue Dec 23 08:14:00 2008
@@ -16,14 +16,21 @@
*/
package org.apache.jackrabbit.cmis.ws.repository.impl;
+import java.io.IOException;
import java.util.Collections;
import java.util.List;
+import javax.jcr.Repository;
import javax.jws.WebService;
+import org.apache.jackrabbit.cmis.ws.repository.CmisRepositoryCapabilitiesType;
import org.apache.jackrabbit.cmis.ws.repository.CmisRepositoryEntryType;
import org.apache.jackrabbit.cmis.ws.repository.CmisRepositoryInfoType;
import org.apache.jackrabbit.cmis.ws.repository.ConstraintViolationException;
+import org.apache.jackrabbit.cmis.ws.repository.EnumCapabilityFullText;
+import org.apache.jackrabbit.cmis.ws.repository.EnumCapabilityJoin;
+import org.apache.jackrabbit.cmis.ws.repository.EnumCapabilityQuery;
+import org.apache.jackrabbit.cmis.ws.repository.EnumRepositoryRelationship;
import org.apache.jackrabbit.cmis.ws.repository.GetRepositoryInfo;
import org.apache.jackrabbit.cmis.ws.repository.GetTypeDefinition;
import org.apache.jackrabbit.cmis.ws.repository.GetTypeDefinitionResponse;
@@ -37,6 +44,7 @@
import org.apache.jackrabbit.cmis.ws.repository.RuntimeException;
import org.apache.jackrabbit.cmis.ws.repository.TypeNotFoundException;
import org.apache.jackrabbit.cmis.ws.repository.UpdateConflictException;
+import org.apache.jackrabbit.core.TransientRepository;
@WebService(name = "RepositoryServicePort", serviceName = "RepositoryService", portName = "RepositoryServicePort", targetNamespace = "http://www.cmis.org/ns/1.0", endpointInterface = "org.apache.jackrabbit.cmis.ws.repository.RepositoryServicePort")
@@ -58,14 +66,36 @@
InvalidArgumentException, RuntimeException,
ConstraintViolationException {
CmisRepositoryInfoType repositoryInfo = new CmisRepositoryInfoType();
-
- repositoryInfo.setRepositoryName("Jackrabbit");
- repositoryInfo.setRepositoryRelationship("self");
- repositoryInfo.setRepositoryDescription("");
- repositoryInfo.setVendorName("Apache");
- repositoryInfo.setProductName("Apache Jackrabbit");
- repositoryInfo.setProductVersion("1.6-SNAPSHOT");
+ CmisRepositoryCapabilitiesType capabilities = new CmisRepositoryCapabilitiesType();
+ repositoryInfo.setCapabilities(capabilities);
+
+ /** FIXME remove this Repository instantiation; get the repository from parameters info **/
+ Repository repository = null;
+ try {
+ repository = new TransientRepository();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ repositoryInfo.setRepositoryName(repository.getDescriptor(Repository.REP_NAME_DESC));
+ repositoryInfo.setRepositoryRelationship(EnumRepositoryRelationship.SELF.toString());
+ repositoryInfo.setRepositoryDescription(repository.getDescriptor(Repository.REP_NAME_DESC));
+ repositoryInfo.setVendorName(repository.getDescriptor(Repository.REP_VENDOR_DESC));
+ repositoryInfo.setProductName(repository.getDescriptor(Repository.REP_NAME_DESC));
+ repositoryInfo.setProductVersion(repository.getDescriptor(Repository.REP_VERSION_DESC));
repositoryInfo.setCmisVersionsSupported("0.5");
+
+ capabilities.setCapabilityMultifiling(true);
+ capabilities.setCapabilityUnfiling(true);
+ /** FIXME validate this **/
+ capabilities.setCapabilityVersionSpecificFiling(false);
+ /** FIXME validate this **/
+ capabilities.setCapabilityPWCUpdateable(false);
+ /** FIXME validate this **/
+ capabilities.setCapabilityPWCSearchable(false);
+ capabilities.setCapabilityQuery(EnumCapabilityQuery.BOTH);
+ capabilities.setCapabilityJoin(EnumCapabilityJoin.NOJOIN);
+ capabilities.setCapabilityFullText(EnumCapabilityFullText.FULLTEXTANDSTRUCTURED);
return repositoryInfo;
}
Modified: jackrabbit/sandbox/jcr-cmis/server/ws/src/test/java/org/apache/jackrabbit/cmis/ws/repository/RepositoryServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/ws/src/test/java/org/apache/jackrabbit/cmis/ws/repository/RepositoryServiceTest.java?rev=729019&r1=729018&r2=729019&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/ws/src/test/java/org/apache/jackrabbit/cmis/ws/repository/RepositoryServiceTest.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/ws/src/test/java/org/apache/jackrabbit/cmis/ws/repository/RepositoryServiceTest.java Tue Dec 23 08:14:00 2008
@@ -16,11 +16,11 @@
*/
package org.apache.jackrabbit.cmis.ws.repository;
+import java.io.File;
import java.io.IOException;
import java.util.List;
-import javax.jcr.LoginException;
-import javax.jcr.RepositoryException;
+import javax.jcr.Repository;
import javax.xml.ws.Endpoint;
import junit.framework.TestCase;
@@ -29,15 +29,16 @@
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.jackrabbit.cmis.ws.repository.impl.RepositoryServicePortImpl;
+import org.apache.jackrabbit.core.TransientRepository;
public class RepositoryServiceTest extends TestCase {
private RepositoryServicePort client;
+ private Repository repository;
private GetRepositoryInfo parameters;
protected void setUp() {
-
- // Starting Server
+ // Starting a Server
RepositoryServicePortImpl implementor = new RepositoryServicePortImpl();
String address = "http://localhost:9000/repositoryService";
Endpoint.publish(address, implementor);
@@ -50,20 +51,56 @@
factory.setAddress
("http://localhost:9000/repositoryService");
client = (RepositoryServicePort) factory.create();
+
+ // Instantiate a Repository
+ try {
+ repository = new TransientRepository("target/test-classes/repository.xml", "target/test-classes/repository");
+ } catch (IOException e) {
+ this.fail("Some exception occurred instantiating a TransientRepository object");
+ e.printStackTrace();
+ }
// init a GetRepositoryInfo object
parameters = new GetRepositoryInfo();
parameters.setRepositoryId("ID");
}
+
+ protected void tearDown() {
+ // Drop the Repository created in setUp
+ File repositoryRoot = new File("target/test-classes/repository");
+ repositoryRoot.delete();
+ }
- public void testGetRepositories() throws IOException, LoginException, RepositoryException, PermissionDeniedException, UpdateConflictException, OperationNotSupportedException, InvalidArgumentException, RuntimeException {
- List repositories = client.getRepositories();
+ public void testGetRepositories() {
+ List repositories = null;
+ try {
+ repositories = client.getRepositories();
+ } catch (Exception e) {
+ this.fail("Some exception occurred getting repositories");
+ e.printStackTrace();
+ }
assertEquals(1, repositories.size());
}
- public void testGetRepositoryInfo() throws PermissionDeniedException, UpdateConflictException, ObjectNotFoundException, OperationNotSupportedException, InvalidArgumentException, RuntimeException, ConstraintViolationException {
- CmisRepositoryInfoType repositoryInfo = client.getRepositoryInfo(parameters);
- assertEquals("Apache Jackrabbit", repositoryInfo.getProductName());
+ public void testGetRepositoryInfo() {
+ CmisRepositoryInfoType repositoryInfo = null;
+ try {
+ repositoryInfo = client.getRepositoryInfo(parameters);
+ } catch (Exception e) {
+ this.fail("Some exception occurred getting repositoryInfo");
+ e.printStackTrace();
+ }
+ assertEquals("Jackrabbit", repositoryInfo.getRepositoryName());
+ assertEquals("SELF", repositoryInfo.getRepositoryRelationship());
+ assertEquals("Jackrabbit", repositoryInfo.getRepositoryDescription());
+ assertEquals("Apache Software Foundation", repositoryInfo.getVendorName());
+ assertEquals("Jackrabbit", repositoryInfo.getProductName());
+ assertEquals("1.6-SNAPSHOT", repositoryInfo.getProductVersion());
+ assertEquals(true, repositoryInfo.getCapabilities().isCapabilityMultifiling());
+ assertEquals(true, repositoryInfo.getCapabilities().isCapabilityUnfiling());
+ assertEquals(EnumCapabilityQuery.BOTH, repositoryInfo.getCapabilities().getCapabilityQuery());
+ assertEquals(EnumCapabilityJoin.NOJOIN, repositoryInfo.getCapabilities().getCapabilityJoin());
+ assertEquals(EnumCapabilityFullText.FULLTEXTANDSTRUCTURED, repositoryInfo.getCapabilities().getCapabilityFullText());
}
}
Added: jackrabbit/sandbox/jcr-cmis/server/ws/src/test/resources/repository.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/ws/src/test/resources/repository.xml?rev=729019&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/ws/src/test/resources/repository.xml (added)
+++ jackrabbit/sandbox/jcr-cmis/server/ws/src/test/resources/repository.xml Tue Dec 23 08:14:00 2008
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.4//EN"
+ "http://jackrabbit.apache.org/dtd/repository-1.4.dtd">
+<!-- Example Repository Configuration File -->
+<Repository>
+ <!--
+ virtual file system where the repository stores global state
+ (e.g. registered namespaces, custom node types, etc.)
+ -->
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+ <param name="path" value="${rep.home}/repository"/>
+ </FileSystem>
+
+ <!--
+ security configuration
+ -->
+ <Security appName="Jackrabbit">
+ <!--
+ access manager:
+ class: FQN of class implementing the AccessManager interface
+ -->
+ <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager">
+ <!-- <param name="config" value="${rep.home}/access.xml"/> -->
+ </AccessManager>
+
+ <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
+ <!-- anonymous user name ('anonymous' is the default value) -->
+ <param name="anonymousId" value="anonymous"/>
+ <!--
+ default user name to be used instead of the anonymous user
+ when no login credentials are provided (unset by default)
+ -->
+ <!-- <param name="defaultUserId" value="superuser"/> -->
+ </LoginModule>
+ </Security>
+
+ <!--
+ location of workspaces root directory and name of default workspace
+ -->
+ <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
+ <!--
+ workspace configuration template:
+ used to create the initial workspace if there's no workspace yet
+ -->
+ <Workspace name="${wsp.name}">
+ <!--
+ virtual file system of the workspace:
+ class: FQN of class implementing the FileSystem interface
+ -->
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+ <param name="path" value="${wsp.home}"/>
+ </FileSystem>
+ <!--
+ persistence manager of the workspace:
+ class: FQN of class implementing the PersistenceManager interface
+ -->
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager">
+ <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
+ <param name="schemaObjectPrefix" value="${wsp.name}_"/>
+ </PersistenceManager>
+ <!--
+ Search index and the file system it uses.
+ class: FQN of class implementing the QueryHandler interface
+ -->
+ <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+ <param name="path" value="${wsp.home}/index"/>
+ <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
+ <param name="extractorPoolSize " value="2"/>
+ <param name="supportHighlighting" value="true"/>
+ </SearchIndex>
+ </Workspace>
+
+ <!--
+ Configures the versioning
+ -->
+ <Versioning rootPath="${rep.home}/version">
+ <!--
+ Configures the filesystem to use for versioning for the respective
+ persistence manager
+ -->
+ <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
+ <param name="path" value="${rep.home}/version" />
+ </FileSystem>
+
+ <!--
+ Configures the persistence manager to be used for persisting version state.
+ Please note that the current versioning implementation is based on
+ a 'normal' persistence manager, but this could change in future
+ implementations.
+ -->
+ <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager">
+ <param name="url" value="jdbc:derby:${rep.home}/version/db;create=true"/>
+ <param name="schemaObjectPrefix" value="version_"/>
+ </PersistenceManager>
+ </Versioning>
+
+ <!--
+ Search index for content that is shared repository wide
+ (/jcr:system tree, contains mainly versions)
+ -->
+ <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
+ <param name="path" value="${rep.home}/repository/index"/>
+ <param name="textFilterClasses" value="org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
+ <param name="extractorPoolSize " value="2"/>
+ <param name="supportHighlighting" value="true"/>
+ </SearchIndex>
+</Repository>