You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2011/03/19 21:19:13 UTC
svn commit: r1083276 - in /chemistry/site/trunk/content/dotnet:
dotcmis.mdtext powershell-example.mdtext
Author: fmui
Date: Sat Mar 19 20:19:12 2011
New Revision: 1083276
URL: http://svn.apache.org/viewvc?rev=1083276&view=rev
Log:
added PowerShell page
Added:
chemistry/site/trunk/content/dotnet/powershell-example.mdtext (with props)
Modified:
chemistry/site/trunk/content/dotnet/dotcmis.mdtext
Modified: chemistry/site/trunk/content/dotnet/dotcmis.mdtext
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/dotnet/dotcmis.mdtext?rev=1083276&r1=1083275&r2=1083276&view=diff
==============================================================================
--- chemistry/site/trunk/content/dotnet/dotcmis.mdtext (original)
+++ chemistry/site/trunk/content/dotnet/dotcmis.mdtext Sat Mar 19 20:19:12 2011
@@ -22,8 +22,8 @@ DotCMIS client|[Download](http://www.apa
<a name="DotCMIS-Documentation"></a>
## Documentation
-There are starter code snippets on the [Getting started with DotCMIS](getting-started-with-dotcmis.html) page
-and the API documentation is available as a [CHM Help file](https://builds.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/doc/DotCMISDoc.chm).
+There are starter code snippets on the [Getting started with DotCMIS](getting-started-with-dotcmis.html) page and the [PowerShell Example](powershell-example.html) page.
+The API documentation is available as a [CHM Help file](https://builds.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/doc/DotCMISDoc.chm).
The interfaces are very similar to the [OpenCMIS](/java/opencmis.html) client API. Please see the
OpenCMIS documentation for more insights.
@@ -38,5 +38,5 @@ DotCMIS requires the .NET Framework vers
The DotCMIS unit tests require NUnit 2.5.
-Nighty builds can be obtained from here: [Debug DLL](https://hudson.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/bin/Debug/)
- and [Release DLL](https://hudson.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/bin/Release/).
+Nighty builds can be obtained from here: [Debug DLL](https://builds.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/bin/Debug/)
+ and [Release DLL](https://builds.apache.org/hudson/job/Chemistry%20-%20DotCMIS/ws/bin/Release/).
Added: chemistry/site/trunk/content/dotnet/powershell-example.mdtext
URL: http://svn.apache.org/viewvc/chemistry/site/trunk/content/dotnet/powershell-example.mdtext?rev=1083276&view=auto
==============================================================================
--- chemistry/site/trunk/content/dotnet/powershell-example.mdtext (added)
+++ chemistry/site/trunk/content/dotnet/powershell-example.mdtext Sat Mar 19 20:19:12 2011
@@ -0,0 +1,117 @@
+Title: PowerShell Examples
+# PowerShell Examples
+
+The DotCMIS DLL can be used in PowerShell scripts. Here is a simple example.
+
+
+ # load DotCMIS DLL
+ [Reflection.Assembly]::LoadFile("X:\path\to\DotCMIS.dll")
+
+
+ # -----------------------------------------------------------------
+
+ # helper functions
+ function New-GenericDictionary([type] $keyType, [type]$valueType) {
+ $base = [System.Collections.Generic.Dictionary``2]
+ $ct = $base.MakeGenericType(($keyType, $valueType))
+ New-Object $ct
+ }
+
+ function New-ContentStream([string] $file, [string] $mimetype) {
+ $fileinfo = ([System.IO.FileInfo]$file)
+
+ $contentStream = New-Object "DotCMIS.Data.Impl.ContentStream"
+ $contentStream.Filename = $fileinfo.Name
+ $contentStream.Length = $fileinfo.Length
+ $contentStream.MimeType = $mimetype
+ $contentStream.Stream = $fileinfo.OpenRead()
+
+ $contentStream
+ }
+
+ function Download-ContentStream([DotCMIS.Client.IDocument] $document, [string] $file) {
+ $contentStream = $document.GetContentStream()
+ $fileStream = [System.IO.File]::OpenWrite($file)
+
+ $buffer = New-Object byte[] 4096
+ do {
+ $b = $contentStream.Stream.Read($buffer, 0, 4096)
+ $fileStream.Write($buffer, 0, $b)
+ }
+ while ($b -ne 0)
+
+ $fileStream.Close()
+ $contentStream.Stream.Close()
+ }
+
+
+ # -----------------------------------------------------------------
+
+ # create session
+ $sp = New-GenericDictionary string string
+ $sp["org.apache.chemistry.dotcmis.binding.spi.type"] = "atompub";
+ $sp["org.apache.chemistry.dotcmis.binding.atompub.url"] = "http://localhost:8080/alfresco/service/cmis"
+ $sp["org.apache.chemistry.dotcmis.user"] = "admin";
+ $sp["org.apache.chemistry.dotcmis.password"] = "admin";
+
+ $factory = [DotCMIS.Client.Impl.SessionFactory]::NewInstance()
+ $session = $factory.GetRepositories($sp)[0].CreateSession()
+
+
+ # print the repository infos
+ $session.Repositoryinfo.Id
+ $session.Repositoryinfo.Name
+ $session.Repositoryinfo.Vendor
+ $session.Repositoryinfo.ProductName
+ $session.Repositoryinfo.ProductVersion
+
+
+ # get root folder
+ $root = $session.GetRootFolder()
+
+
+ # print root folder children
+ $children = $root.GetChildren()
+ foreach ($object in $children) {
+ $object.Name + " (" + $object.ObjectType.Id + ")"
+ }
+
+
+ # run a quick query
+ $queryresult = $session.Query("SELECT * FROM cmis:document", $false)
+ foreach ($object in $queryresult) {
+ foreach ($item in $object.Properties) {
+ $item.QueryName + ": " + $item.FirstValue
+ }
+ "----------------------------------"
+ }
+
+
+ # create a folder
+ $folderProperties = New-GenericDictionary string object
+ $folderProperties["cmis:name"] = "myNewFolder"
+ $folderProperties["cmis:objectTypeId"] = "cmis:folder"
+
+ $folder = $root.CreateFolder($folderProperties)
+
+
+ # create a document
+ $documentProperties = New-GenericDictionary string object
+ $documentProperties["cmis:name"] = "myNewDocument"
+ $documentProperties["cmis:objectTypeId"] = "cmis:document"
+
+ $source = $home + "\source.txt"
+ $mimetype = "text/plain"
+ $contentStream = New-ContentStream $source $mimetype
+
+ $doc = $folder.CreateDocument($documentProperties, $contentStream, $null)
+
+
+ # download a document
+ $target = $home + "\target.txt"
+ Download-ContentStream $doc $target
+
+
+ # clean up
+ $doc.Delete($true)
+ $folder.Delete($true)
Propchange: chemistry/site/trunk/content/dotnet/powershell-example.mdtext
------------------------------------------------------------------------------
svn:eol-style = native