Hi all,

I am trying to integrate JCR into an existing java application deployed within 
Tomcat, and I am struggling to find docs that describe how to do this.

We want to follow the JCR architecture and not hardcode the implementation into 
the app, and so we try pick up a JCR implementation from JNDI, like so (snip 
error handling):

                        InitialContext context = new InitialContext();
                        Object obj = context.lookup("java:comp/env");
                        javax.naming.Context environment = 
javax.naming.Context.class.cast(obj);
                        obj = environment.lookup("jcr/repository");
                        Repository repository = Repository.class.cast(obj);

Now we go to tomcat, and we set up a resourcelink:

          <ResourceLink global="jcr/GlobalRepository" name=“jcr/AppRepository" 
type="javax.jcr.Repository"/>

which points to a resource:

    <Resource 
        name="jcr/GlobalRepository"
        auth="Container"
        type="javax.jcr.Repository" 
        factory=“[Something undocumented goes here]" 
        url="[The RMI URL of the repository]"

I am stuck at "Something undocumented goes here”.

Most specifically, I need a factory that will allow me to set an URL, pointing 
at the WebDav interface of the repository, but I'm hitting a wall. A local 
repository is available for testing purposes which is nice, but that doesn’t 
help for an actual implementation.

This question was raised a long time ago, which led to this ticket 
https://issues.apache.org/jira/browse/JCR-1877 marked fixed, but it’s not clear 
what the fix was, or where the fix was documented.

This factory comes close: 
https://jackrabbit.apache.org/api/trunk/index.html?org/apache/jackrabbit/jcr2dav/package-summary.html
 - but it documents three possible different URLs to be provided, which doesn't 
map to the resource element, which only has the option to provide one url.

Are there any complete examples of a JCR implementation using JNDI and 
Jackrabbit as a client?

All I can find are references to people hard coding Jackrabbit into their app, 
which breaks the architecture: org.apache.jackrabbit.commons.JcrUtils

Regards,
Graham
—

Reply via email to