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 2009/01/23 17:45:07 UTC

svn commit: r737080 - in /jackrabbit/sandbox/jcr-cmis/api: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/jackrabbit/ src/main/java/org/apache/jackrabbit/cmis/

Author: dpfister
Date: Fri Jan 23 08:45:07 2009
New Revision: 737080

URL: http://svn.apache.org/viewvc?rev=737080&view=rev
Log:
JCRCMIS-7 Define CMIS Java API

Added:
    jackrabbit/sandbox/jcr-cmis/api/
    jackrabbit/sandbox/jcr-cmis/api/pom.xml   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/
    jackrabbit/sandbox/jcr-cmis/api/src/main/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java   (with props)
    jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java   (with props)

Added: jackrabbit/sandbox/jcr-cmis/api/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/pom.xml?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/pom.xml (added)
+++ jackrabbit/sandbox/jcr-cmis/api/pom.xml Fri Jan 23 08:45:07 2009
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    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.
+-->
+
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>jcr-cmis-parent</artifactId>
+        <version>1.6-SNAPSHOT</version>
+    </parent>
+    <artifactId>jcr-cmis-api</artifactId>
+    <version>1.6-SNAPSHOT</version>
+    <name>Jackrabbit CMIS API</name>
+
+</project>

Propchange: jackrabbit/sandbox/jcr-cmis/api/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,91 @@
+/*
+ * 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;
+
+/**
+ * Describes the capabilities of a repository.
+ */
+public interface Capabilities {
+
+    /**
+     * Ability to file a document (or other fileable object that is not a
+     * folder) in more than a folder.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean hasMultifiling();
+
+    /**
+     * Ability to leave a document (or other fileable object that is not a
+     * folder) not filed in a any folder.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean hasUnfiling();
+
+    /**
+     * Ability to file a particular version (i.e., not all versions) of a
+     * document in a folder.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean hasVersionSpecificFiling();
+
+    /**
+     * Ability to update the "Private Working Copy" of a checked-out document.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean isPWCUpdatable();
+
+    /**
+     * Ability to include non-latest versions of document in query search
+     * scope; otherwise only the latest version of each document is searchable.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean areAllVersionsSearchable();
+
+    /**
+     * Ability to include the "Private Working Copy" of checked-out documents
+     * in query search scope; otherwise PWC's are not searchable.
+     *
+     * @return <code>true</code> or <code>false</code>
+     */
+    public boolean isPWCSearchable();
+
+    /**
+     * Ability to provide query.
+     *
+     * @return query support enum
+     */
+    public QuerySupport getQuerySupport();
+
+    /**
+     * Join support level in query.
+     *
+     * @return join support enum
+     */
+    public JoinSupport getJoinSupport();
+
+    /**
+     * Full-text search support level in query.
+     *
+     * @return full text support enum
+     */
+    public FullTextSupport getFullTextSupport();
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Capabilities.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,30 @@
+package org.apache.jackrabbit.cmis;
+
+import java.util.Calendar;
+
+public interface Entry {
+
+    public String getId();
+
+    public String getName();
+
+    public String getParentId();
+
+    public String getObjectId();
+
+    public String getObjectTypeId();
+
+    public String getCreatedBy();
+
+    public Calendar getCreationDate();
+
+    public String getLastModifiedBy();
+
+    public Calendar getLastModificationDate();
+
+    public String getChangeToken();
+
+    public Iterable<Entry> getChildren();
+
+    public Iterable<Entry> getDescendants();
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Entry.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+/**
+ * Full text support enumeration.
+ */
+public enum FullTextSupport {
+
+    /**
+     * No full-text support (i.e. a text-search-predicate is not allowed in
+     * the WHERE clause of a query).
+     */
+    NONE("none"),
+
+    /**
+     * Full-text only (i.e., only text-search-predicate is allowed in
+     * the WHERE clause of a query).
+     */
+    FULL_TEXT("fulltextonly"),
+
+    /**
+     * Full-text + structured/typed search on Properties (i.e. all search
+     * predicates are supported in the WHERE clause of a query).
+     */
+    FULL_TEXT_AND_STRUCTURED("fulltextandstructured");
+
+    /**
+     * Value.
+     */
+    private final String value;
+
+    /**
+     * Create a new instance of this class.
+     *
+     * @param value value
+     */
+    private FullTextSupport(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return value;
+    }
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/FullTextSupport.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,57 @@
+/*
+ * 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;
+
+/**
+ * Join support enumeration.
+ */
+public enum JoinSupport {
+
+    /**
+     * No join support.
+     */
+    NO("nojoin"),
+
+    /**
+     * Support inner join.
+     */
+    INNER("inneronly"),
+
+    /**
+     * Support inner and outer join.
+     */
+    INNER_AND_OUTER("innerandouter");
+
+    /**
+     * Value.
+     */
+    private final String value;
+
+    /**
+     * Create a new instance of this class.
+     *
+     * @param value value
+     */
+    private JoinSupport(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return value;
+    }
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/JoinSupport.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,62 @@
+/*
+ * 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;
+
+/**
+ * Query support enumeration.
+ */
+public enum QuerySupport {
+
+    /**
+     * No query support.
+     */
+    NONE("none"),
+
+    /**
+     * Only metadata.
+     */
+    METADATA_ONLY("metadataonly"),
+
+    /**
+     * Only full text query.
+     */
+    FULL_TEXT_ONLY("fulltextonly"),
+
+    /**
+     * Both full text and metadata capabilites provided.
+     */
+    BOTH("both");
+
+    /**
+     * Value.
+     */
+    private final String value;
+
+    /**
+     * Create a new instance of this class.
+     *
+     * @param value value
+     */
+    private QuerySupport(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return value;
+    }
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/QuerySupport.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url

Added: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java?rev=737080&view=auto
==============================================================================
--- jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java (added)
+++ jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java Fri Jan 23 08:45:07 2009
@@ -0,0 +1,103 @@
+/*
+ * 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();
+
+    /**
+     * Return an entry, given its id.
+     *
+     * @param id entry id
+     * @return entry
+     */
+    public Entry getEntry(String id);
+}

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/sandbox/jcr-cmis/api/src/main/java/org/apache/jackrabbit/cmis/Repository.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev Url