Author: buildbot
Date: Fri Jul 8 16:17:56 2016
New Revision: 992345
Log:
Staging update by buildbot for chemistry
Added:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/retention/
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/retention/index.html
Modified:
websites/staging/chemistry/trunk/content/ (props changed)
websites/staging/chemistry/trunk/content/docs/cmis-samples/about/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/css/chemistry.css
websites/staging/chemistry/trunk/content/docs/cmis-samples/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/mkdocs/search_index.json
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/access-control/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/allowable-actions/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/capabilities/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/changelog/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/content/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-objects/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-session/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/delete-objects/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/exceptions/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/extensions/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/lists/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/move-objects/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/operation-context/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/properties/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/queries/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/retrieve-objects/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/types/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/update-objects/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/versions/index.html
websites/staging/chemistry/trunk/content/docs/cmis-samples/sitemap.xml
Propchange: websites/staging/chemistry/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jul 8 16:17:56 2016
@@ -1 +1 @@
-1750074
+1751941
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/about/index.html
==============================================================================
--- websites/staging/chemistry/trunk/content/docs/cmis-samples/about/index.html
(original)
+++ websites/staging/chemistry/trunk/content/docs/cmis-samples/about/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../samples/retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -246,7 +252,7 @@
</li>
<li >
- <a rel="next"
href="../samples/access-control/index.html">
+ <a rel="next" href="../samples/retention/index.html">
<i class="fa fa-arrow-left"
aria-hidden="true"></i> Previous
</a>
</li>
@@ -283,10 +289,10 @@
<p>Created by the <a href="https://chemistry.apache.org/">Apache Chemistry
PMC</a>.</p>
<p>If you have any questions, subscribe to the <a
href="https://lists.apache.org/[email protected]">Apache
Chemistry Dev Mailing List</a>. If you find an error, please create an <a
href="https://issues.apache.org/jira/browse/CMIS">issue</a>.</p>
<p>License: <a href="https://www.apache.org/licenses/">Apache 2.0</a></p>
-<p><a href="https://chemistry.apache.org/">Apache Chemistry</a>, <a
href="https://chemistry.apache.org/">Apache</a>, the Apache feather logo, and
the Apache Chemistry project logo are trademarks of <a
href="https://www.apache.org/">The Apache Software Foundation</a>.<br />
-Content Management Interoperability Services (CMIS) is an <a
href="http://www.oasis-open.org/committees/cmis/">OASIS</a> specification.</p>
+<p><a href="https://chemistry.apache.org/">Apache Chemistry</a>, <a
href="https://www.apache.org/" target="_blank">Apache</a>, the Apache feather
logo, and the Apache Chemistry project logo are trademarks of <a
href="https://www.apache.org/" target="_blank">The Apache Software
Foundation</a>.<br />
+Content Management Interoperability Services (CMIS) is an <a
href="http://www.oasis-open.org/committees/cmis/" target="_blank">OASIS</a>
specification.</p>
<hr />
-<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a> using
the modified <a href="https://sourcefoundry.org/cinder/">Cinder</a> theme.
</p></div>
+<p>Documentation built with <a href="http://www.mkdocs.org/"
target="_blank">MkDocs</a> using the modified <a
href="https://sourcefoundry.org/cinder/" target="_blank">Cinder</a> theme.
</p></div>
</div>
@@ -336,4 +342,4 @@ Content Management Interoperability Serv
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.517113 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:05.189989 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/css/chemistry.css
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/css/chemistry.css
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/css/chemistry.css
Fri Jul 8 16:17:56 2016
@@ -83,6 +83,10 @@ div[class~="note"] p[class~="admonition-
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
}
+div[class~="note"] code {
+ background-color: transparent;
+}
+
.warning {
color: white;
background-color: #f04124;
@@ -100,4 +104,8 @@ div[class~="warning"] p[class~="admoniti
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f071\00a0";
+}
+
+div[class~="warning"] code {
+ background-color: transparent;
}
\ No newline at end of file
Modified: websites/staging/chemistry/trunk/content/docs/cmis-samples/index.html
==============================================================================
--- websites/staging/chemistry/trunk/content/docs/cmis-samples/index.html
(original)
+++ websites/staging/chemistry/trunk/content/docs/cmis-samples/index.html Fri
Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="samples/retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -290,7 +296,7 @@
<h1 id="apache-chemistry-cmis-code-samples">Apache Chemistry CMIS Code
Samples</h1>
<hr />
<p><img alt="CMIS" src="./img/cmis.png" style="float:left; margin-right:
20px;" /></p>
-<p><a href="https://www.oasis-open.org/committees/cmis">CMIS (Content
Management Interoperability Services)</a> is an OASIS standard enabling
information sharing between different Content Management Systems.</p>
+<p><a href="https://www.oasis-open.org/committees/cmis" target="_blank">CMIS
(Content Management Interoperability Services)</a> is an OASIS standard
enabling information sharing between different Content Management Systems.</p>
<div style="clear:both"></div>
<hr />
@@ -298,8 +304,11 @@
<p><img alt="Apache Chemistry" src="./img/chemistry-logo.png"
style="float:left; margin-right: 20px;" /></p>
<ul>
<li><a href="https://chemistry.apache.org/java/opencmis.html">Apache Chemistry
OpenCMIS</a> - a CMIS library for Java</li>
-<li><a href="https://chemistry.apache.org/dotnet/portcmis.html">Apache
Chemistry PortCMIS</a> - a CMIS library for.Net</li>
+<li><a href="https://chemistry.apache.org/dotnet/portcmis.html">Apache
Chemistry PortCMIS</a> - a CMIS library for .Net</li>
</ul>
+<p>We assume that you have a rough understanding of CMIS. This is not a CMIS
introduction course.</p>
+<p>Many code samples are marked with <span class="cmis">CMIS 1.0</span> or
<span class="cmis">CMIS 1.1</span>. Those tags indicate the CMIS specification
version that the server has to support to use the feature.</p>
+<p>Throughout the code samples you will find references to sections in the <a
href="https://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.pdf"
target="_blank">CMIS 1.1 specification</a>; tags like <span class="spec">Spec
1.5</span>. We recommend that you have the specification document ready to
hand. </p>
<div class="admonition note">
<p class="admonition-title">Under Development</p>
<p>This sample collection is under development. Some areas are only sparely
covered or not covered at all, yet.
@@ -307,11 +316,11 @@ Also some code samples lack a meaningful
</div>
<hr />
<h2 id="apache-chemistry">Apache Chemistry™</h2>
-<p><a href="https://chemistry.apache.org">Apache Chemistry</a> provides open
source client and server implementations of <a
href="https://docs.oasis-open.org/cmis/CMIS/v1.0/">CMIS 1.0</a> and <a
href="https://docs.oasis-open.org/cmis/CMIS/v1.1/">CMIS 1.1</a> for multiple
programming languages (Java, .Net, Python, PHP, Objective-C, JavaScript,
…). </p>
+<p><a href="https://chemistry.apache.org">Apache Chemistry</a> provides open
source client and server implementations of <a
href="https://docs.oasis-open.org/cmis/CMIS/v1.0/" target="_blank">CMIS 1.0</a>
and <a href="https://docs.oasis-open.org/cmis/CMIS/v1.1/" target="_blank">CMIS
1.1</a> for multiple programming languages (Java, .Net, Python, PHP,
Objective-C, JavaScript, …). </p>
<hr />
<p><em>Do you want to know more about CMIS and Apache Chemistry?</em></p>
<p><img alt="CMIS and Apache Chemistry in Action"
src="./img/apache-chemistry-in-action.png" style="float:left; margin-right:
20px;" /></p>
-<p>The book <a href="https://www.manning.com/mueller/">CMIS and Apache
Chemistry in Action</a> is a comprehensive guide to the CMIS standard and
related ECM concepts. In it, you’ll tackle hands-on examples for building
applications on CMIS repositories from both the client and the server sides.
You’ll find working examples using the Apache Chemistry APIs for Java,
Python, C#, Objective-C, and PHP, but you can use the techniques you’ll
learn in this book to work with CMIS repositories using any language that can
speak HTTP - including JavaScript.</p>
+<p>The book <a
href="https://www.manning.com/books/cmis-and-apache-chemistry-in-action"
target="_blank">CMIS and Apache Chemistry in Action</a> is a comprehensive
guide to the CMIS standard and related ECM concepts. In it, you’ll tackle
hands-on examples for building applications on CMIS repositories from both the
client and the server sides. You’ll find working examples using the
Apache Chemistry APIs for Java, Python, C#, Objective-C, and PHP, but you can
use the techniques you’ll learn in this book to work with CMIS
repositories using any language that can speak HTTP - including JavaScript.</p>
<div style="clear:both"></div>
<hr />
@@ -347,7 +356,7 @@ Also some code samples lack a meaningful
<h3 id="portcmis">PortCMIS</h3>
<p><a href="https://chemistry.apache.org/dotnet/portcmis.html">PortCMIS</a> is
a CMIS client library for .Net. It is a Portable Class Library that runs on
servers, desktops, and Windows Mobile.</p>
-<p>To get started with PortCMIS, download the <a
href="https://chemistry.apache.org/dotnet/portcmis.html">PortCMIS client
binaries</a>. You have the choice of either plain DLLs or NUPGK packages. It is
also availabe on <a
href="https://www.nuget.org/packages/PortCMIS/">nuget</a>:</p>
+<p>To get started with PortCMIS, download the <a
href="https://chemistry.apache.org/dotnet/portcmis.html">PortCMIS client
binaries</a>. You have the choice of either plain DLLs or NUPGK packages. It is
also availabe on <a href="https://www.nuget.org/packages/PortCMIS/"
target="_blank">nuget</a>:</p>
<pre><code>PM> Install-Package PortCMIS
</code></pre>
@@ -405,4 +414,4 @@ For new projects it is recommend to use
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.020313 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.652720 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/mkdocs/search_index.json
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/mkdocs/search_index.json
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/mkdocs/search_index.json
Fri Jul 8 16:17:56 2016
@@ -2,12 +2,12 @@
"docs": [
{
"location": "/index.html",
- "text": "Apache Chemistry CMIS Code Samples\n\n\n\n\n\n\nCMIS
(Content Management Interoperability Services)\n is an OASIS standard enabling
information sharing between different Content Management
Systems.\n\n\n\n\n\n\n\nThis is a collection of code samples for
\n\n\n\n\n\n\nApache Chemistry OpenCMIS\n - a CMIS library for Java\n\n\nApache
Chemistry PortCMIS\n - a CMIS library for.Net\n\n\n\n\n\n\nUnder
Development\n\n\nThis sample collection is under development. Some areas are
only sparely covered or not covered at all, yet.\nAlso some code samples lack a
meaningful description. If you want help, please see the \nabout
page\n.\n\n\n\n\n\n\nApache Chemistry\n\n\nApache Chemistry\n provides open
source client and server implementations of \nCMIS 1.0\n and \nCMIS 1.1\n for
multiple programming languages (Java, .Net, Python, PHP, Objective-C,
JavaScript, \n). \n\n\n\n\nDo you want to know more about CMIS and Apache
Chemistry?\n\n\n\n\nThe book \nCMIS and Apache Chemistry
in Action\n is a comprehensive guide to the CMIS standard and related ECM
concepts. In it, you\nll tackle hands-on examples for building applications on
CMIS repositories from both the client and the server sides. You\nll find
working examples using the Apache Chemistry APIs for Java, Python, C#,
Objective-C, and PHP, but you can use the techniques you\nll learn in this book
to work with CMIS repositories using any language that can speak HTTP -
including JavaScript.\n\n\n\n\n\n\n\nOpenCMIS\n\n\nOpenCMIS\n is a CMIS client
library and a CMIS server framework for Java. It also provides developer tools
such as the \nCMIS Workbench\n and the \nInMemory Repository\n. OpenCMIS runs
on servers, desktops, and Android.\n\n\nThe code samples in this documentation
cover the OpenCMIS client API. If you want to build a CMIS server with
OpenCMIS, refer to the \nOpenCMIS Server Development Guide\n.\n\n\nTo get
started with OpenCMIS, download the \nOpenCMIS client libraries\n or use Maven
or Grad
le to get the client libraries.\n\n\nMaven\n\n\nReplace \n[OpenCMIS version]\n
with the latest version number, e.g. \n0.14.0\n.\n\n\ndependency\n\n
\ngroupId\norg.apache.chemistry.opencmis\n/groupId\n\n
\nartifactId\nchemistry-opencmis-client-impl\n/artifactId\n\n
\nversion\n[OpenCMIS version]\n/version\n\n\n/dependency\n\n\n\n\n\nFor
Android:\n\n\ndependency\n\n
\ngroupId\norg.apache.chemistry.opencmis\n/groupId\n\n
\nartifactId\nchemistry-opencmis-android-client\n/artifactId\n\n
\nversion\n[OpenCMIS
version]\n/version\n\n\n/dependency\n\n\n\n\n\nGradle\n\n\nReplace \n[OpenCMIS
version]\n with the latest version number, e.g. \n0.14.0\n.\n\n\ncompile group:
'org.apache.chemistry.opencmis', name: 'chemistry-opencmis-client-impl',
version: '[OpenCMIS version]'\n\n\n\n\nFor Android:\n\n\ncompile group:
'org.apache.chemistry.opencmis', name: 'chemistry-opencmis-android-client',
version: '[OpenCMIS version]'\n\n\n\n\nPortCMIS\n\n\nPortCMIS\n is a CMIS
client library for
.Net. It is a Portable Class Library that runs on servers, desktops, and
Windows Mobile.\n\n\nTo get started with PortCMIS, download the \nPortCMIS
client binaries\n. You have the choice of either plain DLLs or NUPGK packages.
It is also availabe on \nnuget\n:\n\n\nPM\n Install-Package PortCMIS
\n\n\n\n\nDotCMIS\n\n\nDotCMIS\n is the predecessor of \nPortCMIS\n.\nThe APIs
are very similar and most of the PortCMIS samples should also work with
DotCMIS.\n\n\nThe high-level differences between DotCMIS and PortCMIS are
described on \nthis page\n.\nFor new projects it is recommend to use
PortCMIS.",
+ "text": "Apache Chemistry CMIS Code Samples\n\n\n\n\n\n\nCMIS
(Content Management Interoperability Services)\n is an OASIS standard enabling
information sharing between different Content Management
Systems.\n\n\n\n\n\n\n\nThis is a collection of code samples for
\n\n\n\n\n\n\nApache Chemistry OpenCMIS\n - a CMIS library for Java\n\n\nApache
Chemistry PortCMIS\n - a CMIS library for .Net\n\n\n\n\nWe assume that you have
a rough understanding of CMIS. This is not a CMIS introduction
course.\n\n\nMany code samples are marked with \nCMIS 1.0\n or \nCMIS 1.1\n.
Those tags indicate the CMIS specification version that the server has to
support to use the feature.\n\n\nThroughout the code samples you will find
references to sections in the \nCMIS 1.1 specification\n; tags like \nSpec
1.5\n. We recommend that you have the specification document ready to hand.
\n\n\n\n\nUnder Development\n\n\nThis sample collection is under development.
Some areas are only sparely covered or not c
overed at all, yet.\nAlso some code samples lack a meaningful description. If
you want help, please see the \nabout page\n.\n\n\n\n\n\n\nApache
Chemistry\n\n\nApache Chemistry\n provides open source client and server
implementations of \nCMIS 1.0\n and \nCMIS 1.1\n for multiple programming
languages (Java, .Net, Python, PHP, Objective-C, JavaScript, \n). \n\n\n\n\nDo
you want to know more about CMIS and Apache Chemistry?\n\n\n\n\nThe book \nCMIS
and Apache Chemistry in Action\n is a comprehensive guide to the CMIS standard
and related ECM concepts. In it, you\nll tackle hands-on examples for building
applications on CMIS repositories from both the client and the server sides.
You\nll find working examples using the Apache Chemistry APIs for Java, Python,
C#, Objective-C, and PHP, but you can use the techniques you\nll learn in this
book to work with CMIS repositories using any language that can speak HTTP -
including JavaScript.\n\n\n\n\n\n\n\nOpenCMIS\n\n\nOpenCMIS\n is a CMIS cli
ent library and a CMIS server framework for Java. It also provides developer
tools such as the \nCMIS Workbench\n and the \nInMemory Repository\n. OpenCMIS
runs on servers, desktops, and Android.\n\n\nThe code samples in this
documentation cover the OpenCMIS client API. If you want to build a CMIS server
with OpenCMIS, refer to the \nOpenCMIS Server Development Guide\n.\n\n\nTo get
started with OpenCMIS, download the \nOpenCMIS client libraries\n or use Maven
or Gradle to get the client libraries.\n\n\nMaven\n\n\nReplace \n[OpenCMIS
version]\n with the latest version number, e.g. \n0.14.0\n.\n\n\ndependency\n\n
\ngroupId\norg.apache.chemistry.opencmis\n/groupId\n\n
\nartifactId\nchemistry-opencmis-client-impl\n/artifactId\n\n
\nversion\n[OpenCMIS version]\n/version\n\n\n/dependency\n\n\n\n\n\nFor
Android:\n\n\ndependency\n\n
\ngroupId\norg.apache.chemistry.opencmis\n/groupId\n\n
\nartifactId\nchemistry-opencmis-android-client\n/artifactId\n\n
\nversion\n[OpenCMIS v
ersion]\n/version\n\n\n/dependency\n\n\n\n\n\nGradle\n\n\nReplace \n[OpenCMIS
version]\n with the latest version number, e.g. \n0.14.0\n.\n\n\ncompile group:
'org.apache.chemistry.opencmis', name: 'chemistry-opencmis-client-impl',
version: '[OpenCMIS version]'\n\n\n\n\nFor Android:\n\n\ncompile group:
'org.apache.chemistry.opencmis', name: 'chemistry-opencmis-android-client',
version: '[OpenCMIS version]'\n\n\n\n\nPortCMIS\n\n\nPortCMIS\n is a CMIS
client library for .Net. It is a Portable Class Library that runs on servers,
desktops, and Windows Mobile.\n\n\nTo get started with PortCMIS, download the
\nPortCMIS client binaries\n. You have the choice of either plain DLLs or NUPGK
packages. It is also availabe on \nnuget\n:\n\n\nPM\n Install-Package PortCMIS
\n\n\n\n\nDotCMIS\n\n\nDotCMIS\n is the predecessor of \nPortCMIS\n.\nThe APIs
are very similar and most of the PortCMIS samples should also work with
DotCMIS.\n\n\nThe high-level differences between DotCMIS and PortCMIS are desc
ribed on \nthis page\n.\nFor new projects it is recommend to use PortCMIS.",
"title": "Home"
},
{
"location": "/index.html#apache-chemistry-cmis-code-samples",
- "text": "CMIS (Content Management Interoperability Services) is
an OASIS standard enabling information sharing between different Content
Management Systems. This is a collection of code samples for Apache
Chemistry OpenCMIS - a CMIS library for Java Apache Chemistry PortCMIS - a
CMIS library for.Net Under Development This sample collection is under
development. Some areas are only sparely covered or not covered at all,
yet.\nAlso some code samples lack a meaningful description. If you want help,
please see the about page .",
+ "text": "CMIS (Content Management Interoperability Services) is
an OASIS standard enabling information sharing between different Content
Management Systems. This is a collection of code samples for Apache
Chemistry OpenCMIS - a CMIS library for Java Apache Chemistry PortCMIS - a
CMIS library for .Net We assume that you have a rough understanding of CMIS.
This is not a CMIS introduction course. Many code samples are marked with
CMIS 1.0 or CMIS 1.1 . Those tags indicate the CMIS specification version
that the server has to support to use the feature. Throughout the code samples
you will find references to sections in the CMIS 1.1 specification ; tags like
Spec 1.5 . We recommend that you have the specification document ready to
hand. Under Development This sample collection is under development. Some
areas are only sparely covered or not covered at all, yet.\nAlso some code
samples lack a meaningful description. If you want help, please see the ab
out page .",
"title": "Apache Chemistry CMIS Code Samples"
},
{
@@ -272,7 +272,7 @@
},
{
"location": "/samples/retrieve-objects/index.html",
- "text": "Retrieving Objects\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nGetting the Root Folder\n\n\nAll repositories have to provide a root
folder. It\ns the entry point for \nbrowsing\n the repository content. The root
folder might be completely empty and useless for repositories that only support
\nunfiled\n objects.\n\n\nOpenCMIS (Java)\n\n\nFolder rootFolder =
session.getRootFolder();\n\n\n\n\nPortCMIS (C#)\n\n\nIFolder rootFolder =
Session.GetRootFolder();\n\n\n\n\nGetting Objects by ID\n\n\nAll objects in a
repository must have a unique object ID and can be retrieved by this ID. If the
user has no permissions to see the object, an \nobjectNotFound\n exception is
thrown.\n\n\nUse an \nOperation Context\n to define which details of the object
should be returned.\n\n\nOpenCMIS (Java)\n\n\nCmisObject cmisObject =
session.getObject(id);\n\nif (cmisObject instanceof Document) {\n Document
document = (Document) cmisObject;\n} else if (cmisObject instanceof Folder) {\n
Folder
folder = (Folder) cmisDocument;\n} else {\n ...\n}\n\n\n\n\nPortCMIS
(C#)\n\n\nICmisObject cmisObject = Session.GetObject(id);\n\nif (cmisObject is
IDocument) {\n IDocument document = cmisObject as IDocument;\n} else if
(cmisObject is IFolder) {\n IFolder folder = cmisDocument as IFolder;\n}
else {\n ...\n}\n\n\n\n\nGetting Objects by Path\n\n\nA \nfiled\n object has
one or more paths and can be retrieved by this path. If the user has no
permissions to see the object, an \nobjectNotFound\n exception is
thrown.\n\n\nMost repositories use the \ncmis:name\n property of the folders
and the object to assemble the path. But it is possible that the path segments
don\u2019t match the names.\n\n\nUse an \nOperation Context\n to define which
details of the object should be returned.\n\n\nOpenCMIS (Java)\n\n\nString path
= \n/User Homes/customer1/document.odt\n;\nCmisObject cmisObject =
session.getObjectByPath(path);\n\n// get the object ID\nString id =
cmisObject.getId();\n\n// we
know it is a filable object, we just retrieved it by path\nFileableCmisObject
fileableCmisObject = (FileableCmisObject) cmisObject;\n\n// get all paths,
there must be at least one\nList\nString\n paths =
fileableCmisObject.getPaths();\n\n// get all parent folders, there must be at
least one\nList\nFolder\n parents =
fileableCmisObject.getParents();\n\n\n\n\nPortCMIS (C#)\n\n\nstring path =
\n/User Homes/customer1/document.odt\n;\nICmisObject cmisObject =
Session.GetObjectByPath(path);\n\n// get the object ID\nstring id =
cmisObject.Id;\n\n// we know it is a filable object, we just retrieved it by
path\nIFileableCmisObject fileableCmisObject = cmisObject as
IFileableCmisObject;\n\n// get all paths, there must be at least
one\nIList\nstring\n paths = fileableCmisObject.Paths;\n\n// get all parent
folders, there must be at least one\nIList\nIFolder\n parents =
fileableCmisObject.Parents;\n\n\n\n\nGetting Folder Children\n\n\nThe page
about \nlists\n explains how paging works.\n\n\nUse
an \nOperation Context\n to define which details of the objects should be
returned.\n\n\nOpenCMIS (Java)\n\n\nFolder folder = ...\n\nfor (CmisObject
child: folder.getChildren()) {\n
System.out.println(child.getName());\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIFolder
folder = ...\n\nforeach (ICmisObject child in folder.GetChildren()) {\n
Console.WriteLine(child.Name);\n}\n\n\n\n\nUnderstanding the Object
Cache\n\n\nBy default, OpenCMIS and PortCMIS cache objects. That is, the object
returned by \ngetObject()\n or \ngetObjectbyPath()\n\ncan be stale. There are
multiple ways to deal with that.\n\n\nRefresh the object data that is returned
from \ngetObject()\n\n\nOpenCMIS (Java)\n\n\nCmisObject cmisObject =
session.getObject(id);\ncmisObject.refresh(); // contacts the repository and
refreshes the object\ncmisObject.refreshIfOld(60 * 1000); // ... or refreshes
the object only if the data is older than a minute\n\n\n\n\nPortCMIS
(C#)\n\n\nICmisObject cmisObject = Session.GetObject(id);\ncmi
sObject.Refresh(); // contacts the repository and refreshes the
object\ncmisObject.RefreshIfOld(60 * 1000); // ... or refreshes the object only
if the data is older than a minute\n\n\n\n\nTurn off the session cache
completely\n\n\nOpenCMIS
(Java)\n\n\nsession.getDefaultContext().setCacheEnabled(false);\n\n\n\n\nPortCMIS
(C#)\n\n\nSession.DefaultContext.CacheEnabled = false;\n\n\n\n\nTurn off
caching for this \ngetObject()\n call\n\n\nSee also the page about the
\nOperation Context\n.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
session.createOperationContext();\noc.setCacheEnabled(false);\n\nCmisObject
cmisObject = session.getObject(id, oc);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc =
session.CreateOperationContext();\noc.CacheEnabled = false;\n\nICmisObject
cmisObject = Session.GetObject(id, oc);\n\n\n\n\nClear the session
cache\n\n\nThis is not recommended!\n\n\nOpenCMIS
(Java)\n\n\nsession.clear();\n\n\n\n\nPortCMIS (C#)\n\n\nSession.Clear();",
+ "text": "Retrieving Objects\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nGetting the Root Folder\n\n\nAll repositories have to provide a root
folder. It\ns the entry point for \nbrowsing\n the repository content. The root
folder might be completely empty and useless for repositories that only support
\nunfiled\n objects.\n\n\nOpenCMIS (Java)\n\n\nFolder rootFolder =
session.getRootFolder();\n\n\n\n\nPortCMIS (C#)\n\n\nIFolder rootFolder =
Session.GetRootFolder();\n\n\n\n\nGetting Objects by ID\n\n\nAll objects in a
repository must have a unique object ID and can be retrieved by this ID. If the
user has no permissions to see the object, an \nobjectNotFound\n exception is
thrown.\n\n\nUse an \nOperation Context\n to define which details of the object
should be returned.\n\n\nOpenCMIS (Java)\n\n\nCmisObject cmisObject =
session.getObject(id);\n\nif (cmisObject instanceof Document) {\n Document
document = (Document) cmisObject;\n} else if (cmisObject instanceof Folder) {\n
Folder
folder = (Folder) cmisDocument;\n} else {\n ...\n}\n\n\n\n\nPortCMIS
(C#)\n\n\nICmisObject cmisObject = Session.GetObject(id);\n\nif (cmisObject is
IDocument) {\n IDocument document = cmisObject as IDocument;\n} else if
(cmisObject is IFolder) {\n IFolder folder = cmisDocument as IFolder;\n}
else {\n ...\n}\n\n\n\n\nGetting Objects by Path\n\n\nA \nfiled\n object has
one or more paths and can be retrieved by this path. If the user has no
permissions to see the object, an \nobjectNotFound\n exception is
thrown.\n\n\nMost repositories use the \ncmis:name\n property of the folders
and the object to assemble the path. But it is possible that the path segments
don\u2019t match the names.\n\n\nUse an \nOperation Context\n to define which
details of the object should be returned.\n\n\nOpenCMIS (Java)\n\n\nString path
= \n/User Homes/customer1/document.odt\n;\nCmisObject cmisObject =
session.getObjectByPath(path);\n\n// get the object ID\nString id =
cmisObject.getId();\n\n// we
know it is a filable object, we just retrieved it by path\nFileableCmisObject
fileableCmisObject = (FileableCmisObject) cmisObject;\n\n// get all paths,
there must be at least one\nList\nString\n paths =
fileableCmisObject.getPaths();\n\n// get all parent folders, there must be at
least one\nList\nFolder\n parents =
fileableCmisObject.getParents();\n\n\n\n\nPortCMIS (C#)\n\n\nstring path =
\n/User Homes/customer1/document.odt\n;\nICmisObject cmisObject =
Session.GetObjectByPath(path);\n\n// get the object ID\nstring id =
cmisObject.Id;\n\n// we know it is a filable object, we just retrieved it by
path\nIFileableCmisObject fileableCmisObject = cmisObject as
IFileableCmisObject;\n\n// get all paths, there must be at least
one\nIList\nstring\n paths = fileableCmisObject.Paths;\n\n// get all parent
folders, there must be at least one\nIList\nIFolder\n parents =
fileableCmisObject.Parents;\n\n\n\n\nGetting Folder Children\n\n\nThe page
about \nlists\n explains how paging works.\n\n\nUse
an \nOperation Context\n to define which details of the objects should be
returned.\n\n\nOpenCMIS (Java)\n\n\nFolder folder = ...\n\nfor (CmisObject
child: folder.getChildren()) {\n
System.out.println(child.getName());\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIFolder
folder = ...\n\nforeach (ICmisObject child in folder.GetChildren()) {\n
Console.WriteLine(child.Name);\n}\n\n\n\n\nUnderstanding the Object
Cache\n\n\nBy default, OpenCMIS and PortCMIS cache objects. That is, the object
returned by \ngetObject()\n or \ngetObjectbyPath()\n\ncan be stale. There are
multiple ways to deal with that.\n\n\nRefresh the object data that is returned
from \ngetObject()\n\n\nOpenCMIS (Java)\n\n\nCmisObject cmisObject =
session.getObject(id);\ncmisObject.refresh(); // contacts the repository and
refreshes the object\ncmisObject.refreshIfOld(60 * 1000); // ... or refreshes
the object only if the data is older than a minute\n\n\n\n\nPortCMIS
(C#)\n\n\nICmisObject cmisObject = Session.GetObject(id);\ncmi
sObject.Refresh(); // contacts the repository and refreshes the
object\ncmisObject.RefreshIfOld(60 * 1000); // ... or refreshes the object only
if the data is older than a minute\n\n\n\n\nTurn off the session cache
completely\n\n\nOpenCMIS
(Java)\n\n\nsession.getDefaultContext().setCacheEnabled(false);\n\n\n\n\nPortCMIS
(C#)\n\n\nSession.DefaultContext.CacheEnabled = false;\n\n\n\n\nTurn off
caching for this \ngetObject()\n call\n\n\nSee also the page about the
\nOperation Context\n.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
session.createOperationContext();\noc.setCacheEnabled(false);\n\nCmisObject
cmisObject = session.getObject(id, oc);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc =
Session.CreateOperationContext();\noc.CacheEnabled = false;\n\nICmisObject
cmisObject = Session.GetObject(id, oc);\n\n\n\n\nClear the session
cache\n\n\nThis is not recommended!\n\n\nOpenCMIS
(Java)\n\n\nsession.clear();\n\n\n\n\nPortCMIS (C#)\n\n\nSession.Clear();",
"title": "Retrieving Objects"
},
{
@@ -317,7 +317,7 @@
},
{
"location":
"/samples/retrieve-objects/index.html#turn-off-caching-for-this-getobject-call",
- "text": "See also the page about the Operation Context .
OpenCMIS (Java) OperationContext oc =
session.createOperationContext();\noc.setCacheEnabled(false);\n\nCmisObject
cmisObject = session.getObject(id, oc); PortCMIS (C#) IOperationContext oc =
session.CreateOperationContext();\noc.CacheEnabled = false;\n\nICmisObject
cmisObject = Session.GetObject(id, oc);",
+ "text": "See also the page about the Operation Context .
OpenCMIS (Java) OperationContext oc =
session.createOperationContext();\noc.setCacheEnabled(false);\n\nCmisObject
cmisObject = session.getObject(id, oc); PortCMIS (C#) IOperationContext oc =
Session.CreateOperationContext();\noc.CacheEnabled = false;\n\nICmisObject
cmisObject = Session.GetObject(id, oc);",
"title": "Turn off caching for this getObject() call"
},
{
@@ -467,7 +467,7 @@
},
{
"location": "/samples/content/index.html",
- "text": "Working with Content\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nSpec 2.1.4.2\n\n\nContent Streams\n\n\nContent Stream objects are used
to send and fetch content. They contain a file name, a \nMIME type\n, the
stream length, and the stream.\n\n\nIn some cases, the stream length is unknown
(\nnull\n). OpenCMIS and PortCMIS don\u2019t rely on it and your application
shouldn\nt either. \n\n\nYou can create content stream objects manually or
implement the interface yourself, but OpenCMIS and PortCMIS provide some
convenience methods for this.\n\n\nOpenCMIS (Java)\n\n\n// create a simple
ContentStream object\nContentStream cs1 =
session.getObjectFactory().createContentStream(filename, length, mimeType,
stream);\n\n// create a ContentStream object from a byte array\nContentStream
cs2 = ContentStreamUtils.createByteArrayContentStream(filename, bytes,
mimeType);\n\n// create a ContentStream object from a string\nContentStream cs3
= ContentStreamUtils.createTextContentStream(filena
me, content);\n\n// create a ContentStream object from file\nContentStream cs4
= ContentStreamUtils.createFileContentStream(file);\n\n\n\n\nPortCMIS
(C#)\n\n\n// create a simple IContentStream object\nIContentStream cs1 =
Session.ObjectFactory.CreateContentStream(filename, length, mimeType,
stream);\n\n// create a IContentStream object from a byte array\nIContentStream
cs2 = ContentStreamUtils.CreateByteArrayContentStream(filename, bytes,
mimeType);\n\n// create a IContentStream object from a string\nIContentStream
cs3 = ContentStreamUtils.CreateTextContentStream(filename,
content);\n\n\n\n\nMIME Types\n\n\nWhen you create a new document or update the
content of a document, you have to provide a MIME type.\nIf you don\nt know the
MIME type, use \napplication/octet-stream\n.\n\n\nOpenCMIS can guess the MIME
type based on the file extension.\nIf you need a more thorough MIME type
detection, have a look at \nApache Tika\n.\n\n\nOpenCMIS (Java)\n\n\nString
mimeType = MimeTypes.getMIMETy
pe(\ntxt\n); // MIME type for a .txt file\n\n\n\n\nFor .Net 4.5+ you can use
\nSystem.Web.MimeMapping.GetMimeMapping\n.\n\n\nPortCMIS (C#)\n\n\nstring
mimeType = MimeMapping.GetMimeMapping(\ntext.txt\n);\n\n\n\n\nGetting
Content\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nThe code snippets below show how to
get the content of document. If a document has no content,
\ngetContentStream()\n returns \nnull\n.\n\n\nOpenCMIS (Java)\n\n\nDocument
document = ...\nContentStream contentStream =
document.getContentStream();\nInputStream stream =
contentStream.getStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\nIContentStream contentStream = document.GetContentStream();\nStream stream
= contentStream.Stream;\n\n\n\n\nGetting Partial Content\n\n\nCMIS
1.0\n\n\nCMIS 1.1\n\n\nIt\ns also possible to get only a part of the
content.\n\n\nOpenCMIS (Java)\n\n\nDocument document = ...\n\n// skip the first
100 bytes\n// use null to start from the beginning\nBigInteger offset =
BigInteger.valueOf(100)
;\n\n// only read 200 bytes\n// use null to read to the end of the
stream\nBigInteger length = BigInteger.valueOf(200); \n\nContentStream
contentStream = document.getContentStream(offset, length);\nInputStream stream
= contentStream.getStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\n\n// skip the first 100 bytes\n// use null to start from the
beginning\nlong? offset = 100;\n\n// only read 200 bytes\n// use null to read
to the end of the stream\nlong? length = 200;\n\nIContentStream contentStream =
document.GetContentStream(offset, length);\nStream stream =
contentStream.Stream;\n\n\n\n\nUpdating Content\n\n\nOverwriting
Content\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nOpenCMIS (Java)\n\n\nDocument document
= ...\n\nContentStream contentStream =
...\n\ndocument.setContentStream(contentStream, true);\n\n\n\n\nPortCMIS
(C#)\n\n\nIDocument document = ...\n\nIContentStream contentStream =
...\n\ndocument.SetContentStream(contentStream, true);\n\n\n\n\nDeleting
Content\n\n\nCMIS 1
.0\n\n\nCMIS 1.1\n\n\n\n\nWarning\n\n\nSome repositories don\nt support
documents without content. Check the \nrepository capabilities\n if that\ns the
case or check the\n\nAllowable Actions\n of the document.\n\n\n\n\nOpenCMIS
(Java)\n\n\nDocument document =
...\ndocument.deleteContentStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument
document = ...\ndocument.DeleteContentStream();\n\n\n\n\nAppending
Content\n\n\nCMIS 1.1\n\n\n\n\nWarning\n\n\nNot all repositories support
appending content. It is not possible to discover wheter a repository supports
it or not.\nIf you append content be prepared to catch a \nnotSupported\n
exception. \n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document =
...\n\nContentStream contentStream = ...\nboolean isLastChunk = true; //
indicates that this is the last part of the content
\n\ndocument.appendContentStream(contentStream, isLastChunk);\n\n\n\n\nPortCMIS
(C#)\n\n\nIDocument document = ...\n\nIContentStream contentStream = ...\nbool
isLastChunk = true; //
indicates that this is the last part of the content
\n\ndocument.AppendContentStream(contentStream, isLastChunk);\n\n\n\n\nWorking
with Renditions\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nSpec 2.1.4.2\n\n\nRenditions
are alternative versions of a document. For example, a rendition could be a PDF
of an Office document. Thumbnails are a special kind of renditions and could
also exist for non-document objects.\n\nCMIS only supports server managed
renditions. A CMIS client cannot upload, modify, or delete a
rendition.\n\n\nGetting the List of Renditions\n\n\n\n\nNote\n\n\nThe list of
renditions is only available if it has been requested with an \nOperation
Context\n.\n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document = ...\n\nfor
(Rendition rendition: document.getRenditions()) {\n
System.out.println(rendition.getTitle() + \n: \n +
rendition.getStreamId());\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\n\nforeach (IRendition rendition in folder.Renditions) {\n
Console.WriteLine(ren
dition.Title + \n: \n + rendition.StreamId);\n}\n\n\n\n\nGetting Rendition
Content\n\n\nThe rendition content can be retrieved either for an Rendition
object (see above) or directly from the document with a stream
ID.\n\n\nOpenCMIS (Java)\n\n\nDocument document = ...\nRendition rendition =
...\n\nContentStream cs1 =
document.getContentStream(rendition.getStreamId());\n\nContentStream cs2 =
rendition.getContentStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\nIRendition rendition = ...\n\nIContentStream cs1 =
document.GetContentStream(rendition.StreamId);\n\nIContentStream cs2 =
rendition.GetContentStream();",
+ "text": "Working with Content\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nSpec 2.1.4.2\n\n\nContent Streams\n\n\nContent Stream objects are used
to send and fetch content. They contain a file name, a \nMIME type\n, the
stream length, and the stream.\n\n\nIn some cases, the stream length is unknown
(\nnull\n). OpenCMIS and PortCMIS don\u2019t rely on it and your application
shouldn\nt either. \n\n\nYou can create content stream objects manually or
implement the interface yourself, but OpenCMIS and PortCMIS provide some
convenience methods for this.\n\n\nOpenCMIS (Java)\n\n\n// create a simple
ContentStream object\nContentStream cs1 =
session.getObjectFactory().createContentStream(filename, length, mimeType,
stream);\n\n// create a ContentStream object from a byte array\nContentStream
cs2 = ContentStreamUtils.createByteArrayContentStream(filename, bytes,
mimeType);\n\n// create a ContentStream object from a string\nContentStream cs3
= ContentStreamUtils.createTextContentStream(filena
me, content);\n\n// create a ContentStream object from file\nContentStream cs4
= ContentStreamUtils.createFileContentStream(file);\n\n\n\n\nPortCMIS
(C#)\n\n\n// create a simple IContentStream object\nIContentStream cs1 =
Session.ObjectFactory.CreateContentStream(filename, length, mimeType,
stream);\n\n// create a IContentStream object from a byte array\nIContentStream
cs2 = ContentStreamUtils.CreateByteArrayContentStream(filename, bytes,
mimeType);\n\n// create a IContentStream object from a string\nIContentStream
cs3 = ContentStreamUtils.CreateTextContentStream(filename,
content);\n\n\n\n\nMIME Types\n\n\nWhen you create a new document or update the
content of a document, you have to provide a MIME type.\nIf you don\nt know the
MIME type, use \napplication/octet-stream\n.\n\n\nOpenCMIS can guess the MIME
type based on the file extension.\nIf you need a more thorough MIME type
detection, have a look at \nApache Tika\n.\n\n\nOpenCMIS (Java)\n\n\nString
mimeType = MimeTypes.getMIMETy
pe(\ntxt\n); // MIME type for a .txt file\n\n\n\n\nFor .Net 4.5+ you can use
\nSystem.Web.MimeMapping.GetMimeMapping\n.\n\n\nPortCMIS (C#)\n\n\nstring
mimeType = MimeMapping.GetMimeMapping(\ntext.txt\n);\n\n\n\n\nGetting
Content\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nThe code snippets below show how to
get the content of document.\n\n\n\n\nNote\n\n\nCMIS differentiates between
documents with no content and documents with a content of 0 bytes.\n\nIf a
document has no content, \ngetContentStream()\n returns \nnull\n. If a document
has a 0 byte content, \ngetContentStream()\n returns a content stream object
with an empty stream.\n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document =
...\nContentStream contentStream = document.getContentStream();\nInputStream
stream = contentStream.getStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument
document = ...\nIContentStream contentStream =
document.GetContentStream();\nStream stream =
contentStream.Stream;\n\n\n\n\nGetting Partial Content\n\n\nCMIS 1.0\n\n\nC
MIS 1.1\n\n\nIt\ns also possible to get only a part of the
content.\n\n\nOpenCMIS (Java)\n\n\nDocument document = ...\n\n// skip the first
100 bytes\n// use null to start from the beginning\nBigInteger offset =
BigInteger.valueOf(100);\n\n// only read 200 bytes\n// use null to read to the
end of the stream\nBigInteger length = BigInteger.valueOf(200);
\n\nContentStream contentStream = document.getContentStream(offset,
length);\nInputStream stream = contentStream.getStream();\n\n\n\n\nPortCMIS
(C#)\n\n\nIDocument document = ...\n\n// skip the first 100 bytes\n// use null
to start from the beginning\nlong? offset = 100;\n\n// only read 200 bytes\n//
use null to read to the end of the stream\nlong? length =
200;\n\nIContentStream contentStream = document.GetContentStream(offset,
length);\nStream stream = contentStream.Stream;\n\n\n\n\nUpdating
Content\n\n\nOverwriting Content\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nOpenCMIS
(Java)\n\n\nDocument document = ...\n\nContentStream contentStream =
...\n\ndocument.setContentStream(contentStream, true);\n\n\n\n\nPortCMIS
(C#)\n\n\nIDocument document = ...\n\nIContentStream contentStream =
...\n\ndocument.SetContentStream(contentStream, true);\n\n\n\n\nDeleting
Content\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\n\n\nWarning\n\n\nSome repositories
don\nt support documents without content. Check the \nrepository capabilities\n
if that\ns the case or check the\n\nAllowable Actions\n of the
document.\n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document =
...\ndocument.deleteContentStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument
document = ...\ndocument.DeleteContentStream();\n\n\n\n\nAppending
Content\n\n\nCMIS 1.1\n\n\n\n\nWarning\n\n\nNot all repositories support
appending content. It is not possible to discover wheter a repository supports
it or not.\nIf you append content be prepared to catch a \nnotSupported\n
exception. \n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document =
...\n\nContentStream contentStream = ...\nboolean isLastChunk = true; //
indicates that this is the last part of the content
\n\ndocument.appendContentStream(contentStream, isLastChunk);\n\n\n\n\nPortCMIS
(C#)\n\n\nIDocument document = ...\n\nIContentStream contentStream = ...\nbool
isLastChunk = true; // indicates that this is the last part of the content
\n\ndocument.AppendContentStream(contentStream, isLastChunk);\n\n\n\n\nWorking
with Renditions\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nSpec 2.1.4.2\n\n\nRenditions
are alternative versions of a document. For example, a rendition could be a PDF
of an Office document. Thumbnails are a special kind of renditions and could
also exist for non-document objects.\n\nCMIS only supports server managed
renditions. A CMIS client cannot upload, modify, or delete a
rendition.\n\n\nGetting the List of Renditions\n\n\n\n\nNote\n\n\nThe list of
renditions is only available if it has been requested with an \nOperation
Context\n.\n\n\n\n\nOpenCMIS (Java)\n\n\nDocument document = ...\n\nfor
(Rendition rendition: document.getRen
ditions()) {\n System.out.println(rendition.getTitle() + \n: \n +
rendition.getStreamId());\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\n\nforeach (IRendition rendition in folder.Renditions) {\n
Console.WriteLine(rendition.Title + \n: \n +
rendition.StreamId);\n}\n\n\n\n\nGetting Rendition Content\n\n\nThe rendition
content can be retrieved either for an Rendition object (see above) or directly
from the document with a stream ID.\n\n\nOpenCMIS (Java)\n\n\nDocument document
= ...\nRendition rendition = ...\n\nContentStream cs1 =
document.getContentStream(rendition.getStreamId());\n\nContentStream cs2 =
rendition.getContentStream();\n\n\n\n\nPortCMIS (C#)\n\n\nIDocument document =
...\nIRendition rendition = ...\n\nIContentStream cs1 =
document.GetContentStream(rendition.StreamId);\n\nIContentStream cs2 =
rendition.GetContentStream();",
"title": "Working with Content"
},
{
@@ -487,7 +487,7 @@
},
{
"location": "/samples/content/index.html#getting-content",
- "text": "CMIS 1.0 CMIS 1.1 The code snippets below show how to
get the content of document. If a document has no content, getContentStream()
returns null . OpenCMIS (Java) Document document = ...\nContentStream
contentStream = document.getContentStream();\nInputStream stream =
contentStream.getStream(); PortCMIS (C#) IDocument document =
...\nIContentStream contentStream = document.GetContentStream();\nStream stream
= contentStream.Stream;",
+ "text": "CMIS 1.0 CMIS 1.1 The code snippets below show how to
get the content of document. Note CMIS differentiates between documents with
no content and documents with a content of 0 bytes. \nIf a document has no
content, getContentStream() returns null . If a document has a 0 byte
content, getContentStream() returns a content stream object with an empty
stream. OpenCMIS (Java) Document document = ...\nContentStream contentStream
= document.getContentStream();\nInputStream stream = contentStream.getStream();
PortCMIS (C#) IDocument document = ...\nIContentStream contentStream =
document.GetContentStream();\nStream stream = contentStream.Stream;",
"title": "Getting Content"
},
{
@@ -592,7 +592,7 @@
},
{
"location": "/samples/operation-context/index.html",
- "text": "Understanding the Operation Context\n\n\nThe amount of
metadata and associated information retrieved during an OpenCMIS or PortCMIS
operation could be large, so certain methods return a sensible subset of the
information by default, and provide additional methods that take an
OperationContext. An OperationContext allows you to tune the amount of
information returned by setting property filters, rendition filters, or by
setting flags to include path segments, ACLs, Allowable Actions, Policies, and
Relationships. The OperationContext is also used to control paging and caching
in an operation.\n\n\nProperty Filter\n\n\nSpec 2.2.1.2.1\n\n\nThe property
filter defines which properties the repository must return. Only select the
properties you really need to keep the transferred data as small as possible.
The repository may return more properties than specified.\n\n\n\n\nQuery
Names\n\n\nThe property filter is a collection of query names, not property
IDs. The query n
ames and property IDs of all properties defined in the CMIS specifation are
same and therefore interchangeable. That might not be the case for custom
types. \n\n\n\n\n\n\nMinimal Property Filter\n\n\nOpenCMIS and PortCMIS need at
least the properties \ncmis:objectId\n, \ncmis:baseTypeId\n, and
\ncmis:objectTypeId\n to create objects.\nThe default operation context
implementation adds these properties automatically if they are missing in the
property filter.\n\n\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setFilterString(\ncmis:objectId,cmis:name,cmis:createdBy\n);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.FilterString =
\ncmis:objectId,cmis:name,cmis:createdBy\n;\n\n\n\n\nAllowable
Actions\n\n\nSpec 2.2.1.2.6\n\n\nCalculating the Allowable Actions of an object
can be very expensive for a repository. Don\nt request them if you don\nt need
them.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setIncludeAllowableActions(false); // don't request Allo
wable Actions\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludeAllowableActions = false; // don't request Allowable
Actions\n\n\n\n\nACLs\n\n\nSpec 2.2.1.2.5\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setIncludeAcls(true); // request
ACLs\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc = ...\noc.IncludeAcls =
true; // request ACLs\n\n\n\n\nRelationships\n\n\nSpec 2.2.1.2.2\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc =
...\noc.setIncludeRelationships(IncludeRelationships.BOTH); // request source
and target relationships\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludeRelationships = IncludeRelationships.Both; // request source and
target relationships\n\n\n\n\nPolicies\n\n\nSpec 2.2.1.2.3\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setIncludePolicies(true); // request
policies\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludePolicies = true; // request policies\n\n\n\n\nRendition
Filter\n\n\nSpec 2.2.1.2.
4\n\n\nThe rendition filter defines which rendition details should be returned
by the repository. This filter is a comma separated list of rendition kinds
(e.g. \ncmis:thumbnail\n) and MIME types. \n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc =
...\noc.setRenditionFilterString(\ncmis:thumbnail,image/*\n);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.RenditionFilterString =
\ncmis:thumbnail,image/*\n;\n\n\n\n\nRendition filer examples:\n\n\n\n\n*\n
(include all renditions)\n\n\ncmis:thumbnail\n (include only
thumbnails)\n\n\nimage/*\n (include all image
renditions)\n\n\napplication/pdf,application/x-shockwave-flash\n (include web
ready renditions)\n\n\ncmis:none\n (exclude all renditions)\n\n\n\n\nOrder
By\n\n\nSpec 2.2.1.2.7\n\n\nThe list of objects returned by \ngetChildren\n,
\ngetCheckedOutDocs\n, and \nqueryObjects\n can be ordered. This is a comma
separated list of query names, followed by an optional ascending modifier
\nASC\n or descending modifier \nDESC\n for
each query name. If the modifier is not stated, \nASC\n is
assumed.\n\n\n\n\nQuery Names\n\n\nSimilar to the property filter this is a
collection of query names, not property IDs.\n\n\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setOrderBy(\ncmis:createdBy
DESC,cmis:name ASC\n);\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.OrderBy(\ncmis:createdBy DESC,cmis:name
ASC\n);\n\n\n\n\nCaching\n\n\nAll objects retrieved by \ngetObject\n and
\ngetObjectByPath\n are cached by default. If caching is turned off by an
Operation Context, objects are not looked up in the cache and are not put into
the cache. The methods getObject and getObjectByPath make a round-trip to the
repository and get up-to-date data.\n\n\nSee also the section about the
\nobject cache\n.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setCacheEnabled(false); // no caching please\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.CacheEnabled = false; // no caching
please\n\n\n\n\n
Creating Operation Context Objects\n\n\nOpenCMIS (Java)\n\n\n// create the
default operation context\nOperationContext oc1 =
session.createOperationContext();\n\n// create an operation context that
selects nothing except the provided properties\nOperationContext oc2 =
OperationContextUtils.createMinimumOperationContext(\ncmis:objectId\n,
\ncmis:name\n, \ncmis:createdBy\n);\n\n// create an operation context that
selects everything\nOperationContext oc3 =
OperationContextUtils.createMaximumOperationContext();\n\n\n\n\nPortCMIS
(C#)\n\n\n// create the default operation context\nIOperationContext oc1 =
Session.CreateOperationContext();\n\n// create an operation context that
selects nothing except the provided properties\nIOperationContext oc2 =
OperationContextUtils.CreateMinimumOperationContext(\ncmis:objectId\n,
\ncmis:name\n, \ncmis:createdBy\n);\n\n// create an operation context that
selects everything\nIOperationContext oc3 =
OperationContextUtils.CreateMaximumOperationContext();",
+ "text": "Understanding the Operation Context\n\n\nThe amount of
metadata and associated information retrieved during an OpenCMIS or PortCMIS
operation could be large, so certain methods return a sensible subset of the
information by default, and provide additional methods that take an
OperationContext. An OperationContext allows you to tune the amount of
information returned by setting property filters, rendition filters, or by
setting flags to include path segments, ACLs, Allowable Actions, Policies, and
Relationships. The OperationContext is also used to control paging and caching
in an operation.\n\n\nProperty Filter\n\n\nSpec 2.2.1.2.1\n\n\nThe property
filter defines which properties the repository must return. Only select the
properties you really need to keep the transferred data as small as possible.
The repository may return more properties than specified.\n\n\n\n\nQuery
Names\n\n\nThe property filter is a collection of query names, not property
IDs. The query n
ames and property IDs of all properties defined in the CMIS specifation are
same and therefore interchangeable. That might not be the case for custom
types. \n\n\n\n\n\n\nMinimal Property Filter\n\n\nOpenCMIS and PortCMIS need at
least the properties \ncmis:objectId\n, \ncmis:baseTypeId\n, and
\ncmis:objectTypeId\n to create objects.\nThe default operation context
implementation adds these properties automatically if they are missing in the
property filter.\n\n\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setFilterString(\ncmis:objectId,cmis:name,cmis:createdBy\n);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.FilterString =
\ncmis:objectId,cmis:name,cmis:createdBy\n;\n\n\n\n\nAllowable
Actions\n\n\nSpec 2.2.1.2.6\n\n\nCalculating the Allowable Actions of an object
can be very expensive for a repository. Don\nt request them if you don\nt need
them.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setIncludeAllowableActions(false); // don't request Allo
wable Actions\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludeAllowableActions = false; // don't request Allowable
Actions\n\n\n\n\nACLs\n\n\nSpec 2.2.1.2.5\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setIncludeAcls(true); // request
ACLs\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc = ...\noc.IncludeAcls =
true; // request ACLs\n\n\n\n\nRelationships\n\n\nSpec 2.2.1.2.2\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc =
...\noc.setIncludeRelationships(IncludeRelationships.BOTH); // request source
and target relationships\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludeRelationships = IncludeRelationships.Both; // request source and
target relationships\n\n\n\n\nPolicies\n\n\nSpec 2.2.1.2.3\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setIncludePolicies(true); // request
policies\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.IncludePolicies = true; // request policies\n\n\n\n\nRendition
Filter\n\n\nSpec 2.2.1.2.
4\n\n\nThe rendition filter defines which rendition details should be returned
by the repository. This filter is a comma separated list of rendition kinds
(e.g. \ncmis:thumbnail\n) and MIME types. \n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc =
...\noc.setRenditionFilterString(\ncmis:thumbnail,image/*\n);\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.RenditionFilterString =
\ncmis:thumbnail,image/*\n;\n\n\n\n\nRendition filer examples:\n\n\n\n\n*\n
(include all renditions)\n\n\ncmis:thumbnail\n (include only
thumbnails)\n\n\nimage/*\n (include all image
renditions)\n\n\napplication/pdf,application/x-shockwave-flash\n (include web
ready renditions)\n\n\ncmis:none\n (exclude all renditions)\n\n\n\n\nOrder
By\n\n\nSpec 2.2.1.2.7\n\n\nThe list of objects returned by \ngetChildren\n,
\ngetCheckedOutDocs\n, and \nqueryObjects\n can be ordered. This is a comma
separated list of query names, followed by an optional ascending modifier
\nASC\n or descending modifier \nDESC\n for
each query name. If the modifier is not stated, \nASC\n is
assumed.\n\n\n\n\nQuery Names\n\n\nSimilar to the property filter this is a
collection of query names, not property IDs.\n\n\n\n\nOpenCMIS
(Java)\n\n\nOperationContext oc = ...\noc.setOrderBy(\ncmis:createdBy
DESC,cmis:name ASC\n);\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\noc.OrderBy(\ncmis:createdBy DESC,cmis:name
ASC\n);\n\n\n\n\nCaching\n\n\nAll objects retrieved by \ngetObject\n and
\ngetObjectByPath\n are cached by default. If caching is turned off by an
Operation Context, objects are not looked up in the cache and are not put into
the cache. The methods getObject and getObjectByPath make a round-trip to the
repository and get up-to-date data.\n\n\nSee also the section about the
\nobject cache\n.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc =
...\noc.setCacheEnabled(false); // no caching please\n\n\n\n\nPortCMIS
(C#)\n\n\nIOperationContext oc = ...\noc.CacheEnabled = false; // no caching
please\n\n\n\n\n
Creating Operation Context Objects\n\n\nOpenCMIS (Java)\n\n\n// create the
default operation context\nOperationContext oc1 =
session.createOperationContext();\n\n// create an operation context that
selects nothing except the provided properties\nOperationContext oc2 =
OperationContextUtils.createMinimumOperationContext(\ncmis:objectId\n,
\ncmis:name\n, \ncmis:createdBy\n);\n\n// create an operation context that
selects everything\nOperationContext oc3 =
OperationContextUtils.createMaximumOperationContext();\n\n\n\n\nPortCMIS
(C#)\n\n\n// create the default operation context\nIOperationContext oc1 =
Session.CreateOperationContext();\n\n// create an operation context that
selects nothing except the provided properties\nIOperationContext oc2 =
OperationContextUtils.CreateMinimumOperationContext(\ncmis:objectId\n,
\ncmis:name\n, \ncmis:createdBy\n);\n\n// create an operation context that
selects everything\nIOperationContext oc3 =
OperationContextUtils.CreateMaximumOperationContext();\n
\n\n\n\nUsing an Operation Context\n\n\nMany methods that retrieve objects or
data accept an Operation Context object as an additional parameter.\nIf no
Operation Context object is provided, a default Operation Context object
defines what should be requested.\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc
= ...\n\nCmisObject cmisObject1 = session.getObject(id, oc);\nCmisObject
cmisObject2 = session.getObjectByPath(path, oc);\nItemIterable\nCmisObject\n
children = folder.getChildren(oc);\nList\nDocument\n versions =
doc.getAllVersions(oc);\n\n\n\n\nPortCMIS (C#)\n\n\nIOperationContext oc =
...\n\nICmisObject cmisObject1 = session.GetObject(id, oc);\nICmisObject
cmisObject2 = session.GetObjectByPath(path,
oc);\nIItemEnumerable\nICmisObject\n children =
folder.GetChildren(oc);\nIList\nIDocument\n versions =
doc.GetAllVersions(oc);",
"title": "Understanding the Operation Context"
},
{
@@ -646,8 +646,13 @@
"title": "Creating Operation Context Objects"
},
{
+ "location":
"/samples/operation-context/index.html#using-an-operation-context",
+ "text": "Many methods that retrieve objects or data accept an
Operation Context object as an additional parameter.\nIf no Operation Context
object is provided, a default Operation Context object defines what should be
requested. OpenCMIS (Java) OperationContext oc = ...\n\nCmisObject
cmisObject1 = session.getObject(id, oc);\nCmisObject cmisObject2 =
session.getObjectByPath(path, oc);\nItemIterable CmisObject children =
folder.getChildren(oc);\nList Document versions = doc.getAllVersions(oc);
PortCMIS (C#) IOperationContext oc = ...\n\nICmisObject cmisObject1 =
session.GetObject(id, oc);\nICmisObject cmisObject2 =
session.GetObjectByPath(path, oc);\nIItemEnumerable ICmisObject children =
folder.GetChildren(oc);\nIList IDocument versions = doc.GetAllVersions(oc);",
+ "title": "Using an Operation Context"
+ },
+ {
"location": "/samples/lists/index.html",
- "text": "Working with Lists, Paging and Skipping\n\n\nIterating
over a List\n\n\nOpenCMIS (Java)\n\n\nItemIterable\nSomething\n somethingList =
...\n\nfor (Something something : somethingList) {\n
...\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIItemEnumerable\nSomething\n somethingList =
...\n\nforeach (Something something in somethingList) {\n
...\n}\n\n\n\n\nPaging and Skipping\n\n\nOpenCMIS
(Java)\n\n\nItemIterable\nSomething\n somethingList = ...\n\n// get a page of 5
items\nItemIterable\nSomething\n firstFive = somethingList.getPage(5);\n\n//
get a list starting with the 10th item\nItemIterable\nSomething\n skipTen =
somethingList.skipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nItemIterable\nSomething\n skipTen =
somethingList.skipTo(100).getPage(20);\n\n\n\n\nPortCMIS
(C#)\n\n\nIItemEnumerable\nSomething\n somethingList = ...\n\n// get a page of
5 items\nIItemEnumerable\nSomething\n firstFive =
somethingList.GetPage(5);\n\n// get
a list starting with the 10th item\nIItemEnumerable\nSomething\n skipTen =
somethingList.SkipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nIItemEnumerable\nSomething\n skipTen =
somethingList.SkipTo(100).GetPage(20);",
+ "text": "Working with Lists, Paging and Skipping\n\n\nIterating
over a List\n\n\nOpenCMIS (Java)\n\n\nItemIterable\nSomething\n somethingList =
...\n\nfor (Something something : somethingList) {\n
...\n}\n\n\n\n\nPortCMIS (C#)\n\n\nIItemEnumerable\nSomething\n somethingList =
...\n\nforeach (Something something in somethingList) {\n
...\n}\n\n\n\n\nPaging and Skipping\n\n\nOpenCMIS
(Java)\n\n\nItemIterable\nSomething\n somethingList = ...\n\n// get a page of 5
items\nItemIterable\nSomething\n firstFive = somethingList.getPage(5);\n\n//
get a list starting with the 10th item\nItemIterable\nSomething\n skipTen =
somethingList.skipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nItemIterable\nSomething\n skipAndPage =
somethingList.skipTo(100).getPage(20);\n\n\n\n\nPortCMIS
(C#)\n\n\nIItemEnumerable\nSomething\n somethingList = ...\n\n// get a page of
5 items\nIItemEnumerable\nSomething\n firstFive =
somethingList.GetPage(5);\n\n//
get a list starting with the 10th item\nIItemEnumerable\nSomething\n skipTen =
somethingList.SkipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nIItemEnumerable\nSomething\n skipAndPage =
somethingList.SkipTo(100).GetPage(20);",
"title": "Working with Lists, Paging and Skipping"
},
{
@@ -662,7 +667,7 @@
},
{
"location": "/samples/lists/index.html#paging-and-skipping",
- "text": "OpenCMIS (Java) ItemIterable Something somethingList =
...\n\n// get a page of 5 items\nItemIterable Something firstFive =
somethingList.getPage(5);\n\n// get a list starting with the 10th
item\nItemIterable Something skipTen = somethingList.skipTo(10);\n\n// get a
page of 20 items starting at the 100th item of the orignal list\nItemIterable
Something skipTen = somethingList.skipTo(100).getPage(20); PortCMIS (C#)
IItemEnumerable Something somethingList = ...\n\n// get a page of 5
items\nIItemEnumerable Something firstFive = somethingList.GetPage(5);\n\n//
get a list starting with the 10th item\nIItemEnumerable Something skipTen =
somethingList.SkipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nIItemEnumerable Something skipTen =
somethingList.SkipTo(100).GetPage(20);",
+ "text": "OpenCMIS (Java) ItemIterable Something somethingList =
...\n\n// get a page of 5 items\nItemIterable Something firstFive =
somethingList.getPage(5);\n\n// get a list starting with the 10th
item\nItemIterable Something skipTen = somethingList.skipTo(10);\n\n// get a
page of 20 items starting at the 100th item of the orignal list\nItemIterable
Something skipAndPage = somethingList.skipTo(100).getPage(20); PortCMIS (C#)
IItemEnumerable Something somethingList = ...\n\n// get a page of 5
items\nIItemEnumerable Something firstFive = somethingList.GetPage(5);\n\n//
get a list starting with the 10th item\nIItemEnumerable Something skipTen =
somethingList.SkipTo(10);\n\n// get a page of 20 items starting at the 100th
item of the orignal list\nIItemEnumerable Something skipAndPage =
somethingList.SkipTo(100).GetPage(20);",
"title": "Paging and Skipping"
},
{
@@ -677,7 +682,7 @@
},
{
"location": "/samples/queries/index.html",
- "text": "Executing Queries\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nSpec
2.1.14\n\n\nOpenCMIS (Java)\n\n\nItemIterable\nQueryResult\n results =
session.query(\nSELECT * FROM cmis:document\n, false);\n\nfor(QueryResult hit:
results) { \n for(PropertyData\n?\n property: hit.getProperties()) {\n\n
String queryName = property.getQueryName();\n Object value =
property.getFirstValue();\n\n System.out.println(queryName + \n: \n +
value);\n }\n
System.out.println(\n--------------------------------------\n);\n}\n\n\n\n\nQuerying
Objects\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc = ...\n\n// find all
folders starting with 'a' or 'A'\nItemIterable\nCmisObject\n results =\n
session.queryObjects(\ncmis:folder\n, \ncmis:name LIKE 'a%' OR cmis:name LIKE
'A%'\n, false, oc);\n\nfor (CmisObject cmisObject : results) {\n Folder
folder = (Folder) cmisObject; // it can only be a folder\n
System.out.println(folder.getName());\n}\n\n\n\n\nUsing a Query Statem
ent\n\n\nQuery statements are very similar to \nprepared
statements\n.\n\n\nOpenCMIS (Java)\n\n\nCalendar cal = ...\nFolder folder =
...\n\nQueryStatement qs = session.createQueryStatement(\nSELECT ?, ? FROM ?
WHERE ? \n TIMESTAMP ? AND IN_FOLDER(?) OR ? IN (?)\n);\n\nqs.setProperty(1,
\ncmis:document\n, \ncmis:name\n);\nqs.setProperty(2, \ncmis:document\n,
\ncmis:objectId\n);\nqs.setType(3, \ncmis:document\n);\n\nqs.setProperty(4,
\ncmis:document\n, \ncmis:creationDate\n);\nqs.setDateTime(5,
cal);\n\nqs.setId(6, folder);\n\nqs.setProperty(7, \ncmis:document\n,
\ncmis:createdBy\n);\nqs.setString(8, \nbob\n, \ntom\n, \nlisa\n); \n\nString
statement = qs.toQueryString();\n\nItemIterable\nQueryResult\n results =
statement.query(false);",
+ "text": "Executing Queries\n\n\nCMIS 1.0\n\n\nCMIS 1.1\n\n\nSpec
2.1.14\n\n\nOpenCMIS (Java)\n\n\nItemIterable\nQueryResult\n results =
session.query(\nSELECT * FROM cmis:document\n, false);\n\nfor(QueryResult hit:
results) { \n for(PropertyData\n?\n property: hit.getProperties()) {\n\n
String queryName = property.getQueryName();\n Object value =
property.getFirstValue();\n\n System.out.println(queryName + \n: \n +
value);\n }\n
System.out.println(\n--------------------------------------\n);\n}\n\n\n\n\nQuerying
Objects\n\n\nOpenCMIS (Java)\n\n\nOperationContext oc = ...\n\n// find all
folders starting with 'a' or 'A'\nItemIterable\nCmisObject\n results =\n
session.queryObjects(\ncmis:folder\n, \ncmis:name LIKE 'a%' OR cmis:name LIKE
'A%'\n, false, oc);\n\nfor (CmisObject cmisObject : results) {\n Folder
folder = (Folder) cmisObject; // it can only be a folder\n
System.out.println(folder.getName());\n}\n\n\n\n\nUsing a Query Statem
ent\n\n\nQuery statements are very similar to \nprepared
statements\n.\n\n\nOpenCMIS (Java)\n\n\nCalendar cal = ...\nFolder folder =
...\n\nQueryStatement qs = session.createQueryStatement(\nSELECT ?, ? FROM ?
WHERE ? \n TIMESTAMP ? AND IN_FOLDER(?) OR ? IN (?)\n);\n\nqs.setProperty(1,
\ncmis:document\n, \ncmis:name\n);\nqs.setProperty(2, \ncmis:document\n,
\ncmis:objectId\n);\nqs.setType(3, \ncmis:document\n);\n\nqs.setProperty(4,
\ncmis:document\n, \ncmis:creationDate\n);\nqs.setDateTime(5,
cal);\n\nqs.setId(6, folder);\n\nqs.setProperty(7, \ncmis:document\n,
\ncmis:createdBy\n);\nqs.setString(8, \nbob\n, \ntom\n, \nlisa\n); \n\n// get
the compiled query statement\nString statement = qs.toQueryString();\n\n// ...
or execute the query directly\nItemIterable\nQueryResult\n results =
qs.query(false);",
"title": "Executing Queries"
},
{
@@ -692,7 +697,7 @@
},
{
"location": "/samples/queries/index.html#using-a-query-statement",
- "text": "Query statements are very similar to prepared statements
. OpenCMIS (Java) Calendar cal = ...\nFolder folder = ...\n\nQueryStatement
qs = session.createQueryStatement( SELECT ?, ? FROM ? WHERE ? TIMESTAMP ? AND
IN_FOLDER(?) OR ? IN (?) );\n\nqs.setProperty(1, cmis:document , cmis:name
);\nqs.setProperty(2, cmis:document , cmis:objectId );\nqs.setType(3,
cmis:document );\n\nqs.setProperty(4, cmis:document , cmis:creationDate
);\nqs.setDateTime(5, cal);\n\nqs.setId(6, folder);\n\nqs.setProperty(7,
cmis:document , cmis:createdBy );\nqs.setString(8, bob , tom , lisa );
\n\nString statement = qs.toQueryString();\n\nItemIterable QueryResult results
= statement.query(false);",
+ "text": "Query statements are very similar to prepared statements
. OpenCMIS (Java) Calendar cal = ...\nFolder folder = ...\n\nQueryStatement
qs = session.createQueryStatement( SELECT ?, ? FROM ? WHERE ? TIMESTAMP ? AND
IN_FOLDER(?) OR ? IN (?) );\n\nqs.setProperty(1, cmis:document , cmis:name
);\nqs.setProperty(2, cmis:document , cmis:objectId );\nqs.setType(3,
cmis:document );\n\nqs.setProperty(4, cmis:document , cmis:creationDate
);\nqs.setDateTime(5, cal);\n\nqs.setId(6, folder);\n\nqs.setProperty(7,
cmis:document , cmis:createdBy );\nqs.setString(8, bob , tom , lisa );
\n\n// get the compiled query statement\nString statement =
qs.toQueryString();\n\n// ... or execute the query directly\nItemIterable
QueryResult results = qs.query(false);",
"title": "Using a Query Statement"
},
{
@@ -707,12 +712,12 @@
},
{
"location": "/samples/allowable-actions/index.html",
- "text": "Checking Allowable Actions\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nOpenCMIS (Java)\n\n\nCmisObject cmisObject = ...\n\nif
(cmisObject.hasAllowableAction(Action.CAN_DELETE_OBJECT)) {\n // do
it\n}\n\n\n\n\nPortCMIS (C#)\n\n\nICmisObject cmisObject = ...\n\nif
(cmisObject.HasAllowableAction(PortCMIS.Enums.Action.CanDeleteObject)) {\n
// do it\n}",
+ "text": "Checking Allowable Actions\n\n\nCMIS 1.0\n\n\nCMIS
1.1\n\n\nAllowable Actions let clients check if the current user is allowed to
perform an action. Clients can and should use this, for example, to disable or
remove buttons, menu items, or links that wouldn\nt work for the current
user.\n\n\n\n\nNote\n\n\nCalculating the Allowable Actions can be an expensive
operation for some CMIS repositories. The performance can suffer noticeably if
many objects have to be returned, for example by \ngetChildren()\n. Only
request the Allowable Actions if you really need them. Use an \nOperation
Context\n to turn Allowable Actions on or off.\n\n\n\n\nOpenCMIS
(Java)\n\n\nCmisObject cmisObject = ...\n\nif
(cmisObject.hasAllowableAction(Action.CAN_DELETE_OBJECT)) {\n // do
it\n}\n\n\n\n\nPortCMIS (C#)\n\n\nICmisObject cmisObject = ...\n\nif
(cmisObject.HasAllowableAction(PortCMIS.Enums.Action.CanDeleteObject)) {\n
// do it\n}",
"title": "Checking Allowable Actions"
},
{
"location":
"/samples/allowable-actions/index.html#checking-allowable-actions",
- "text": "CMIS 1.0 CMIS 1.1 OpenCMIS (Java) CmisObject
cmisObject = ...\n\nif
(cmisObject.hasAllowableAction(Action.CAN_DELETE_OBJECT)) {\n // do it\n}
PortCMIS (C#) ICmisObject cmisObject = ...\n\nif
(cmisObject.HasAllowableAction(PortCMIS.Enums.Action.CanDeleteObject)) {\n
// do it\n}",
+ "text": "CMIS 1.0 CMIS 1.1 Allowable Actions let clients check
if the current user is allowed to perform an action. Clients can and should use
this, for example, to disable or remove buttons, menu items, or links that
wouldn t work for the current user. Note Calculating the Allowable Actions
can be an expensive operation for some CMIS repositories. The performance can
suffer noticeably if many objects have to be returned, for example by
getChildren() . Only request the Allowable Actions if you really need them. Use
an Operation Context to turn Allowable Actions on or off. OpenCMIS (Java)
CmisObject cmisObject = ...\n\nif
(cmisObject.hasAllowableAction(Action.CAN_DELETE_OBJECT)) {\n // do it\n}
PortCMIS (C#) ICmisObject cmisObject = ...\n\nif
(cmisObject.HasAllowableAction(PortCMIS.Enums.Action.CanDeleteObject)) {\n
// do it\n}",
"title": "Checking Allowable Actions"
},
{
@@ -736,6 +741,26 @@
"title": "Working with Policies"
},
{
+ "location": "/samples/retention/index.html",
+ "text": "Retention and Holds\n\n\nCMIS 1.1\n\n\nSpec
2.1.16\n\n\nRetention\n\n\nSpec 2.1.16.1\n\n\nSpec
2.1.16.2\n\n\nHolds\n\n\nSpec 2.1.16.3",
+ "title": "Retention and Holds"
+ },
+ {
+ "location": "/samples/retention/index.html#retention-and-holds",
+ "text": "CMIS 1.1 Spec 2.1.16",
+ "title": "Retention and Holds"
+ },
+ {
+ "location": "/samples/retention/index.html#retention",
+ "text": "Spec 2.1.16.1 Spec 2.1.16.2",
+ "title": "Retention"
+ },
+ {
+ "location": "/samples/retention/index.html#holds",
+ "text": "Spec 2.1.16.3",
+ "title": "Holds"
+ },
+ {
"location": "/about/index.html",
"text": "About this Documentation\n\n\n\n\nCreated by the \nApache
Chemistry PMC\n.\n\n\nIf you have any questions, subscribe to the \nApache
Chemistry Dev Mailing List\n. If you find an error, please create an
\nissue\n.\n\n\nLicense: \nApache 2.0\n\n\nApache Chemistry\n, \nApache\n, the
Apache feather logo, and the Apache Chemistry project logo are trademarks of
\nThe Apache Software Foundation\n.\n\nContent Management Interoperability
Services (CMIS) is an \nOASIS\n specification.\n\n\n\n\nDocumentation built
with \nMkDocs\n using the modified \nCinder\n theme.",
"title": "About"
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/access-control/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/access-control/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/access-control/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -251,7 +257,7 @@
</a>
</li>
<li >
- <a rel="prev" href="../../about/index.html">
+ <a rel="prev" href="../retention/index.html">
Next <i class="fa fa-arrow-right"
aria-hidden="true"></i>
</a>
</li>
@@ -340,4 +346,4 @@
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.499356 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:05.159912 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/allowable-actions/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/allowable-actions/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/allowable-actions/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -281,6 +287,11 @@
<h1 id="checking-allowable-actions">Checking Allowable Actions</h1>
<p><span class="cmis">CMIS 1.0</span>
<span class="cmis">CMIS 1.1</span></p>
+<p>Allowable Actions let clients check if the current user is allowed to
perform an action. Clients can and should use this, for example, to disable or
remove buttons, menu items, or links that wouldn’t work for the current
user.</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>Calculating the Allowable Actions can be an expensive operation for some
CMIS repositories. The performance can suffer noticeably if many objects have
to be returned, for example by <code>getChildren()</code>. Only request the
Allowable Actions if you really need them. Use an <a
href="../operation-context/index.html#allowable-actions">Operation Context</a>
to turn Allowable Actions on or off.</p>
+</div>
<p class="opencmis">OpenCMIS (Java)</p>
<pre><code class="java">CmisObject cmisObject = ...
@@ -345,4 +356,4 @@ if (cmisObject.HasAllowableAction(PortCM
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.484902 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:05.143206 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/capabilities/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/capabilities/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/capabilities/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -377,4 +383,4 @@ boolean supportsUnfiling = Boolean.TRUE.
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.078135 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.719605 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/changelog/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/changelog/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/changelog/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -346,4 +352,4 @@ if (events != null && events.get
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.471169 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:05.126765 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/content/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/content/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/content/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -355,7 +361,12 @@ If you need a more thorough MIME type de
<h2 id="getting-content">Getting Content</h2>
<p><span class="cmis">CMIS 1.0</span>
<span class="cmis">CMIS 1.1</span></p>
-<p>The code snippets below show how to get the content of document. If a
document has no content, <code>getContentStream()</code> returns
<code>null</code>.</p>
+<p>The code snippets below show how to get the content of document.</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>CMIS differentiates between documents with no content and documents with a
content of 0 bytes.<br />
+If a document has no content, <code>getContentStream()</code> returns
<code>null</code>. If a document has a 0 byte content,
<code>getContentStream()</code> returns a content stream object with an empty
stream.</p>
+</div>
<p class="opencmis">OpenCMIS (Java)</p>
<pre><code class="java">Document document = ...
ContentStream contentStream = document.getContentStream();
@@ -474,7 +485,7 @@ CMIS only supports server managed rendit
<h3 id="getting-the-list-of-renditions">Getting the List of Renditions</h3>
<div class="admonition note">
<p class="admonition-title">Note</p>
-<p>The list of renditions is only available if it has been requested with an
<a href="../operation-context/index.html">Operation Context</a>.</p>
+<p>The list of renditions is only available if it has been requested with an
<a href="../operation-context/index.html#rendition-filter">Operation
Context</a>.</p>
</div>
<p class="opencmis">OpenCMIS (Java)</p>
<pre><code class="java">Document document = ...
@@ -560,4 +571,4 @@ IContentStream cs2 = rendition.GetConten
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.301995 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.957864 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-objects/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-objects/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-objects/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -560,4 +566,4 @@ ObjectId newFolderId = session.createFol
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.199682 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.846266 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-session/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-session/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/create-session/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -496,4 +502,4 @@ ISession session = factory.GetRepositori
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.058485 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.695828 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/delete-objects/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/delete-objects/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/delete-objects/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -397,4 +403,4 @@ folder.DeleteTree(true, UnfileObject.Del
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.263520 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.915902 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/exceptions/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/exceptions/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/exceptions/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -423,4 +429,4 @@ is not allowed for documents of that typ
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.129329 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:04.768746 -->
\ No newline at end of file
Modified:
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/extensions/index.html
==============================================================================
---
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/extensions/index.html
(original)
+++
websites/staging/chemistry/trunk/content/docs/cmis-samples/samples/extensions/index.html
Fri Jul 8 16:17:56 2016
@@ -225,6 +225,12 @@
</li>
+
+<li >
+ <a href="../retention/index.html">Retention and Holds</a>
+</li>
+
+
</ul>
</li>
@@ -366,4 +372,4 @@ if (extensions != null) {
</body>
</html>
-<!-- last update: 2016-06-24 10:25:44.436606 -->
\ No newline at end of file
+<!-- last update: 2016-07-08 16:12:05.095607 -->
\ No newline at end of file