Skip to content

Commit

Permalink
working towards broader coverage
Browse files Browse the repository at this point in the history
This one basically adds support for Alfresco's new cmis endpoint based
on Apache Chemistry Open Cmis bindings while still retaining
functionality for the old one. Some people might still like talking to
the now deprecated old cmis endpoint as it might still offer features
not yet covered by Open Cmis.

Support for Nuxeo is there now.

With it comes a rework of the authentication services part when
allocating a rest client. We have

- basic auth (as before),

- cookie based authentication

- token based auth

- header based auth (experimental)

The test suite now tries to document features broken in some repositories
that can't be tested by us here successfully. As we still want our tests
to cope with it there's a list of brokenFeatures keeping track of vendors and
product versions. Each breakackage comes with a link pointing to the filed
bug report as possible, e.g. ALF-19186, ALF-19186. In some cases I am really
not sure how to deal with bugs which might simply be incompatibilities among
repositories or due to my misunderstanding the CMIS specs.

We've got a new test dependency: XML::SemanticDiff. It helped to figure out
some problematic cases, but I might take that stuff out on a later point again.

I've added a way to deal with getSummary() / updateSummary() in a reasonable way.
These two accessed the atom summary of an entry. I'd expect that vendors make use
of as much atom features as possible while mapping their document model onto CMIS.
Unfortunately they don't. For one the old web scripts based Alfresco bindings did
just fine, whereas the new Open CMis based ones put them somewhere else inside
alfresco-specific nodes, a regression.

Nuxeo goes with Dublin Core which makes more sense in my book.  As
gettign a document's tag line seems quite important I tried to smoothen that out
in the client bindings, which sucks of course. At least I was able to read/write
a document's description again on Nuxeo, while getting back read-only on Alfresco
again (Open CMIS bindings).
  • Loading branch information
MichaelDaum committed Jul 17, 2013
1 parent d4e71be commit 165ac85
Show file tree
Hide file tree
Showing 74 changed files with 3,865 additions and 1,341 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ cmis.cfg
*.old
WebService-Cmis-*
*.bak
.prove
17 changes: 14 additions & 3 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ inc/Module/Install/WriteAll.pm
inc/WebService/Cmis/Test/ACE.pm
inc/WebService/Cmis/Test/ACL.pm
inc/WebService/Cmis/Test/AtomFeed.pm
inc/WebService/Cmis/Test/ChangeFeed.pm
inc/WebService/Cmis/Test/Basics.pm
inc/WebService/Cmis/Test/Client.pm
inc/WebService/Cmis/Test/Document.pm
Expand All @@ -24,6 +25,7 @@ inc/WebService/Cmis/Test/ObjectType.pm
inc/WebService/Cmis/Test.pm
inc/WebService/Cmis/Test/Property.pm
inc/WebService/Cmis/Test/Repository.pm
inc/WebService/Cmis/Test/Xml.pm
lib/WebService/Cmis/ACE.pm
lib/WebService/Cmis/ACL.pm
lib/WebService/Cmis/AtomEntry.pm
Expand Down Expand Up @@ -53,6 +55,10 @@ lib/WebService/Cmis/Property/String.pm
lib/WebService/Cmis/Relationship.pm
lib/WebService/Cmis/Repository.pm
lib/WebService/Cmis/ServerException.pm
lib/WebService/Cmis/Agent.pm
lib/WebService/Cmis/Agent/BasicAuth.pm
lib/WebService/Cmis/Agent/TokenAuth.pm
lib/WebService/Cmis/Agent/CookieAuth.pm
Makefile.PL
MANIFEST
MANIFEST.SKIP
Expand All @@ -61,19 +67,24 @@ README
SIGNATURE
t/00-load.t
t/00-signature.t
t/01-basics.t
t/02-client.t
t/01-client.t
t/01-xml.t
t/02-basics.t
t/03-object.t
t/04-atom-feed.t
t/04-change-feed.t
t/05-object-type.t
t/06-property.t
t/07-repository.t
t/08-acl.t
t/09-folder.t
t/10-document.t
t/11-ace.t
t/boilerplate.t
t/data/free.jpg
t/data/alfresco-object.xml
t/data/nuxeo-object.xml
t/data/alfresco-folder-parent.xml
t/data/nuxeo-folder-parent.xml
t/manifest.t
t/pod-coverage.t
t/pod.t
2 changes: 2 additions & 0 deletions Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ requires 'LWP::UserAgent' => 0;
requires 'REST::Client' => 0;
requires 'URI' => 0;
requires 'XML::LibXML' => 0;
test_requires 'Cache::FileCache' => 0;
test_requires 'Test::Class' => 0;
test_requires 'Test::DistManifest' => 0;
test_requires 'Test::Pod' => 0;
test_requires 'Test::Pod::Coverage' => 0;
test_requires 'Test::Signature' => 0;
test_requires 'XML::SemanticDiff' => 0;
sign;
WriteAll;
13 changes: 10 additions & 3 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ SYNOPSIS

my $client = WebService::Cmis::getClient(
url => "http://.../alfresco/service/cmis",
);

$client->login(
user => "...",
password => "..."
);

my $repo = $client->getRepository;
my $root = $client->getRootFolder;
...

DESCRIPTION
This library provides a CMIS client library for Perl that can be used to
Expand All @@ -33,11 +35,16 @@ DESCRIPTION
full understanding of what CMIS is.

METHODS
getClient(%args) -> WebService::Cmis::Client
static method to create a cmis client. The client serves as an agent
getClient(%params) -> WebService::Cmis::Client
Static method to create a cmis client. The client serves as an agent
to fulfill all operations while contacting the document management
system.

While passing on all provided parameters to the real client
constructor, the "impl" parameter is used to point to the class that
actually implements the client, defaulting to
WebService::Cmis::Client::BasicAuthClient.

writeCmisDebug($msg)
static utility to write debug output to STDERR. Set the CMIS_DEBUG
environment variable to switch on some additional debug messages.
Expand Down
Loading

0 comments on commit 165ac85

Please sign in to comment.