portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edgar Poce" <edgarp...@gmail.com>
Subject jcr page manager
Date Tue, 29 May 2007 13:25:42 GMT
Hello,

  I'm working in a page manager backed by jcr called JcrPageManager.
It is an extension of CastorXmlPersistenceManager but I'm not sure
whether it's a good idea to extend it because
CastorXmlPersistenceManager uses a FileCache which is unusable by a
JCR implementation. I guess this problem can be solved by implementing
a  PageManager which doesn't inherit from CastorXmlPageManager but I'd
like to reuse as much code as possible, WDYT?, how should I implement
a cache for the JCRPageManager? Any help is highly appreciated.

You'll find some implementation details bellow, in case there's
interest I'd be happy to contribute the code to jetspeed. The code can
be downloaded from http://code.google.com/p/jcr-portlets/

Br,
Edgar

Some details about the JCRPageManager:

1. The mapping rules are read from the castor mapping file. A
converter class is responsible of converting j2 objects to jcr nodes
and viceversa based on these rules.

2. The PageManager is an extension of CastorXmlPageManager. The only
difference with its superclass is that JCrPageManager takes a file
based CastorXmlPageManager instance as a constructor argument. In case
the site doesn't exist in jcr then JCRPageManager copies the entire
site from the file system to the underlying JCR implementation.

3. The FolderHandler given to the JcrpageManager is a JCR based implementation.

4. The DocumentHandler given to the JcrPageManager is a JCR based
implementation.

5. The repository is accessed via a JcrProvider. I implemented two
strategies, the first uses jndi and the other instantiates jackrabbit.

6. The configuration is handled via Spring, I made a
jcr-page-manager.xml as a replacement for the default configuration
file.

The current implementation still lacks the following features:

1. Cache

2. Use the same authentication mechanism to login to the repository
than jetspeed.
   I guess it can be achieved by configuring jackrabbit to use the
jetspeed jaas login module but didn't try it yet.

3. Create j2 specific nodetypes, for the moment every node is created
with nt:unstructured as the primary type.

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message