cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject CVS Source (was Re: [ANNOUNCE] CVSView, a server-side CVS repository generator.)
Date Tue, 31 Dec 2002 21:19:31 GMT
Steven Noels wrote:

> Stefano Mazzocchi wrote:
>> The reason for this is that I would love to be able to have a running 
>> cocoon publish documents *directly* from CVS, that is use CVS as a 
>> versioning content repository, which is the step one toward a 
>> poor-man (but not so poor on functionality!) CMS.
> Writeable and all: 

Thanks for the plug, Steven :-)

Some details on this stuff : it's a Source that implements 
WriteableSource, TraversableSource and partially RevisableSource. It is 
connected "live" to the CVS server and thus doesn't require a 
file-accessible repository (like JRCS does) nor a local checkout.

I needed that for one of our projects : this is a lightweight CMS which 
allows users to edit XML documents stored in a CVS repository. An 
explorer-like web GUI allows users to checkout the latest version of 
documents either as MS-Word or OpenOffice documents (hence the 
ZipArchiveSerializer). When users have finished editing a document, they 
upload the modified word or OO file to the web application, which then 
extracts the content as XML data and creates a new version on the CVS 

I studied the various opensource Java CVS clients available, and found 
only 3 :
- Netbeans javacvs (,
- Eclipse CVS plugin,
- JCVS (

Netbeans and Eclipse modules require local checkouts and this wasn't 
suitable for my needs since users may have different access rights on 
the CVS repository. Using a live connection to the CVS server, each user 
uses its own credential for authentication and authorization directly on 
the CVS server. The Eclipse plugin is also very tied to the Eclipse 
environment, and I didn't want to pull too much stuff for just the CVS 
access functionality.

JCVS is the only one that is not tied to a local checkout, so this is 
what I used. It is composed of a GPL'ed Swing GUI using a LGPL'ed 
implementation of the pserver protocol.

It works, but I'm not very happy with it since the pserver 
implementation is still conceptually tied to a CVS GUI and required some 
hacks to function properly. So I'm considering rewriting a pserver 
implementation (it's not very hard) that could be used both for the CVS 
Source and for a VFS provider (see

I will make this CVSSource available after my holidays (needs some 
polishing), but it won't be possible to include it in Cocoon's CVS since 
it currently relies on some LGPL stuff.

For the explorer-like GUI, I wrote a modified version of the 
DirectoryGenerator that relies on TraversableSources rather than files. 
It can thus be used with files, cvs repositories, slide repositories, 
etc, which has no link on the LGPL'ed stuff.

The end of the year is near (european time), so I wish you all a happy 
new year, a lot of happiness personally, professionally and... 
cocoonally ;-)


Sylvain Wallez                                  Anyware Technologies 
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }

To unsubscribe, e-mail:
For additional commands, email:

View raw message