I did write some tapestry components to search, display, upload, modify 
contents in a JCR repository, but after we loaded a few hundred images into the 
repo, our application slowed to a crawl.  The problem (and it's a common one 
for many repositories) was that to return a content item, the repository has to 
retrieve all attributes for the node, and this was a separate select statement. 
 So if your repository has 100 images in it, it would be doing 100+ sql queries 
to build up the nodes.  Once it's loaded, it can be cached, but this was not a 
viable option since performance was critical for me, and we have 1000's of 
images.

I am just sharing my experience with you so that you consider the performance 
of returning 100 thumbnails on your tapestry page in your design.

In the end, I wrote my tapestry components access a SpringService that sits on 
top of a compass/lucene file system repository for images, content.  The 
SpringService is remotable so that I have many application servers running 
against the central repository server.  Next on the roadmap is to implement the 
backend storage to be amazon s3.  Performance is good because for example, all 
the information to display a image is returned in a single lucene document.  
meta information for the content is stored in the filesystem as xml files.

Phillip

----- Original Message -----
From: "Ulrich Stärk" <[EMAIL PROTECTED]>
To: "Tapestry users" <users@tapestry.apache.org>
Sent: Friday, December 7, 2007 9:45:01 AM (GMT-0500) America/New_York
Subject: Re: Web Content Management Systems

You could write some components against the JCR API and access the 
underlying repository Magnolia uses (I don't know if this is possible 
with OpenCms).
Have a look at the Jackrabbit website (that's the repository 
implementation Magnolia uses) to learn how to register the repository 
with JNDI. Then just configure Magnolia to use that one instead of the 
preconfigured location. Afterwards you are able to also access the 
repository from your tapestry webapp with a JNDI lookup. This approach 
has some security flaws though. Magnolia has its own security checks and 
connects to the repository through just one user. If you access the 
repository directly you bypass Magnolias security layer.
The Jackrabbit website shows how to register the repository with JNDI in 
the local web context. So you only have access to the repository in the 
context where you registered it. In order to have your Tapestry app and 
Magnolia live in different contexts and still access the same repository 
you will have to register it globally thus making it available to ALL 
contexts in your container. In combination with the above mentioned this 
can have serious impacts on security. So be careful what you do.

Cheers,

Uli

unimatrixzero schrieb:
> Hi!
> 
> I'm currently testing a few Open Source WCMS Systems like OpenCms and
> Magnolia (Java based).
> All this WCMS using JSP's for Templates (together with a own Taglib) and
> Magnolia stores the Content
> in an JSR-170 Java Content Repository. I'm wondering if it is possible to
> integrate some Content
> from this Content Management System into a Tapestry Application. Goal would
> be that the user
> is able to modify content in the Content Management System (like writing an
> article or adding a picture)
> and this content could be then included in Tapestry. Is this in some way
> possible?
> One of the greatest problems is that Tapestry uses his own kind of templates
> and OpenCms and Magnolia the JSP ones.
> Do you think there is a way to integrate this two things?
> 
> Maybe you could help me.
> Thank you in advance.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to