Added: chemistry/site/trunk/content/docs/cmis-samples/samples/create-objects/index.html URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/docs/cmis-samples/samples/create-objects/index.html?rev=1750066&view=auto ============================================================================== --- chemistry/site/trunk/content/docs/cmis-samples/samples/create-objects/index.html (added) +++ chemistry/site/trunk/content/docs/cmis-samples/samples/create-objects/index.html Fri Jun 24 10:03:33 2016 @@ -0,0 +1,563 @@ +<!DOCTYPE html> +<!-- + + 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. + +--> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="Apache Chemistry"> + <link rel="shortcut icon" href="../../img/favicon.ico"> + + <title>Creating Objects - Apache Chemistry Samples</title> + + <link href="../../css/bootstrap-custom.min.css" rel="stylesheet"> + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="../../css/base.css" rel="stylesheet"> + <link href="../../css/cinder.css" rel="stylesheet"> + <link rel="stylesheet" href="../../css/highlight.css"> + + + <link href="../../css/chemistry.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + +</head> + +<body> + + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + + <!-- Collapsed navigation --> + <div class="navbar-header"> + + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + + <!-- Main title --> + <a class="navbar-brand" href="../../index.html">Apache Chemistry Samples</a> + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + + <!-- Main navigation --> + <ul class="nav navbar-nav"> + + + <li > + <a href="../../index.html">Home</a> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Repository <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../create-session/index.html">Creating a Session</a> +</li> + + + +<li > + <a href="../capabilities/index.html">Getting Repository Capabilities</a> +</li> + + + +<li > + <a href="../types/index.html">Working with Types</a> +</li> + + + +<li > + <a href="../exceptions/index.html">CMIS Exceptions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">CRUD <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../retrieve-objects/index.html">Retrieving Objects</a> +</li> + + + +<li class="active"> + <a href="index.html">Creating Objects</a> +</li> + + + +<li > + <a href="../update-objects/index.html">Updating Objects</a> +</li> + + + +<li > + <a href="../move-objects/index.html">Moving Object</a> +</li> + + + +<li > + <a href="../delete-objects/index.html">Deleting Objects</a> +</li> + + + +<li > + <a href="../content/index.html">Working with Content</a> +</li> + + + +<li > + <a href="../versions/index.html">Working with Versions</a> +</li> + + + +<li > + <a href="../properties/index.html">Working with Properties and Secondary Types</a> +</li> + + + +<li > + <a href="../operation-context/index.html">Understanding the Operation Context</a> +</li> + + + +<li > + <a href="../lists/index.html">Working with Lists, Paging and Skipping</a> +</li> + + + +<li > + <a href="../extensions/index.html">Getting Extensions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Query <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../queries/index.html">Executing Queries</a> +</li> + + + +<li > + <a href="../changelog/index.html">Retrieving the Change Log</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Access Control <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../allowable-actions/index.html">Checking Allowable Actions</a> +</li> + + + +<li > + <a href="../access-control/index.html">Managing Access Control</a> +</li> + + + </ul> + </li> + + + + <li > + <a href="../../about/index.html">About</a> + </li> + + + </ul> + + + <ul class="nav navbar-nav navbar-right"> + <li> + <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal"> + <i class="fa fa-search" aria-hidden="true"></i> Search + </a> + </li> + + <li > + <a rel="next" href="../retrieve-objects/index.html"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> Previous + </a> + </li> + <li > + <a rel="prev" href="../update-objects/index.html"> + Next <i class="fa fa-arrow-right" aria-hidden="true"></i> + </a> + </li> + + <li> + <a href="https://www.apache.org" style="padding: 2px;"> + <img src="../../img/feather.png"> + </a> + </li> + </ul> + </div> + </div> +</div> + + <div class="container"> + + <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary"> + <ul class="nav bs-sidenav"> + + <li class="first-level active"><a href="#creating-objects">Creating Objects</a></li> + + <li class="second-level"><a href="#creating-a-folder">Creating a Folder</a></li> + + + <li class="second-level"><a href="#creating-a-document">Creating a Document</a></li> + + <li class="third-level"><a href="#creating-a-documet-from-source-copy-content">Creating a Documet from Source (Copy Content)</a></li> + + + <li class="second-level"><a href="#creating-a-relationship">Creating a Relationship</a></li> + + + <li class="second-level"><a href="#creating-a-policy">Creating a Policy</a></li> + + + <li class="second-level"><a href="#creating-an-item">Creating an Item</a></li> + + + <li class="second-level"><a href="#creating-object-with-a-folder-object-vs-creating-object-with-the-session-object">Creating object with a Folder Object vs Creating object with the Session Object</a></li> + + + + </ul> +</div></div> + <div class="col-md-9" role="main"> + +<h1 id="creating-objects">Creating Objects</h1> +<p>To create an object a client has to provide a least the two properties <strong>cmis:name</strong> and <strong>cmis:objectTypeId</strong>.<br /> +<strong>cmis:name</strong> sets the name of the object and <strong>cmis:objectTypeId</strong> sets its object type.<br /> +Depending on the object type, more properties can be set or must be set. See also the page about <a href="../properties/index.html">properties</a>.</p> +<h2 id="creating-a-folder">Creating a Folder</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.1.5</span></p> +<p>A folder is always a <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> object. That is, you always need a parent folder.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">Folder parent = .... + +// prepare properties +Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.NAME, "a new folder"); +properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder"); + +// create the folder +Folder newFolder = parent.createFolder(properties); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder parent = .... + +// prepare properties +IDictionary<string, object> properties = new Dictionary<string, object>(); +properties[PropertyIds.Name] = "a new folder"; +properties[PropertyIds.ObjectTypeId] = "cmis:folder"; + +// create the folder +IFolder newFolder = parent.CreateFolder(properties); +</code></pre> + +<h2 id="creating-a-document">Creating a Document</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.1.4</span></p> +<p>Documents can be <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> and <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr>. The following samples show how to create a <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> document. Use the session object to create an <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr> document.</p> +<p>See also the <a href="../content/index.html">page about content</a> how to work with content streams.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">Folder parent = .... + +String textFileName = "test.txt"; + +// prepare content - a simple text file +String content = "Hello World!"; + +String filename = textFileName; +String mimetype = "text/plain; charset=UTF-8"; + +byte[] contentBytes = content.getBytes("UTF-8"); +ByteArrayInputStream stream = new ByteArrayInputStream(contentBytes); + +ContentStream contentStream = session.getObjectFactory().createContentStream(filename, contentBytes.length, mimetype, stream); + +// prepare properties +Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.NAME, textFileName); +properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document"); + +// create the document +Document newDoc = parent.createDocument(properties, contentStream, VersioningState.NONE); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder parent = .... + +string textFileName = "test.txt"; + +// prepare content - a simple text file +string content = "Hello World!"; + +string filename = textFileName; +string mimetype = "text/plain; charset=UTF-8"; + +byte[] contentBytes = Encoding.UTF8.GetBytes(content); +Stream stream = new MemoryStream(contentBytes); + +IContentStream contentStream = session.ObjectFactory.CreateContentStream(filename, contentBytes.length, mimetype, stream); + +// prepare properties +IDictionary<string, object> properties = new Dictionary<string, object>(); +properties[PropertyIds.Name] = textFileName; +properties[PropertyIds.ObjectTypeId] = "cmis:document"; + +// create the document +IDocument newDoc = parent.CreateDocument(properties, contentStream, VersioningState.None); +</code></pre> + +<h3 id="creating-a-documet-from-source-copy-content">Creating a Documet from Source (Copy Content)</h3> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">Folder folder = ... +Document doc = ... + +doc.copy(folder); // create a copy of the document in this folder +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder folder = ... +IDocument doc = ... + +doc.Copy(folder); // create a copy of the document in this folder +</code></pre> + +<h2 id="creating-a-relationship">Creating a Relationship</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.1.6</span></p> +<p>Relationships are always <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr> objects. The ID of the source object and the ID of the target object must be provided. +See the <a href="../types/index.html">page about types</a> how to discover relationship types and their properties.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">String sourceId = ... +String targetId = ... + +Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.NAME, "a new relationship"); +properties.put(PropertyIds.OBJECT_TYPE_ID, "my:relationsip"); +properties.put(PropertyIds.SOURCE_ID, sourceId); +properties.put(PropertyIds.TARGET_ID, targetId); + +ObjectId newRelId = session.createRelationship(properties); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">string sourceId = ... +string targetId = ... + +IDictionary<string, object> properties = new Dictionary<string, object>(); +properties[PropertyIds.Name] = "a new relationship"; +properties[PropertyIds.ObjectTypeId] = "my:relationsip"; +properties[PropertyIds.SourceId] = sourceId; +properties[PropertyIds.TargetId] = targetId; + +IObjectId newRelId = session.CreateRelationship(properties); +</code></pre> + +<h2 id="creating-a-policy">Creating a Policy</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.1.7</span></p> +<p>Policies can be <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> and <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr>. The following samples show how to create a <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> policy. Use the session object to create an <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr> policy.</p> +<p>In most cases it doesn’t make sense to create an policies of the type <code>cmis:policy</code> because it has no semantics. Usually, the repository provides specific policy types with or without additional properties. See the <a href="../types/index.html">page about types</a> how to discover policy types and their properties.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">Folder parent = .... + +// prepare properties +Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.NAME, "a new policy"); +properties.put(PropertyIds.OBJECT_TYPE_ID, "my:policy"); +properties.put(PropertyIds.POLICY_TEXT, "my policy description"); + +// create the policy +Policy newPolicy = parent.createPolicy(properties); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder parent = .... + +// prepare properties +IDictionary<string, object> properties = new Dictionary<string, object>(); +properties[PropertyIds.Name] = "a new policy"; +properties[PropertyIds.ObjectTypeId] = "my:policy"; +properties[PropertyIds.PolicyText] = "my policy description"; + +// create the policy +IPolicy newPolicy = parent.CreatePolicy(properties); +</code></pre> + +<h2 id="creating-an-item">Creating an Item</h2> +<p><span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.1.8</span></p> +<p>Items can be <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> and <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr>. The following samples show how to create a <abbr title="An object is called "filed" if it resides in one or more folders.">filed</abbr> item. Use the session object to create an <abbr title="An object is called "unfiled" if it doesn't reside in a folder. Folders cannot be unfiled.">unfiled</abbr> item.</p> +<p>In most cases it doesn’t make sense to create an item of the type <code>cmis:item</code>. Usually, the repository provides specific item types with or without additional properties. See the <a href="../types/index.html">page about types</a> how to discover item types and their properties.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">Folder parent = .... + +// prepare properties +Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.NAME, "a new item"); +properties.put(PropertyIds.OBJECT_TYPE_ID, "my:item"); + +// create the item +Item newItem = parent.createItem(properties); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder parent = .... + +// prepare properties +IDictionary<string, object> properties = new Dictionary<string, object>(); +properties[PropertyIds.Name] = "a new item"; +properties[PropertyIds.ObjectTypeId] = "cmis:item"; + +// create the item +IItem newItem = parent.CreateItem(properties); +</code></pre> + +<h2 id="creating-object-with-a-folder-object-vs-creating-object-with-the-session-object">Creating object with a Folder Object vs Creating object with the Session Object</h2> +<p>OpenCMIS and PortCMIS provide two ways to create objects. +The code samples above create objects in a folder. It is also possible to create an object with the session object +and without getting the parent folder first.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">Map<String, Object> properties = new HashMap<String, Object>(); +properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder"); +properties.put(PropertyIds.NAME, "a new folder"); + +ObjectId newFolderId = session.createFolder(properties, parentId); +</code></pre> + +<p>Both approaches have advantages and disadvantages.</p> +<p>Creating an object with a folder object is more convenient. The create methods return the newly created object.</p> +<p>Creating an object with the session object is faster because it only needs one round-trip to the server. But it only returns the ID of the newly created object.</p> +<p>Unfiled objects can only be created with the session object.</p></div> + + </div> + + <footer class="col-md-12 text-center"> + <hr> + <p> + </footer> + + <script src="../../js/jquery-1.10.2.min.js"></script> + <script src="../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../js/highlight.pack.js"></script> + <script>hljs.initHighlightingOnLoad();</script> + <script> + var base_url = '../..'; + </script> + <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script> + <script src="../../js/base.js"></script> + + <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span> + <span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="exampleModalLabel">Search</h4> + </div> + <div class="modal-body"> + <p> + From here you can search these documents. Enter your search terms below. + </p> + <form role="form"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query"> + </div> + </form> + <div id="mkdocs-search-results"></div> + </div> + <div class="modal-footer"> + </div> + </div> + </div> + </div> + + <script type="text/javascript" src="../../js/retina.min.js"></script> + </body> + +</html> +<!-- last update: 2016-06-24 09:47:51.641718 --> \ No newline at end of file
Added: chemistry/site/trunk/content/docs/cmis-samples/samples/create-session/index.html URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/docs/cmis-samples/samples/create-session/index.html?rev=1750066&view=auto ============================================================================== --- chemistry/site/trunk/content/docs/cmis-samples/samples/create-session/index.html (added) +++ chemistry/site/trunk/content/docs/cmis-samples/samples/create-session/index.html Fri Jun 24 10:03:33 2016 @@ -0,0 +1,499 @@ +<!DOCTYPE html> +<!-- + + 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. + +--> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="Apache Chemistry"> + <link rel="shortcut icon" href="../../img/favicon.ico"> + + <title>Creating a Session - Apache Chemistry Samples</title> + + <link href="../../css/bootstrap-custom.min.css" rel="stylesheet"> + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="../../css/base.css" rel="stylesheet"> + <link href="../../css/cinder.css" rel="stylesheet"> + <link rel="stylesheet" href="../../css/highlight.css"> + + + <link href="../../css/chemistry.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + +</head> + +<body> + + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + + <!-- Collapsed navigation --> + <div class="navbar-header"> + + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + + <!-- Main title --> + <a class="navbar-brand" href="../../index.html">Apache Chemistry Samples</a> + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + + <!-- Main navigation --> + <ul class="nav navbar-nav"> + + + <li > + <a href="../../index.html">Home</a> + </li> + + + + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Repository <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li class="active"> + <a href="index.html">Creating a Session</a> +</li> + + + +<li > + <a href="../capabilities/index.html">Getting Repository Capabilities</a> +</li> + + + +<li > + <a href="../types/index.html">Working with Types</a> +</li> + + + +<li > + <a href="../exceptions/index.html">CMIS Exceptions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">CRUD <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../retrieve-objects/index.html">Retrieving Objects</a> +</li> + + + +<li > + <a href="../create-objects/index.html">Creating Objects</a> +</li> + + + +<li > + <a href="../update-objects/index.html">Updating Objects</a> +</li> + + + +<li > + <a href="../move-objects/index.html">Moving Object</a> +</li> + + + +<li > + <a href="../delete-objects/index.html">Deleting Objects</a> +</li> + + + +<li > + <a href="../content/index.html">Working with Content</a> +</li> + + + +<li > + <a href="../versions/index.html">Working with Versions</a> +</li> + + + +<li > + <a href="../properties/index.html">Working with Properties and Secondary Types</a> +</li> + + + +<li > + <a href="../operation-context/index.html">Understanding the Operation Context</a> +</li> + + + +<li > + <a href="../lists/index.html">Working with Lists, Paging and Skipping</a> +</li> + + + +<li > + <a href="../extensions/index.html">Getting Extensions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Query <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../queries/index.html">Executing Queries</a> +</li> + + + +<li > + <a href="../changelog/index.html">Retrieving the Change Log</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Access Control <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../allowable-actions/index.html">Checking Allowable Actions</a> +</li> + + + +<li > + <a href="../access-control/index.html">Managing Access Control</a> +</li> + + + </ul> + </li> + + + + <li > + <a href="../../about/index.html">About</a> + </li> + + + </ul> + + + <ul class="nav navbar-nav navbar-right"> + <li> + <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal"> + <i class="fa fa-search" aria-hidden="true"></i> Search + </a> + </li> + + <li > + <a rel="next" href="../../index.html"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> Previous + </a> + </li> + <li > + <a rel="prev" href="../capabilities/index.html"> + Next <i class="fa fa-arrow-right" aria-hidden="true"></i> + </a> + </li> + + <li> + <a href="https://www.apache.org" style="padding: 2px;"> + <img src="../../img/feather.png"> + </a> + </li> + </ul> + </div> + </div> +</div> + + <div class="container"> + + <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary"> + <ul class="nav bs-sidenav"> + + <li class="first-level active"><a href="#creating-a-session">Creating a Session</a></li> + + <li class="second-level"><a href="#atompub-binding">AtomPub Binding</a></li> + + + <li class="second-level"><a href="#browser-binding">Browser Binding</a></li> + + + <li class="second-level"><a href="#web-services-binding">Web Services Binding</a></li> + + + <li class="second-level"><a href="#local-binding">Local Binding</a></li> + + + <li class="second-level"><a href="#connecting-to-the-first-repository">Connecting to the First Repository</a></li> + + + + </ul> +</div></div> + <div class="col-md-9" role="main"> + +<h1 id="creating-a-session">Creating a Session</h1> +<p>A session is the entry point to the content repository. Creating a session is the first thing an application has to do to interact with the repository.</p> +<p>A few details such as the URL of the repository endpoint, the user name and the user’s credentials are necessary to establish a session. +Beyond that more details might be required, depending on the repository and the environment. Those details are controlled by session parameters.</p> +<p>A complete list of all session parameters for OpenCMIS can be found in the JavaDoc. For PortCMIS, please refer to the help file that is contained in the binary packages.</p> +<div class="admonition note"> +<p class="admonition-title">Which binding should I use?</p> +<p>The <strong>Browser Binding</strong> is the fastest binding and is recommended for <strong>CMIS 1.1</strong> repositories.<br /> +Choose the <strong>AtomPub Binding</strong> for <strong>CMIS 1.0</strong> repositories.<br /> +The Web Services Binding is the last resort and should be avoided. It is the slowest binding and is the most complex to set up.</p> +</div> +<h2 id="atompub-binding">AtomPub Binding</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span></p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">// default factory implementation +SessionFactory factory = SessionFactoryImpl.newInstance(); +Map<String, String> parameters = new HashMap<String, String>(); + +// user credentials +parameters.put(SessionParameter.USER, "Otto"); +parameters.put(SessionParameter.PASSWORD, "****"); + +// connection settings +parameters.put(SessionParameter.ATOMPUB_URL, "http://<host>:<port>/cmis/atom"); +parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value()); +parameters.put(SessionParameter.REPOSITORY_ID, "myRepository"); + +// create session +Session session = factory.createSession(parameters); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">// default factory implementation +SessionFactory factory = SessionFactory.NewInstance(); +Dictionary<string, string> parameters = new Dictionary<string, string>(); + +// user credentials +parameters[SessionParameter.User] = "Otto"; +parameters[SessionParameter.Password] = "****"; + +// connection settings +parameters[SessionParameter.AtomPubUrl] = "http://<host>:<port>/cmis/atom"; +parameters[SessionParameter.BindingType] = BindingType.AtomPub; +parameters[SessionParameter.RepositoryId] = "myRepository"; + +// create session +ISession session = factory.CreateSession(parameters); +</code></pre> + +<h2 id="browser-binding">Browser Binding</h2> +<p><span class="cmis">CMIS 1.1</span></p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">// default factory implementation +SessionFactory factory = SessionFactoryImpl.newInstance(); +Map<String, String> parameters = new HashMap<String, String>(); + +// user credentials +parameters.put(SessionParameter.USER, "Otto"); +parameters.put(SessionParameter.PASSWORD, "****"); + +// connection settings +parameters.put(SessionParameter.BROWSER_URL, "http://<host>:<port>/cmis/browser"); +parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value()); +parameters.put(SessionParameter.REPOSITORY_ID, "myRepository"); + +// create session +Session session = factory.createSession(parameters); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">// default factory implementation +SessionFactory factory = SessionFactory.NewInstance(); +Dictionary<string, string> parameters = new Dictionary<string, string>(); + +// user credentials +parameters[SessionParameter.User] = "Otto"; +parameters[SessionParameter.Password] = "****"; + +// connection settings +parameters[SessionParameter.BrowserUrl] = "http://<host>:<port>/cmis/browser"; +parameters[SessionParameter.BindingType] = BindingType.Browser; +parameters[SessionParameter.RepositoryId] = "myRepository"; + +// create session +ISession session = factory.CreateSession(parameters); +</code></pre> + +<h2 id="web-services-binding">Web Services Binding</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span></p> +<p>PortCMIS does not support the Web Service binding.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">// default factory implementation +SessionFactory factory = SessionFactoryImpl.newInstance(); +Map<String, String> parameters = new HashMap<String, String>(); + +// user credentials +parameters.put(SessionParameter.USER, "Otto"); +parameters.put(SessionParameter.PASSWORD, "****"); + +// connection settings +parameters.put(SessionParameter.BINDING_TYPE, BindingType.WEBSERVICES.value()); +parameters.put(SessionParameter.WEBSERVICES_ACL_SERVICE, "http://<host>:<port>/cmis/services/ACLService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE, "http://<host>:<port>/cmis/services/DiscoveryService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE, "http://<host>:<port>/cmis/services/MultiFilingService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE, "http://<host>:<port>/cmis/services/NavigationService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE, "http://<host>:<port>/cmis/services/ObjectService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_POLICY_SERVICE, "http://<host>:<port>/cmis/services/PolicyService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_RELATIONSHIP_SERVICE, "http://<host>:<port>/cmis/services/RelationshipService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE, "http://<host>:<port>/cmis/services/RepositoryService?wsdl"); +parameters.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE, "http://<host>:<port>/cmis/services/VersioningService?wsdl"); +parameters.put(SessionParameter.REPOSITORY_ID, "myRepository"); + +// create session +Session session = factory.createSession(parameters); +</code></pre> + +<h2 id="local-binding">Local Binding</h2> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span></p> +<p>The local binding is specific to OpenCMIS. It lets an OpenCMIS client connect to an OpenCMIS server in the same JVM. +There is no PortCMIS equivalent.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">// default factory implementation +SessionFactory factory = SessionFactoryImpl.newInstance(); +Map<String, String> parameters = new HashMap<String, String>(); + +// user credentials +parameters.put(SessionParameter.USER, "Otto"); +parameters.put(SessionParameter.PASSWORD, "****"); + +// connection settings +parameters.put(SessionParameter.BINDING_TYPE, BindingType.LOCAL.value()); +parameters.put(SessionParameter.LOCAL_FACTORY, "my.local.factory"); +parameters.put(SessionParameter.REPOSITORY_ID, "myRepository"); + +// create session +Session session = factory.createSession(parameters); +</code></pre> + +<h2 id="connecting-to-the-first-repository">Connecting to the First Repository</h2> +<p>Some CMIS endpoints only provide one repository. In this case it is not necessary to provide its repository ID. +The following code snippet gets the list of all available repositories and connects to the first one.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">SessionFactory factory = SessionFactoryImpl.newInstance(); +List<Repository> repositories = factory.getRepositories(parameters); +Session session = repositories.get(0).createSession(); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">SessionFactory factory = SessionFactory.NewInstance(); +ISession session = factory.GetRepositories(parameters)[0].CreateSession(); +</code></pre></div> + + </div> + + <footer class="col-md-12 text-center"> + <hr> + <p> + </footer> + + <script src="../../js/jquery-1.10.2.min.js"></script> + <script src="../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../js/highlight.pack.js"></script> + <script>hljs.initHighlightingOnLoad();</script> + <script> + var base_url = '../..'; + </script> + <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script> + <script src="../../js/base.js"></script> + + <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span> + <span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="exampleModalLabel">Search</h4> + </div> + <div class="modal-body"> + <p> + From here you can search these documents. Enter your search terms below. + </p> + <form role="form"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query"> + </div> + </form> + <div id="mkdocs-search-results"></div> + </div> + <div class="modal-footer"> + </div> + </div> + </div> + </div> + + <script type="text/javascript" src="../../js/retina.min.js"></script> + </body> + +</html> +<!-- last update: 2016-06-24 09:47:51.499576 --> \ No newline at end of file Added: chemistry/site/trunk/content/docs/cmis-samples/samples/delete-objects/index.html URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/docs/cmis-samples/samples/delete-objects/index.html?rev=1750066&view=auto ============================================================================== --- chemistry/site/trunk/content/docs/cmis-samples/samples/delete-objects/index.html (added) +++ chemistry/site/trunk/content/docs/cmis-samples/samples/delete-objects/index.html Fri Jun 24 10:03:33 2016 @@ -0,0 +1,400 @@ +<!DOCTYPE html> +<!-- + + 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. + +--> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="Apache Chemistry"> + <link rel="shortcut icon" href="../../img/favicon.ico"> + + <title>Deleting Objects - Apache Chemistry Samples</title> + + <link href="../../css/bootstrap-custom.min.css" rel="stylesheet"> + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="../../css/base.css" rel="stylesheet"> + <link href="../../css/cinder.css" rel="stylesheet"> + <link rel="stylesheet" href="../../css/highlight.css"> + + + <link href="../../css/chemistry.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + +</head> + +<body> + + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + + <!-- Collapsed navigation --> + <div class="navbar-header"> + + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + + <!-- Main title --> + <a class="navbar-brand" href="../../index.html">Apache Chemistry Samples</a> + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + + <!-- Main navigation --> + <ul class="nav navbar-nav"> + + + <li > + <a href="../../index.html">Home</a> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Repository <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../create-session/index.html">Creating a Session</a> +</li> + + + +<li > + <a href="../capabilities/index.html">Getting Repository Capabilities</a> +</li> + + + +<li > + <a href="../types/index.html">Working with Types</a> +</li> + + + +<li > + <a href="../exceptions/index.html">CMIS Exceptions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">CRUD <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../retrieve-objects/index.html">Retrieving Objects</a> +</li> + + + +<li > + <a href="../create-objects/index.html">Creating Objects</a> +</li> + + + +<li > + <a href="../update-objects/index.html">Updating Objects</a> +</li> + + + +<li > + <a href="../move-objects/index.html">Moving Object</a> +</li> + + + +<li class="active"> + <a href="index.html">Deleting Objects</a> +</li> + + + +<li > + <a href="../content/index.html">Working with Content</a> +</li> + + + +<li > + <a href="../versions/index.html">Working with Versions</a> +</li> + + + +<li > + <a href="../properties/index.html">Working with Properties and Secondary Types</a> +</li> + + + +<li > + <a href="../operation-context/index.html">Understanding the Operation Context</a> +</li> + + + +<li > + <a href="../lists/index.html">Working with Lists, Paging and Skipping</a> +</li> + + + +<li > + <a href="../extensions/index.html">Getting Extensions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Query <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../queries/index.html">Executing Queries</a> +</li> + + + +<li > + <a href="../changelog/index.html">Retrieving the Change Log</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Access Control <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../allowable-actions/index.html">Checking Allowable Actions</a> +</li> + + + +<li > + <a href="../access-control/index.html">Managing Access Control</a> +</li> + + + </ul> + </li> + + + + <li > + <a href="../../about/index.html">About</a> + </li> + + + </ul> + + + <ul class="nav navbar-nav navbar-right"> + <li> + <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal"> + <i class="fa fa-search" aria-hidden="true"></i> Search + </a> + </li> + + <li > + <a rel="next" href="../move-objects/index.html"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> Previous + </a> + </li> + <li > + <a rel="prev" href="../content/index.html"> + Next <i class="fa fa-arrow-right" aria-hidden="true"></i> + </a> + </li> + + <li> + <a href="https://www.apache.org" style="padding: 2px;"> + <img src="../../img/feather.png"> + </a> + </li> + </ul> + </div> + </div> +</div> + + <div class="container"> + + <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary"> + <ul class="nav bs-sidenav"> + + <li class="first-level active"><a href="#deleting-objects">Deleting Objects</a></li> + + <li class="second-level"><a href="#deleting-objects_1">Deleting Objects</a></li> + + + <li class="second-level"><a href="#deleting-documents-and-versions">Deleting Documents and Versions</a></li> + + <li class="third-level"><a href="#deleting-a-document-and-all-versions">Deleting a Document and All Versions</a></li> + + <li class="third-level"><a href="#deleting-a-single-version">Deleting a Single Version</a></li> + + + <li class="second-level"><a href="#deleting-a-folder-hierarchy">Deleting a Folder Hierarchy</a></li> + + + + </ul> +</div></div> + <div class="col-md-9" role="main"> + +<h1 id="deleting-objects">Deleting Objects</h1> +<div class="admonition note"> +<p class="admonition-title">Allowable Actions</p> +<p>Before you delete an object, check the <a href="../allowable-actions/index.html">Allowable Actions</a> to determine if the +current user is allowed to delete the object.</p> +</div> +<h2 id="deleting-objects_1">Deleting Objects</h2> +<p>The following snippet deletes an object. +If the object is a document, all versions of the document are deleted. +If the object is a folder and it is not empty, a <a href="../exceptions/index.html">constraint</a> exception is thrown.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">CmisObject cmisObject = ... +cmisObject.delete(); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">ICmisObject cmisObject = ... +cmisObject.Delete(); +</code></pre> + +<h2 id="deleting-documents-and-versions">Deleting Documents and Versions</h2> +<p>If a document is versioned, the whole version series can be deleted or just a single version. This is controlled with the <code>allVersions</code> parameter.</p> +<p>For documents that are not versioned it doesn’t matter if the <code>allVersions</code> parameter is set to <code>true</code> or <code>false</code>.</p> +<h3 id="deleting-a-document-and-all-versions">Deleting a Document and All Versions</h3> +<p>To delete a whole version series, set the <code>allVersions</code> to <code>true</code>.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">Document document = ... +document.delete(true); // allVersions = true +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IDocument document = ... +document.Delete(true); // allVersions = true +</code></pre> + +<h3 id="deleting-a-single-version">Deleting a Single Version</h3> +<p>To delete one version with a version series, set the <code>allVersions</code> to <code>false</code>.</p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">Document document = ... +document.delete(false); // allVersions = false +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IDocument document = ... +document.Delete(false); // allVersions = false +</code></pre> + +<h2 id="deleting-a-folder-hierarchy">Deleting a Folder Hierarchy</h2> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="Java">Folder folder = ... +folder.deleteTree(true, UnfileObject.DELETE, true); +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">IFolder folder = ... +folder.DeleteTree(true, UnfileObject.Delete, true); +</code></pre></div> + + </div> + + <footer class="col-md-12 text-center"> + <hr> + <p> + </footer> + + <script src="../../js/jquery-1.10.2.min.js"></script> + <script src="../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../js/highlight.pack.js"></script> + <script>hljs.initHighlightingOnLoad();</script> + <script> + var base_url = '../..'; + </script> + <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script> + <script src="../../js/base.js"></script> + + <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span> + <span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="exampleModalLabel">Search</h4> + </div> + <div class="modal-body"> + <p> + From here you can search these documents. Enter your search terms below. + </p> + <form role="form"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query"> + </div> + </form> + <div id="mkdocs-search-results"></div> + </div> + <div class="modal-footer"> + </div> + </div> + </div> + </div> + + <script type="text/javascript" src="../../js/retina.min.js"></script> + </body> + +</html> +<!-- last update: 2016-06-24 09:47:51.708341 --> \ No newline at end of file Added: chemistry/site/trunk/content/docs/cmis-samples/samples/exceptions/index.html URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/docs/cmis-samples/samples/exceptions/index.html?rev=1750066&view=auto ============================================================================== --- chemistry/site/trunk/content/docs/cmis-samples/samples/exceptions/index.html (added) +++ chemistry/site/trunk/content/docs/cmis-samples/samples/exceptions/index.html Fri Jun 24 10:03:33 2016 @@ -0,0 +1,426 @@ +<!DOCTYPE html> +<!-- + + 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. + +--> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="Apache Chemistry"> + <link rel="shortcut icon" href="../../img/favicon.ico"> + + <title>CMIS Exceptions - Apache Chemistry Samples</title> + + <link href="../../css/bootstrap-custom.min.css" rel="stylesheet"> + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="../../css/base.css" rel="stylesheet"> + <link href="../../css/cinder.css" rel="stylesheet"> + <link rel="stylesheet" href="../../css/highlight.css"> + + + <link href="../../css/chemistry.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + +</head> + +<body> + + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + + <!-- Collapsed navigation --> + <div class="navbar-header"> + + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + + <!-- Main title --> + <a class="navbar-brand" href="../../index.html">Apache Chemistry Samples</a> + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + + <!-- Main navigation --> + <ul class="nav navbar-nav"> + + + <li > + <a href="../../index.html">Home</a> + </li> + + + + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Repository <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../create-session/index.html">Creating a Session</a> +</li> + + + +<li > + <a href="../capabilities/index.html">Getting Repository Capabilities</a> +</li> + + + +<li > + <a href="../types/index.html">Working with Types</a> +</li> + + + +<li class="active"> + <a href="index.html">CMIS Exceptions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">CRUD <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../retrieve-objects/index.html">Retrieving Objects</a> +</li> + + + +<li > + <a href="../create-objects/index.html">Creating Objects</a> +</li> + + + +<li > + <a href="../update-objects/index.html">Updating Objects</a> +</li> + + + +<li > + <a href="../move-objects/index.html">Moving Object</a> +</li> + + + +<li > + <a href="../delete-objects/index.html">Deleting Objects</a> +</li> + + + +<li > + <a href="../content/index.html">Working with Content</a> +</li> + + + +<li > + <a href="../versions/index.html">Working with Versions</a> +</li> + + + +<li > + <a href="../properties/index.html">Working with Properties and Secondary Types</a> +</li> + + + +<li > + <a href="../operation-context/index.html">Understanding the Operation Context</a> +</li> + + + +<li > + <a href="../lists/index.html">Working with Lists, Paging and Skipping</a> +</li> + + + +<li > + <a href="../extensions/index.html">Getting Extensions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Query <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../queries/index.html">Executing Queries</a> +</li> + + + +<li > + <a href="../changelog/index.html">Retrieving the Change Log</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Access Control <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../allowable-actions/index.html">Checking Allowable Actions</a> +</li> + + + +<li > + <a href="../access-control/index.html">Managing Access Control</a> +</li> + + + </ul> + </li> + + + + <li > + <a href="../../about/index.html">About</a> + </li> + + + </ul> + + + <ul class="nav navbar-nav navbar-right"> + <li> + <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal"> + <i class="fa fa-search" aria-hidden="true"></i> Search + </a> + </li> + + <li > + <a rel="next" href="../types/index.html"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> Previous + </a> + </li> + <li > + <a rel="prev" href="../retrieve-objects/index.html"> + Next <i class="fa fa-arrow-right" aria-hidden="true"></i> + </a> + </li> + + <li> + <a href="https://www.apache.org" style="padding: 2px;"> + <img src="../../img/feather.png"> + </a> + </li> + </ul> + </div> + </div> +</div> + + <div class="container"> + + <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary"> + <ul class="nav bs-sidenav"> + + <li class="first-level active"><a href="#exceptions">Exceptions</a></li> + + <li class="second-level"><a href="#general-exceptions">General Exceptions</a></li> + + <li class="third-level"><a href="#invalidargument">invalidArgument</a></li> + + <li class="third-level"><a href="#notsupported">notSupported</a></li> + + <li class="third-level"><a href="#objectnotfound">objectNotFound</a></li> + + <li class="third-level"><a href="#permissiondenied">permissionDenied</a></li> + + <li class="third-level"><a href="#runtime">runtime</a></li> + + + <li class="second-level"><a href="#specific-exceptions">Specific Exceptions</a></li> + + <li class="third-level"><a href="#constraint">constraint</a></li> + + <li class="third-level"><a href="#contentalreadyexists">contentAlreadyExists</a></li> + + <li class="third-level"><a href="#filternotvalid">filterNotValid</a></li> + + <li class="third-level"><a href="#nameconstraintviolation">nameConstraintViolation</a></li> + + <li class="third-level"><a href="#storage">storage</a></li> + + <li class="third-level"><a href="#streamnotsupported">streamNotSupported</a></li> + + <li class="third-level"><a href="#updateconflict">updateConflict</a></li> + + <li class="third-level"><a href="#versioning">versioning</a></li> + + + <li class="second-level"><a href="#implementation-exceptions">Implementation Exceptions</a></li> + + <li class="third-level"><a href="#base">base</a></li> + + <li class="third-level"><a href="#connection">connection</a></li> + + <li class="third-level"><a href="#unauthorized">unauthorized</a></li> + + <li class="third-level"><a href="#proxyauthentication">proxyAuthentication</a></li> + + <li class="third-level"><a href="#serviceunavailable">serviceUnavailable</a></li> + + + + </ul> +</div></div> + <div class="col-md-9" role="main"> + +<h1 id="exceptions">Exceptions</h1> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span> +<span class="spec">Spec 2.2.1.4</span></p> +<p>Exceptions are divided into three groups: general exceptions, specific exceptions, and implementation exceptions.<br /> +General exceptions and specific exceptions are defined in the CMIS specification. +Implementation exceptions are exceptions introduced by OpenCMIS and PortCMIS. Those exceptions handle connection and authentication problems.</p> +<h2 id="general-exceptions">General Exceptions</h2> +<p>General exceptions may be returned by a repository in response to any CMIS service method call.</p> +<h3 id="invalidargument">invalidArgument</h3> +<p>One or more of the input parameters is missing or invalid.</p> +<h3 id="notsupported">notSupported</h3> +<p>The CMIS operation is not supported by the repository.</p> +<h3 id="objectnotfound">objectNotFound</h3> +<p>The object, or object type, or repository does not exist or the current user has no permission to see it.</p> +<h3 id="permissiondenied">permissionDenied</h3> +<p>The user does not have sufficient permissions to perform the operation.</p> +<h3 id="runtime">runtime</h3> +<p>Any other cause not expressible by another CMIS exception.</p> +<h2 id="specific-exceptions">Specific Exceptions</h2> +<p>The following exceptions may be returned by a repository in response to one or more CMIS service methods +calls.</p> +<h3 id="constraint">constraint</h3> +<p>The operation violates a repository- or object-level constraint defined in the CMIS domain model.</p> +<h3 id="contentalreadyexists">contentAlreadyExists</h3> +<p>The operation attempts to set the content stream for a document that already has a content stream without explicitly specifying the “overwriteFlag” parameter.</p> +<h3 id="filternotvalid">filterNotValid</h3> +<p>The property filter or rendition filter input to the operation is not valid.</p> +<h3 id="nameconstraintviolation">nameConstraintViolation</h3> +<p>The repository is not able to store the object that the user is creating/updating due to a name constraint violation. +There could already be an object with the same name or the name contains a character that is not allowed.</p> +<h3 id="storage">storage</h3> +<p>The repository is not able to store the object that the user is creating/updating due to an internal storage problem.</p> +<h3 id="streamnotsupported">streamNotSupported</h3> +<p>The operation is attempting to get or set a content stream for a document whose object type specifies that a content stream +is not allowed for documents of that type.</p> +<h3 id="updateconflict">updateConflict</h3> +<p>The operation is attempting to update an object that is no longer current (as determined by the repository).</p> +<h3 id="versioning">versioning</h3> +<p>The operation is attempting to perform an action on a non-current version of a document that cannot be performed on a non-current version.</p> +<h2 id="implementation-exceptions">Implementation Exceptions</h2> +<h3 id="base">base</h3> +<p>The OpenCMIS and PortCMIS exceptions are all derived from the CMIS base exception. If you want handle all CMIS exceptions at once, catch the <code>CmisBaseException</code>.</p> +<h3 id="connection">connection</h3> +<p>The client could not connect to the repository for some reason. Check if you need to configure a proxy server.</p> +<h3 id="unauthorized">unauthorized</h3> +<p>User authentication failed.</p> +<h3 id="proxyauthentication">proxyAuthentication</h3> +<p>Proxy authentication failed.</p> +<h3 id="serviceunavailable">serviceUnavailable</h3> +<p>The server reported that the CMIS service is currently not available.</p></div> + + </div> + + <footer class="col-md-12 text-center"> + <hr> + <p> + </footer> + + <script src="../../js/jquery-1.10.2.min.js"></script> + <script src="../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../js/highlight.pack.js"></script> + <script>hljs.initHighlightingOnLoad();</script> + <script> + var base_url = '../..'; + </script> + <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script> + <script src="../../js/base.js"></script> + + <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span> + <span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="exampleModalLabel">Search</h4> + </div> + <div class="modal-body"> + <p> + From here you can search these documents. Enter your search terms below. + </p> + <form role="form"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query"> + </div> + </form> + <div id="mkdocs-search-results"></div> + </div> + <div class="modal-footer"> + </div> + </div> + </div> + </div> + + <script type="text/javascript" src="../../js/retina.min.js"></script> + </body> + +</html> +<!-- last update: 2016-06-24 09:47:51.570458 --> \ No newline at end of file Added: chemistry/site/trunk/content/docs/cmis-samples/samples/extensions/index.html URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/docs/cmis-samples/samples/extensions/index.html?rev=1750066&view=auto ============================================================================== --- chemistry/site/trunk/content/docs/cmis-samples/samples/extensions/index.html (added) +++ chemistry/site/trunk/content/docs/cmis-samples/samples/extensions/index.html Fri Jun 24 10:03:33 2016 @@ -0,0 +1,369 @@ +<!DOCTYPE html> +<!-- + + 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. + +--> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="author" content="Apache Chemistry"> + <link rel="shortcut icon" href="../../img/favicon.ico"> + + <title>Getting Extensions - Apache Chemistry Samples</title> + + <link href="../../css/bootstrap-custom.min.css" rel="stylesheet"> + <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"> + <link href="../../css/base.css" rel="stylesheet"> + <link href="../../css/cinder.css" rel="stylesheet"> + <link rel="stylesheet" href="../../css/highlight.css"> + + + <link href="../../css/chemistry.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> + <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> + <![endif]--> + + +</head> + +<body> + + <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + + <!-- Collapsed navigation --> + <div class="navbar-header"> + + <!-- Expander button --> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + + + <!-- Main title --> + <a class="navbar-brand" href="../../index.html">Apache Chemistry Samples</a> + </div> + + <!-- Expanded navigation --> + <div class="navbar-collapse collapse"> + + <!-- Main navigation --> + <ul class="nav navbar-nav"> + + + <li > + <a href="../../index.html">Home</a> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Repository <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../create-session/index.html">Creating a Session</a> +</li> + + + +<li > + <a href="../capabilities/index.html">Getting Repository Capabilities</a> +</li> + + + +<li > + <a href="../types/index.html">Working with Types</a> +</li> + + + +<li > + <a href="../exceptions/index.html">CMIS Exceptions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">CRUD <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../retrieve-objects/index.html">Retrieving Objects</a> +</li> + + + +<li > + <a href="../create-objects/index.html">Creating Objects</a> +</li> + + + +<li > + <a href="../update-objects/index.html">Updating Objects</a> +</li> + + + +<li > + <a href="../move-objects/index.html">Moving Object</a> +</li> + + + +<li > + <a href="../delete-objects/index.html">Deleting Objects</a> +</li> + + + +<li > + <a href="../content/index.html">Working with Content</a> +</li> + + + +<li > + <a href="../versions/index.html">Working with Versions</a> +</li> + + + +<li > + <a href="../properties/index.html">Working with Properties and Secondary Types</a> +</li> + + + +<li > + <a href="../operation-context/index.html">Understanding the Operation Context</a> +</li> + + + +<li > + <a href="../lists/index.html">Working with Lists, Paging and Skipping</a> +</li> + + + +<li class="active"> + <a href="index.html">Getting Extensions</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Query <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../queries/index.html">Executing Queries</a> +</li> + + + +<li > + <a href="../changelog/index.html">Retrieving the Change Log</a> +</li> + + + </ul> + </li> + + + + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Access Control <b class="caret"></b></a> + <ul class="dropdown-menu"> + + +<li > + <a href="../allowable-actions/index.html">Checking Allowable Actions</a> +</li> + + + +<li > + <a href="../access-control/index.html">Managing Access Control</a> +</li> + + + </ul> + </li> + + + + <li > + <a href="../../about/index.html">About</a> + </li> + + + </ul> + + + <ul class="nav navbar-nav navbar-right"> + <li> + <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal"> + <i class="fa fa-search" aria-hidden="true"></i> Search + </a> + </li> + + <li > + <a rel="next" href="../lists/index.html"> + <i class="fa fa-arrow-left" aria-hidden="true"></i> Previous + </a> + </li> + <li > + <a rel="prev" href="../queries/index.html"> + Next <i class="fa fa-arrow-right" aria-hidden="true"></i> + </a> + </li> + + <li> + <a href="https://www.apache.org" style="padding: 2px;"> + <img src="../../img/feather.png"> + </a> + </li> + </ul> + </div> + </div> +</div> + + <div class="container"> + + <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary"> + <ul class="nav bs-sidenav"> + + <li class="first-level active"><a href="#getting-extensions">Getting Extensions</a></li> + + + </ul> +</div></div> + <div class="col-md-9" role="main"> + +<h1 id="getting-extensions">Getting Extensions</h1> +<p><span class="cmis">CMIS 1.0</span> +<span class="cmis">CMIS 1.1</span></p> +<p class="opencmis">OpenCMIS (Java)</p> +<pre><code class="java">CmisObject cmisObject = ... +String extensionValue = null; + +// extensions can be attached to different levels +// in this example we get the extensions on the properties level +List<CmisExtensionElement> extensions = cmisObject.getExtensions(ExtensionLevel.PROPERTIES); + +if (extensions != null) { + // iterate through the extensions until we find the one we are looking for + for (CmisExtensionElement ext: extensions) { + if ("myExtension".equals(ext.getName())) { + extensionValue = ext.getValue(); + break; + } + } +} +</code></pre> + +<p class="portcmis">PortCMIS (C#)</p> +<pre><code class="csharp">ICmisObject cmisObject = ... +string extensionValue = null; + +// extensions can be attached to different levels +// in this example we get the extensions on the properties level +IList<ICmisExtensionElement> extensions = cmisObject.GetExtensions(ExtensionLevel.Properties); + +if (extensions != null) { + // iterate through the extensions until we find the one we are looking for + try { + extensionValue = extensions.First(ext => ext.Name == "myExtension").Value; + } catch (InvalidOperationException) { + // not found + } +} +</code></pre></div> + + </div> + + <footer class="col-md-12 text-center"> + <hr> + <p> + </footer> + + <script src="../../js/jquery-1.10.2.min.js"></script> + <script src="../../js/bootstrap-3.0.3.min.js"></script> + <script src="../../js/highlight.pack.js"></script> + <script>hljs.initHighlightingOnLoad();</script> + <script> + var base_url = '../..'; + </script> + <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script> + <script src="../../js/base.js"></script> + + <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal"> + <span aria-hidden="true">×</span> + <span class="sr-only">Close</span> + </button> + <h4 class="modal-title" id="exampleModalLabel">Search</h4> + </div> + <div class="modal-body"> + <p> + From here you can search these documents. Enter your search terms below. + </p> + <form role="form"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query"> + </div> + </form> + <div id="mkdocs-search-results"></div> + </div> + <div class="modal-footer"> + </div> + </div> + </div> + </div> + + <script type="text/javascript" src="../../js/retina.min.js"></script> + </body> + +</html> +<!-- last update: 2016-06-24 09:47:51.868811 --> \ No newline at end of file
