You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2008/12/03 18:22:54 UTC
svn commit: r722975 - in /jackrabbit/sandbox/jcr-cmis/server/atompub/src:
main/java/org/apache/jackrabbit/cmis/
main/java/org/apache/jackrabbit/cmis/server/atompub/
test/java/org/apache/jackrabbit/cmis/
test/java/org/apache/jackrabbit/cmis/server/atomp...
Author: dpfister
Date: Wed Dec 3 09:22:53 2008
New Revision: 722975
URL: http://svn.apache.org/viewvc?rev=722975&view=rev
Log:
Implement getRepositoryInfo
- typed values/enums
- generation of expected service document in abstract class
- simple test repository & capabilities
Added:
jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java (with props)
jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java (with props)
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java (with props)
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java (with props)
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java (contents, props changed)
- copied, changed from r722807, jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfo.java
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java (with props)
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties (with props)
Removed:
jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfo.java
Modified:
jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMIS.java
jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISExtensionFactory.java
jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISRepositoryInfo.java
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java Wed Dec 3 09:22:53 2008
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+package org.apache.jackrabbit.cmis;
+
+import java.net.URI;
+
+/**
+ * Describes a repository.
+ */
+public interface Repository {
+
+ /**
+ * Return the repository id.
+ *
+ * @return repository id
+ */
+ public String getId();
+
+ /**
+ * Return the repository name.
+ *
+ * @return repository name
+ */
+ public String getName();
+
+ /**
+ * Return the repository URI.
+ *
+ * @return repository URI
+ */
+ public URI getURI();
+
+ /**
+ * Return the description.
+ *
+ * @return description
+ */
+ public String getDescription();
+
+ /**
+ * Return the vendor name.
+ *
+ * @return vendor name
+ */
+ public String getVendorName();
+
+ /**
+ * Return the product name.
+ *
+ * @return product name
+ */
+ public String getProductName();
+
+ /**
+ * Return the product version.
+ *
+ * @return product version
+ */
+ public String getProductVersion();
+
+ /**
+ * Return the root folder id.
+ *
+ * @return root folder id
+ */
+ public String getRootFolderId();
+
+ /**
+ * Return the version of CMIS standard supported.
+ *
+ * @return version of CMIS standard supported
+ */
+ public String getVersionsSupported();
+
+ /**
+ * Return the capabilities of this repository.
+ *
+ * @return capabilities
+ */
+ public Capabilities getCapabilities();
+}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/Repository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java Wed Dec 3 09:22:53 2008
@@ -0,0 +1,119 @@
+package org.apache.jackrabbit.cmis.server.atompub;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import org.apache.abdera.protocol.server.CategoriesInfo;
+import org.apache.abdera.protocol.server.CategoryInfo;
+import org.apache.abdera.protocol.server.CollectionInfo;
+import org.apache.abdera.protocol.server.RequestContext;
+import org.apache.abdera.protocol.server.ResponseContext;
+import org.apache.abdera.protocol.server.WorkspaceInfo;
+import org.apache.abdera.protocol.server.context.StreamWriterResponseContext;
+import org.apache.abdera.protocol.server.impl.AbstractWorkspaceProvider;
+import org.apache.abdera.util.Constants;
+import org.apache.abdera.writer.StreamWriter;
+import org.apache.jackrabbit.cmis.Capabilities;
+import org.apache.jackrabbit.cmis.Repository;
+
+public abstract class AbstractRepositoryProvider extends AbstractWorkspaceProvider {
+
+ private Repository repository;
+
+ public void setRepository(Repository repository) {
+ this.repository = repository;
+ }
+
+ protected ResponseContext getServiceDocument(final RequestContext request) {
+ return new StreamWriterResponseContext(request.getAbdera()) {
+ protected void writeTo(StreamWriter sw) throws IOException {
+ sw.startDocument().startService();
+ for (WorkspaceInfo wi : getWorkspaceManager(request)
+ .getWorkspaces(request)) {
+ sw.startWorkspace()
+ .writeAttribute(CMIS.REPOSITORY_RELATIONSHIP, "self")
+ .writeTitle(wi.getTitle(request));
+
+ writeRepository(sw);
+
+ for (CollectionInfo ci : wi.getCollections(request)) {
+ sw.startCollection(ci.getHref(request))
+ .writeTitle(ci.getTitle(request))
+ .writeAccepts(ci.getAccepts(request));
+ CategoriesInfo[] catinfos = ci.getCategoriesInfo(request);
+ if (catinfos != null) {
+ for (CategoriesInfo catinfo : catinfos) {
+ String cathref = catinfo.getHref(request);
+ if (cathref != null) {
+ sw.startCategories().
+ writeAttribute("href",
+ request.getTargetBasePath()
+ + cathref).endCategories();
+ } else {
+ sw.startCategories(
+ catinfo.isFixed(request),
+ catinfo.getScheme(request));
+ for (CategoryInfo cat : catinfo) {
+ sw.writeCategory(
+ cat.getTerm(request),
+ cat.getScheme(request),
+ cat.getLabel(request));
+ }
+ sw.endCategories();
+ }
+ }
+ }
+ sw.endCollection();
+ }
+ sw.endWorkspace();
+ }
+ sw.endService()
+ .endDocument();
+ }
+ }
+ .setStatus(200)
+ .setContentType(Constants.APP_MEDIA_TYPE);
+ }
+
+ protected void writeRepository(StreamWriter sw) throws IOException {
+ sw.startElement(CMIS.REPOSITORY_INFO);
+ writeElement(sw, CMIS.REPOSITORY_ID, repository.getId());
+ writeElement(sw, CMIS.REPOSITORY_NAME, repository.getName());
+ writeElement(sw, CMIS.REPOSITORY_RELATIONSHIP, "self");
+ writeElement(sw, CMIS.REPOSITORY_DESCRIPTION, repository.getDescription());
+ writeElement(sw, CMIS.VENDOR_NAME, repository.getVendorName());
+ writeElement(sw, CMIS.PRODUCT_NAME, repository.getProductName());
+ writeElement(sw, CMIS.PRODUCT_VERSION, repository.getProductVersion());
+ writeElement(sw, CMIS.ROOT_FOLDER_ID, repository.getRootFolderId());
+
+ Capabilities capabilities = repository.getCapabilities();
+
+ sw.startElement(CMIS.CAPABILITIES);
+ writeElement(sw, CMIS.CAPABILITY_MULTIFILING, capabilities.hasMultifiling());
+ writeElement(sw, CMIS.CAPABILITY_UNFILING, capabilities.hasUnfiling());
+ writeElement(sw, CMIS.CAPABILITY_VERSION_SPECIFIC_FILING, capabilities.hasVersionSpecificFiling());
+ writeElement(sw, CMIS.CAPABILITY_PWC_UPDATEABLE, capabilities.isPWCUpdatable());
+ writeElement(sw, CMIS.CAPABILITY_PWC_SEARCHABLE, capabilities.isPWCSearchable());
+ writeElement(sw, CMIS.CAPABILITY_ALL_VERSIONS_SEARCHABLE, capabilities.areAllVersionsSearchable());
+ writeElement(sw, CMIS.CAPABILITY_QUERY, capabilities.getQuerySupport().toString());
+ writeElement(sw, CMIS.CAPABILITY_JOIN, capabilities.getJoinSupport().toString());
+ writeElement(sw, CMIS.CAPABILITY_FULL_TEXT, capabilities.getFullTextSupport().toString());
+ sw.endElement();
+
+ writeElement(sw, CMIS.VERSIONS_SUPPORTED, repository.getVersionsSupported());
+ sw.endElement();
+ }
+
+ private void writeElement(StreamWriter sw, QName qname, String s) {
+ sw.startElement(qname).
+ writeElementText(s).
+ endElement();
+ }
+
+ private void writeElement(StreamWriter sw, QName qname, boolean b) {
+ sw.startElement(qname).
+ writeElementText(b ? "true" : "false").
+ endElement();
+ }
+}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/AbstractRepositoryProvider.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Modified: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMIS.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMIS.java?rev=722975&r1=722974&r2=722975&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMIS.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMIS.java Wed Dec 3 09:22:53 2008
@@ -1,7 +1,26 @@
+/*
+ * 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.
+ */
package org.apache.jackrabbit.cmis.server.atompub;
import javax.xml.namespace.QName;
+/**
+ * Provides CMIS namespace, prefix, local and qualified names.
+ */
public interface CMIS {
/* Namespace */
@@ -25,10 +44,12 @@
public static final String LN_CAPABILITY_UNFILING = "capabilityUnfiling";
public static final String LN_CAPABILITY_VERSION_SPECIFIC_FILING = "capabilityVersionSpecificFiling";
public static final String LN_CAPABILITY_PWC_UPDATEABLE = "capabilityPWCUpdateable";
+ public static final String LN_CAPABILITY_PWC_SEARCHABLE = "capabilityPWCSearchable";
public static final String LN_CAPABILITY_ALL_VERSIONS_SEARCHABLE = "capabilityAllVersionsSearchable";
+ public static final String LN_CAPABILITY_QUERY = "capabilityQuery";
public static final String LN_CAPABILITY_JOIN = "capabilityJoin";
public static final String LN_CAPABILITY_FULL_TEXT = "capabilityFullText";
- public static final String LN_CMIS_VERSIONS_SUPPORTED = "cmisVersionsSupported";
+ public static final String LN_VERSIONS_SUPPORTED = "cmisVersionsSupported";
public static final String LN_REPOSITORY_SPECIFIC_INFORMATION = "repositorySpecificInformation";
/* Qualified names */
@@ -46,9 +67,11 @@
public static final QName CAPABILITY_UNFILING = new QName(NS, LN_CAPABILITY_UNFILING, PREFIX);
public static final QName CAPABILITY_VERSION_SPECIFIC_FILING = new QName(NS, LN_CAPABILITY_VERSION_SPECIFIC_FILING, PREFIX);
public static final QName CAPABILITY_PWC_UPDATEABLE = new QName(NS, LN_CAPABILITY_PWC_UPDATEABLE, PREFIX);
+ public static final QName CAPABILITY_PWC_SEARCHABLE = new QName(NS, LN_CAPABILITY_PWC_SEARCHABLE, PREFIX);
public static final QName CAPABILITY_ALL_VERSIONS_SEARCHABLE = new QName(NS, LN_CAPABILITY_ALL_VERSIONS_SEARCHABLE, PREFIX);
+ public static final QName CAPABILITY_QUERY = new QName(NS, LN_CAPABILITY_QUERY, PREFIX);
public static final QName CAPABILITY_JOIN = new QName(NS, LN_CAPABILITY_JOIN, PREFIX);
public static final QName CAPABILITY_FULL_TEXT = new QName(NS, LN_CAPABILITY_FULL_TEXT, PREFIX);
- public static final QName CMIS_VERSIONS_SUPPORTED = new QName(NS, LN_CMIS_VERSIONS_SUPPORTED, PREFIX);
+ public static final QName VERSIONS_SUPPORTED = new QName(NS, LN_VERSIONS_SUPPORTED, PREFIX);
public static final QName REPOSITORY_SPECIFIC_INFORMATION = new QName(NS, LN_REPOSITORY_SPECIFIC_INFORMATION, PREFIX);
}
Modified: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISExtensionFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISExtensionFactory.java?rev=722975&r1=722974&r2=722975&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISExtensionFactory.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISExtensionFactory.java Wed Dec 3 09:22:53 2008
@@ -24,16 +24,11 @@
public class CMISExtensionFactory extends AbstractExtensionFactory {
/**
- * CMIS namespace.
- */
- public static final String CMIS_NS = "http://www.cmis.org/2008/05";
-
- /**
* Create a new instance of this class.
*/
public CMISExtensionFactory() {
- super(CMIS_NS);
+ super(CMIS.NS);
- addImpl(CMISRepositoryInfo.NAME, CMISRepositoryInfo.class);
+ addImpl(CMIS.REPOSITORY_INFO, CMISRepositoryInfo.class);
}
}
Modified: jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISRepositoryInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISRepositoryInfo.java?rev=722975&r1=722974&r2=722975&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISRepositoryInfo.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/main/java/org/apache/jackrabbit/cmis/server/atompub/CMISRepositoryInfo.java Wed Dec 3 09:22:53 2008
@@ -4,19 +4,48 @@
import org.apache.abdera.model.Element;
import org.apache.abdera.model.ElementWrapper;
+import org.apache.jackrabbit.cmis.Repository;
public class CMISRepositoryInfo extends ElementWrapper {
- public static final QName NAME =
- new QName(CMISExtensionFactory.CMIS_NS, "repositoryInfo");
- private static final QName REPOSITORY_ID =
- new QName(CMISExtensionFactory.CMIS_NS, "repositoryId");
-
public CMISRepositoryInfo(Element elem) {
super(elem);
}
- public String getRepositoryId() {
- return getFirstChild(REPOSITORY_ID).getText();
+ public String getCmisVersionsSupported() {
+ return getChildText(CMIS.VERSIONS_SUPPORTED);
+ }
+
+ public String getDescription() {
+ return getChildText(CMIS.REPOSITORY_DESCRIPTION);
+ }
+
+ public String getId() {
+ return getChildText(CMIS.REPOSITORY_ID);
+ }
+
+ public String getName() {
+ return getChildText(CMIS.REPOSITORY_NAME);
+ }
+
+ public String getProductName() {
+ return getChildText(CMIS.PRODUCT_NAME);
+ }
+
+ public String getProductVersion() {
+ return getChildText(CMIS.PRODUCT_VERSION);
+ }
+
+ public String getRootFolderId() {
+ return getChildText(CMIS.ROOT_FOLDER_ID);
+ }
+
+ public String getVendorName() {
+ return getChildText(CMIS.VENDOR_NAME);
+ }
+
+ protected String getChildText(QName name) {
+ Element elem = getFirstChild(name);
+ return elem != null ? elem.getText() : null;
}
}
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java Wed Dec 3 09:22:53 2008
@@ -0,0 +1,142 @@
+/*
+ * 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.
+ */
+package org.apache.jackrabbit.cmis;
+
+/**
+ * Simple capabilities.
+ */
+public class SimpleCapabilities implements Capabilities {
+
+ private boolean allVersionsSearchable;
+ private FullTextSupport fullTextSupport;
+ private JoinSupport joinSupport;
+ private QuerySupport querySupport;
+ private boolean multiFiling;
+ private boolean unfiling;
+ private boolean versionSpecificFiling;
+ private boolean pwcSearchable;
+ private boolean pwcUpdateable;
+
+ /**
+ * Create an instance of this class.
+ */
+ public SimpleCapabilities() {
+ fullTextSupport = FullTextSupport.NONE;
+ joinSupport = JoinSupport.NO;
+ querySupport = QuerySupport.NONE;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#areAllVersionsSearchable()
+ */
+ public boolean areAllVersionsSearchable() {
+ // TODO Auto-generated method stub
+ return allVersionsSearchable;
+ }
+
+ public void setAllVersionsSearchable(boolean allVersionsSearchable) {
+ this.allVersionsSearchable = allVersionsSearchable;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#getFullTextSupport()
+ */
+ public FullTextSupport getFullTextSupport() {
+ return fullTextSupport;
+ }
+
+ public void setFullTextSupport(FullTextSupport fullTextSupport) {
+ this.fullTextSupport = fullTextSupport;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#getJoinSupport()
+ */
+ public JoinSupport getJoinSupport() {
+ return joinSupport;
+ }
+
+ public void setJoinSupport(JoinSupport joinSupport) {
+ this.joinSupport = joinSupport;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#getQuerySupport()
+ */
+ public QuerySupport getQuerySupport() {
+ return querySupport;
+ }
+
+ public void setQuerySupport(QuerySupport querySupport) {
+ this.querySupport = querySupport;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#hasMultifiling()
+ */
+ public boolean hasMultifiling() {
+ return multiFiling;
+ }
+
+ public void setMultiFiling(boolean multiFiling) {
+ this.multiFiling = multiFiling;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#hasUnfiling()
+ */
+ public boolean hasUnfiling() {
+ return unfiling;
+ }
+
+ public void setUnfiling(boolean unfiling) {
+ this.unfiling = unfiling;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#hasVersionSpecificFiling()
+ */
+ public boolean hasVersionSpecificFiling() {
+ return versionSpecificFiling;
+ }
+
+ public void setVersionSpecificFiling(boolean versionSpecificFiling) {
+ this.versionSpecificFiling = versionSpecificFiling;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#isPWCSearchable()
+ */
+ public boolean isPWCSearchable() {
+ return pwcSearchable;
+ }
+
+ public void setPWCSearchable(boolean pwcSearchable) {
+ this.pwcSearchable = pwcSearchable;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Capabilities#isPWCUpdatable()
+ */
+ public boolean isPWCUpdatable() {
+ return pwcUpdateable;
+ }
+
+ public void setPwcUpdateable(boolean pwcUpdateable) {
+ this.pwcUpdateable = pwcUpdateable;
+ }
+}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleCapabilities.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java Wed Dec 3 09:22:53 2008
@@ -0,0 +1,152 @@
+/*
+ * 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.
+ */
+package org.apache.jackrabbit.cmis;
+
+import java.net.URI;
+
+/**
+ * Simple repository used for testing.
+ */
+public class SimpleRepository implements Repository {
+
+ private Capabilities capabilities;
+ private String description;
+ private String id;
+ private String name;
+ private String productName;
+ private String productVersion;
+ private String rootFolderId;
+ private URI uri;
+ private String vendorName;
+ private String versionsSupported;
+
+ /**
+ * Create a new instance of this class.
+ */
+ public SimpleRepository() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getCapabilities()
+ */
+ public Capabilities getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(Capabilities capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getDescription()
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getId()
+ */
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getName()
+ */
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getProductName()
+ */
+ public String getProductName() {
+ return productName;
+ }
+
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getProductVersion()
+ */
+ public String getProductVersion() {
+ return productVersion;
+ }
+
+ public void setProductVersion(String productVersion) {
+ this.productVersion = productVersion;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getRootFolderId()
+ */
+ public String getRootFolderId() {
+ return rootFolderId;
+ }
+
+ public void setRootFolderId(String rootFolderId) {
+ this.rootFolderId = rootFolderId;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getURI()
+ */
+ public URI getURI() {
+ return uri;
+ }
+
+ public void setURI(URI uri) {
+ this.uri = uri;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getVendorName()
+ */
+ public String getVendorName() {
+ return vendorName;
+ }
+
+ public void setVendorName(String vendorName) {
+ this.vendorName = vendorName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jackrabbit.cmis.Repository#getVersionsSupported()
+ */
+ public String getVersionsSupported() {
+ return versionsSupported;
+ }
+
+ public void setVersionsSupported(String versionsSupported) {
+ this.versionsSupported = versionsSupported;
+ }
+}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/SimpleRepository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Copied: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java (from r722807, jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfo.java)
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java?p2=jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java&p1=jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfo.java&r1=722807&r2=722975&rev=722975&view=diff
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfo.java (original)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java Wed Dec 3 09:22:53 2008
@@ -1,25 +1,11 @@
package org.apache.jackrabbit.cmis.server.atompub;
import java.io.InputStream;
-import java.util.Collection;
-import java.util.HashSet;
-import org.apache.abdera.Abdera;
import org.apache.abdera.model.Service;
import org.apache.abdera.model.Workspace;
-import org.apache.abdera.protocol.Resolver;
import org.apache.abdera.protocol.client.AbderaClient;
import org.apache.abdera.protocol.client.ClientResponse;
-import org.apache.abdera.protocol.server.CollectionInfo;
-import org.apache.abdera.protocol.server.RequestContext;
-import org.apache.abdera.protocol.server.Target;
-import org.apache.abdera.protocol.server.TargetBuilder;
-import org.apache.abdera.protocol.server.WorkspaceInfo;
-import org.apache.abdera.protocol.server.WorkspaceManager;
-import org.apache.abdera.protocol.server.impl.AbstractProvider;
-import org.apache.abdera.protocol.server.impl.DefaultProvider;
-import org.apache.abdera.protocol.server.impl.SimpleWorkspaceInfo;
-import org.apache.abdera.protocol.server.provider.basic.BasicProvider;
import org.apache.jackrabbit.cmis.server.atompub.CMISRepositoryInfo;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -27,17 +13,16 @@
import junit.framework.Assert;
-public class RepositoryInfo extends Assert {
+public class RepositoryInfoTest extends Assert {
private static JettyServer server;
- private static Abdera abdera = Abdera.getInstance();
private static AbderaClient client = new AbderaClient();
@BeforeClass
public static void setUp() throws Exception {
if (server == null) {
server = new JettyServer();
- server.start(MyProvider.class);
+ server.start(SimpleRepositoryProvider.class);
}
}
@@ -47,50 +32,27 @@
@Test
public void testGetService() throws Exception {
+ System.in.read();
+
ClientResponse resp = client.get("http://localhost:9002/");
+ System.out.println(resp.getDocument().getRoot());
Service root = (Service) resp.getDocument().getRoot();
- Workspace workspace = root.getWorkspaces().get(0);
- System.out.println(workspace);
-
- CMISRepositoryInfo info = workspace.getFirstChild(CMISRepositoryInfo.NAME);
- System.out.println(info.getRepositoryId());
- /*
- InputStream in = getInputStream("Example-Service.xml");
+ System.out.println(root);
- Service root = (Service) abdera.getParser().parse(in).getRoot();
Workspace workspace = root.getWorkspaces().get(0);
+ System.out.println(workspace);
- CMISRepositoryInfo info = workspace.getFirstChild(CMISRepositoryInfo.NAME);
- System.out.println(info.getRepositoryId());
- */
+ CMISRepositoryInfo info = workspace.getFirstChild(CMIS.REPOSITORY_INFO);
+ System.out.println(info.getId());
+ System.out.println(info.getVendorName());
+ System.out.println(info.getProductName());
+ System.out.println(info.getRootFolderId());
}
private InputStream getInputStream(String name) {
- return RepositoryInfo.class.getClassLoader().getResourceAsStream(name);
+ return RepositoryInfoTest.class.getClassLoader().getResourceAsStream(name);
}
}
-// does not work because the class must be public
-class MyProvider extends DefaultProvider {
-
- public MyProvider() {
- addWorkspace(new SimpleWorkspaceInfo());
- }
-
-}
-
-class MyWorkspaceInfo extends SimpleWorkspaceInfo {
-
- public String getTitle(RequestContext requsest) {
- return "Repository 1";
- }
-
- @Override
- public Workspace asWorkspaceElement(RequestContext request) {
- Workspace workspace = super.asWorkspaceElement(request);
- workspace.setAttributeValue("cmis:repositoryRelationship", "Self");
- return workspace;
- }
-}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/RepositoryInfoTest.java
------------------------------------------------------------------------------
svn:mergeinfo =
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java Wed Dec 3 09:22:53 2008
@@ -0,0 +1,53 @@
+package org.apache.jackrabbit.cmis.server.atompub;
+
+import java.util.HashSet;
+
+import org.apache.abdera.protocol.server.CollectionAdapter;
+import org.apache.abdera.protocol.server.CollectionInfo;
+import org.apache.abdera.protocol.server.RequestContext;
+import org.apache.abdera.protocol.server.TargetType;
+import org.apache.abdera.protocol.server.impl.RouteManager;
+import org.apache.abdera.protocol.server.impl.SimpleWorkspaceInfo;
+import org.apache.jackrabbit.cmis.SimpleCapabilities;
+import org.apache.jackrabbit.cmis.SimpleRepository;
+
+public class SimpleRepositoryProvider extends AbstractRepositoryProvider {
+
+ public SimpleRepositoryProvider() {
+ super();
+ init();
+
+ SimpleRepository repository = new SimpleRepository();
+ repository.setId("repid1");
+ repository.setName("repository1");
+ repository.setDescription("Repository Description");
+ repository.setVendorName("ACME Vendor");
+ repository.setProductName("ACME Repository");
+ repository.setProductVersion("1.0");
+ repository.setRootFolderId("rootFolderId");
+ repository.setCapabilities(new SimpleCapabilities());
+ repository.setVersionsSupported("0.43");
+
+ setRepository(repository);
+
+ SimpleWorkspaceInfo wi = new SimpleWorkspaceInfo(repository.getDescription());
+ wi.setCollections(new HashSet<CollectionInfo>());
+ addWorkspace(wi);
+ }
+
+ private void init() {
+ RouteManager routeManager =
+ new RouteManager()
+ .addRoute("service", "/", TargetType.TYPE_SERVICE)
+ .addRoute("feed", "/:feed", TargetType.TYPE_COLLECTION)
+ .addRoute("entry", "/:feed/:entry", TargetType.TYPE_ENTRY);
+ setTargetBuilder(routeManager);
+ setTargetResolver(routeManager);
+ }
+
+ public CollectionAdapter getCollectionAdapter(RequestContext request) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/java/org/apache/jackrabbit/cmis/server/atompub/SimpleRepositoryProvider.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev Url
Added: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties?rev=722975&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties (added)
+++ jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties Wed Dec 3 09:22:53 2008
@@ -0,0 +1,36 @@
+# 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.
+
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=INFO, stdout
+#log4j.rootLogger=DEBUG, stdout, file
+#log4j.rootLogger=ERROR, stdout, file
+
+log4j.logger.org.apache.jackrabbit.test=DEBUG
+
+# 'stdout' is set to be a ConsoleAppender.
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+
+# 'stdout' uses PatternLayout
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L)\n
+
+# 'file' is set to be a FileAppender.
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=target/server.log
+
+# 'file' uses PatternLayout.
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} *%-5p* [%t] %c{1}: %m (%F, line %L)\n
Propchange: jackrabbit/sandbox/jcr-cmis/server/atompub/src/test/resources/log4j.properties
------------------------------------------------------------------------------
svn:eol-style = native