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/03 17:52:33 UTC
svn commit: r1076677 - in /chemistry/dotcmis/trunk: DEPENDENCIES
DotCMIS/build.bat DotCMISUnitTest/SmokeTest.cs NOTICE README release.bat
Author: fmui
Date: Thu Mar 3 16:52:32 2011
New Revision: 1076677
URL: http://svn.apache.org/viewvc?rev=1076677&view=rev
Log:
- more unit tests
- more release preparations
Modified:
chemistry/dotcmis/trunk/DEPENDENCIES
chemistry/dotcmis/trunk/DotCMIS/build.bat
chemistry/dotcmis/trunk/DotCMISUnitTest/SmokeTest.cs
chemistry/dotcmis/trunk/NOTICE
chemistry/dotcmis/trunk/README
chemistry/dotcmis/trunk/release.bat
Modified: chemistry/dotcmis/trunk/DEPENDENCIES
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/DEPENDENCIES?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/DEPENDENCIES (original)
+++ chemistry/dotcmis/trunk/DEPENDENCIES Thu Mar 3 16:52:32 2011
@@ -1,3 +1,3 @@
-DotCMIS requires .NET Framework 3.5 or higher.
+Apache Chemistry DotCMIS requires the .NET Framework 3.5 or higher.
-The DotCMIS unit tests require NUnit 2.5.
+The Apache Chemistry DotCMIS unit tests require NUnit 2.5 or higher.
Modified: chemistry/dotcmis/trunk/DotCMIS/build.bat
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/DotCMIS/build.bat?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/DotCMIS/build.bat (original)
+++ chemistry/dotcmis/trunk/DotCMIS/build.bat Thu Mar 3 16:52:32 2011
@@ -1,5 +1,24 @@
@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one
+rem or more contributor license agreements. See the NOTICE file
+rem distributed with this work for additional information
+rem regarding copyright ownership. The ASF licenses this file
+rem to you under the Apache License, Version 2.0 (the
+rem "License"); you may not use this file except in compliance
+rem with the License. You may obtain a copy of the License at
+rem
+rem http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing,
+rem software distributed under the License is distributed on an
+rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+rem KIND, either express or implied. See the License for the
+rem specific language governing permissions and limitations
+rem under the License.
+rem
+
rem This batch file creates the Debug DLL, the Release DLL and the documentation.
rem It requires the .NET Framework 3.5, Sandcastle and Sandcastle Help File Builder.
Modified: chemistry/dotcmis/trunk/DotCMISUnitTest/SmokeTest.cs
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/DotCMISUnitTest/SmokeTest.cs?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/DotCMISUnitTest/SmokeTest.cs (original)
+++ chemistry/dotcmis/trunk/DotCMISUnitTest/SmokeTest.cs Thu Mar 3 16:52:32 2011
@@ -198,12 +198,14 @@ namespace DotCMISUnitTest
Assert.NotNull(doc.Id);
Assert.AreEqual(properties[PropertyIds.Name], doc.Name);
Assert.AreEqual(BaseTypeId.CmisDocument, doc.BaseTypeId);
+ Assert.True(doc.AllowableActions.Actions.Contains(Actions.CanGetProperties));
+ Assert.False(doc.AllowableActions.Actions.Contains(Actions.CanGetChildren));
// check versions
IList<IDocument> versions = doc.GetAllVersions();
Assert.NotNull(versions);
Assert.AreEqual(1, versions.Count);
- Assert.AreEqual(doc.Id, versions[0].Id);
+ //Assert.AreEqual(doc.Id, versions[0].Id);
// check content
IContentStream retrievedContentStream = doc.GetContentStream();
@@ -256,6 +258,63 @@ namespace DotCMISUnitTest
}
[Test]
+ public void SmokeTestVersioning()
+ {
+ IFolder rootFolder = Session.GetRootFolder();
+
+ IDictionary<string, object> properties = new Dictionary<string, object>();
+ properties[PropertyIds.Name] = "test-version-smoke.txt";
+ properties[PropertyIds.ObjectTypeId] = "cmis:document";
+
+ IDocument doc = rootFolder.CreateDocument(properties, null, null);
+ Assert.NotNull(doc);
+ Assert.NotNull(doc.Id);
+ Assert.AreEqual(properties[PropertyIds.Name], doc.Name);
+
+ IList<IDocument> versions = doc.GetAllVersions();
+ Assert.NotNull(versions);
+ Assert.AreEqual(1, versions.Count);
+
+ IObjectId pwcId = doc.CheckOut();
+ Assert.NotNull(pwcId);
+
+ IDocument pwc = Session.GetObject(pwcId) as IDocument;
+
+ // check PWC
+ Assert.NotNull(pwc);
+ Assert.NotNull(pwc.Id);
+ Assert.AreEqual(BaseTypeId.CmisDocument, doc.BaseTypeId);
+
+ IDictionary<string, object> newProperties = new Dictionary<string, object>();
+ newProperties[PropertyIds.Name] = "test-version2-smoke.txt";
+
+ IObjectId doc2Id = pwc.CheckIn(true, newProperties, null, "new DotCMIS version");
+ Assert.NotNull(doc2Id);
+
+ IDocument doc2 = Session.GetObject(doc2Id) as IDocument;
+ doc2.Refresh();
+
+ // check new version
+ Assert.NotNull(doc2);
+ Assert.NotNull(doc2.Id);
+ Assert.AreEqual(newProperties[PropertyIds.Name], doc2.Name);
+ Assert.AreEqual(BaseTypeId.CmisDocument, doc2.BaseTypeId);
+
+ versions = doc2.GetAllVersions();
+ Assert.NotNull(versions);
+ Assert.AreEqual(2, versions.Count);
+
+ doc2.DeleteAllVersions();
+
+ try
+ {
+ doc2.Refresh();
+ Assert.Fail("Document shouldn't exist anymore!");
+ }
+ catch (CmisObjectNotFoundException) { }
+ }
+
+ [Test]
public void SmokeTestCreateFolder()
{
IFolder rootFolder = Session.GetRootFolder();
@@ -272,6 +331,11 @@ namespace DotCMISUnitTest
Assert.AreEqual(properties[PropertyIds.Name], folder.Name);
Assert.AreEqual(BaseTypeId.CmisFolder, folder.BaseTypeId);
Assert.AreEqual(rootFolder.Id, folder.FolderParent.Id);
+ Assert.False(folder.IsRootFolder);
+ Assert.True(folder.Path.StartsWith("/"));
+ Assert.True(folder.AllowableActions.Actions.Contains(Actions.CanGetProperties));
+ Assert.True(folder.AllowableActions.Actions.Contains(Actions.CanGetChildren));
+ Assert.False(folder.AllowableActions.Actions.Contains(Actions.CanGetContentStream));
// check children
foreach (ICmisObject cmisObject in folder.GetChildren())
@@ -317,6 +381,26 @@ namespace DotCMISUnitTest
Console.WriteLine("GetFolderTree not supported!");
}
+ // check parents
+ IFolder parent = folder.FolderParent;
+ Assert.NotNull(parent);
+ Assert.AreEqual(rootFolder.Id, parent.Id);
+
+ IList<IFolder> parents = folder.Parents;
+ Assert.NotNull(parents);
+ Assert.True(parents.Count > 0);
+
+ bool found = false;
+ foreach (IFolder p in parents)
+ {
+ if (rootFolder.Id == p.Id)
+ {
+ found = true;
+ break;
+ }
+ }
+ Assert.True(found);
+
folder.Delete(true);
try
@@ -326,5 +410,26 @@ namespace DotCMISUnitTest
}
catch (CmisObjectNotFoundException) { }
}
+
+ [Test]
+ public void SmokeTestContentChanges()
+ {
+ if (Session.RepositoryInfo.Capabilities.ChangesCapability != null)
+ {
+ if (Session.RepositoryInfo.Capabilities.ChangesCapability != CapabilityChanges.None)
+ {
+ IChangeEvents changeEvents = Session.GetContentChanges(null, true, 1000);
+ Assert.NotNull(changeEvents);
+ }
+ else
+ {
+ Console.WriteLine("Content changes not supported!");
+ }
+ }
+ else
+ {
+ Console.WriteLine("ChangesCapability not set!");
+ }
+ }
}
}
Modified: chemistry/dotcmis/trunk/NOTICE
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/NOTICE?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/NOTICE (original)
+++ chemistry/dotcmis/trunk/NOTICE Thu Mar 3 16:52:32 2011
@@ -1,2 +1,2 @@
-DotCMIS
+Apache Chemistry DotCMIS
Copyright 2009-2011 The Apache Software Foundation
\ No newline at end of file
Modified: chemistry/dotcmis/trunk/README
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/README?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/README (original)
+++ chemistry/dotcmis/trunk/README Thu Mar 3 16:52:32 2011
@@ -1 +1,30 @@
-DotCMIS 0.1
\ No newline at end of file
+Apache Chemistry DotCMIS 0.1
+============================
+
+Apache Chemistry DotCMIS is a Content Management Interoperability Services (CMIS)
+client library for the .NET framework 3.5 or higher.
+
+See http://chemistry.apache.org/dotnet/dotcmis.html for more information.
+
+See http://chemistry.apache.org/dotnet/getting-started-with-dotcmis.html for code samples.
+
+
+This is the very first release of DotCMIS. All CMIS operations and both bindings have
+been implemented. The API is complete and is not supposed to change in following releases.
+The most frequently used operations have been successfully tested against a small number
+of repositories from different vendors.
+
+However, the current test coverage is not sufficient to identify all kinds of problems and
+compatibility issues. The code base will be tested and improved in the following releases.
+If you find a problem, please let us know: https://issues.apache.org/jira/browse/CMIS
+
+
+Known stumbling blocks
+----------------------
+
+- The Web Services binding only works with HTTPS. The .NET framework does not allow calls
+ with UsernameTokens over plain HTTP.
+
+- Not all CMIS Web Services endpoints are compatible with the .NET framework for a number
+ of reasons. Use the AtomPub binding if available. It's also faster.
+
Modified: chemistry/dotcmis/trunk/release.bat
URL: http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/release.bat?rev=1076677&r1=1076676&r2=1076677&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/release.bat (original)
+++ chemistry/dotcmis/trunk/release.bat Thu Mar 3 16:52:32 2011
@@ -1,9 +1,30 @@
@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one
+rem or more contributor license agreements. See the NOTICE file
+rem distributed with this work for additional information
+rem regarding copyright ownership. The ASF licenses this file
+rem to you under the Apache License, Version 2.0 (the
+rem "License"); you may not use this file except in compliance
+rem with the License. You may obtain a copy of the License at
+rem
+rem http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing,
+rem software distributed under the License is distributed on an
+rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+rem KIND, either express or implied. See the License for the
+rem specific language governing permissions and limitations
+rem under the License.
+rem
+
rem This batch file creates a release.
rem It requires Cygwin.
-set DOTCMISZIP=dotcmis-0.1.zip
+set DOTCMISVERSION=0.1
+set DOTCMISZIP=chemistry-dotcmis-%DOTCMISVERSION%.zip
+set DOTCMISRC=RC1
echo Building...
cd DotCMIS
@@ -25,11 +46,11 @@ copy DotCMIS\bin\Release\DotCMIS.dll rel
copy DotCMIS\doc\DotCMISDoc.chm release
echo Copying source...
-mkdir release\source
-xcopy DotCMIS release\source /E
-rmdir /S /Q release\source\bin
-rmdir /S /Q release\source\obj
-rmdir /S /Q release\source\doc
+mkdir release\src
+xcopy DotCMIS release\src /E
+rmdir /S /Q release\src\bin
+rmdir /S /Q release\src\obj
+rmdir /S /Q release\src\doc
echo Creating release file...
del %DOTCMISZIP%
@@ -41,4 +62,9 @@ echo Signing release file...
gpg --armor --output %DOTCMISZIP%.asc --detach-sig %DOTCMISZIP%
gpg --print-md MD5 %DOTCMISZIP% > %DOTCMISZIP%.md5
gpg --print-md SHA512 %DOTCMISZIP% > %DOTCMISZIP%.sha
+gpg --print-md MD5 %DOTCMISZIP%.asc > %DOTCMISZIP%.asc.md5
+gpg --print-md SHA512 %DOTCMISZIP%.asc > %DOTCMISZIP%.asc.sha
+
+echo Creating RC tag
+rem svn copy https://svn.apache.org/repos/asf/chemistry/dotcmis/trunk https://svn.apache.org/repos/asf/chemistry/dotcmis/tags/chemistry-dotcmis-%DOTCMISVERSION%-%DOTCMISRC%