You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Lubos and Alena Pochman <po...@gmail.com> on 2007/02/27 19:16:44 UTC

How to communicate between repository client and server with only JCR, JSR-170 API

Hi,

I started exploring Jackrabbit and went over FirsHop, SecondHop, ThirdHop
examples.

I also deployed jackrabbit-webapp-1.2.2 servlet with WebDav repository
server (can see it in DAV Explorer)
over http://localhost:8080/jackrabbit-webapp-1.2.2/repository/default/,
http://localhost:8080/jackrabbit-webapp-1.2.2/server.

FirsHop, SecondHop, ThirdHop examples use TransientRepository(), and I have
modified the jackrabbit server webapp
and the ...Hop examples to use the server with creating repository like
this:

        String repoName = "rmi://localhost:5999/jackrabbit.repository";
        ClientRepositoryFactory factory = new ClientRepositoryFactory();
        Repository repository = factory.getRepository(repoName);

The problem is that ClientRepositoryFactory is Jackrabbit implementation not
a JCR, JSR-170.
I would prefer to avoid RMI (but can live with it), and I would like client
to be CMS neutral, do not use Jackrabbit, but use only
JCR, JSR-170 complaint API.

Is there a way?

Thanks, Lubos Pochman

Re: Communicating with a remote Jackrabbit repository

Posted by Florent Guillaume <fg...@nuxeo.com>.
Hi Dhanasekar,

The Jackrabbit lists won't know anything about deploying Nuxeo, so it's 
best to ask on the Nuxeo lists.

Nuxeo EP currently only uses Jackrabbit as an in-process repository. You 
can't connect to a "remote" repository (and how do you define "remote"? 
using what protocol?).

Note however that Nuxeo EP can be spread onto several machines, with the 
Nuxeo EP core and Jackrabbit on one machine to serve as the core 
document manangement instance, and a Nuxeo EP webapp on another machine, 
connecting to the core machine using Nuxeo Runtime remoting.

Florent


dhanasekar wrote:
> Could you please help me in the resolution of the below issue being faced by
> me:
> 
> I'd like to make Nuxeo EP talk to a remote Jackrabbit repository. I've
> Jackrabbit 1.3.3 running on Tomcat 6.x at port 8090. I do have Nuxeo 5.1.2
> GA running on JBoss server at port 8080. What are the config changes
> necessary to make this happen. 
> 
> I'hv set up a new repository configuration and in the nuxeo.ear/config
> folder I'hv created 
>     1 . MyRepo-repositoy-config.xml Add the new repository configuration 
>     2 . MyPlatform-Layout-config.xml Declare the new repository to the
> platform 
>     3 . myrepo-ds.xml Registering our Repository 
> After logging in to Nuxeo, I can see the new repository in the webpage and
> also able to save and retrieve the document locally. By default Repository
> is stored inside "server/default/data/nxruntime/repos" folder. 
> 
> In order to access the repository remotely, I'hv created repository in a
> different machine under "C:/Repository" by deploying
> jackrabbit-jca-1.2.3.rar in Jboss server. 
> 
> The problem arises when I try to store and retrieve the documents in the
> newly created repository in the other machine from Nuxeo server running in
> my machine. 
> 
> It doesn't store and retrieve the document in the other machine, but uses my
> machine to store and retrieve document in
> "server/default/data/nxruntime/repos/MyRepo" folder in my machine. 


-- 
Florent Guillaume, Director of R&D, Nuxeo
Open Source Enterprise Content Management (ECM)
http://www.nuxeo.com   http://www.nuxeo.org   +33 1 40 33 79 87

Communicating with a remote Jackrabbit repository

Posted by dhanasekar <dh...@gmail.com>.
Could you please help me in the resolution of the below issue being faced by
me:

I'd like to make Nuxeo EP talk to a remote Jackrabbit repository. I've
Jackrabbit 1.3.3 running on Tomcat 6.x at port 8090. I do have Nuxeo 5.1.2
GA running on JBoss server at port 8080. What are the config changes
necessary to make this happen. 

I'hv set up a new repository configuration and in the nuxeo.ear/config
folder I'hv created 
    1 . MyRepo-repositoy-config.xml Add the new repository configuration 
    2 . MyPlatform-Layout-config.xml Declare the new repository to the
platform 
    3 . myrepo-ds.xml Registering our Repository 
After logging in to Nuxeo, I can see the new repository in the webpage and
also able to save and retrieve the document locally. By default Repository
is stored inside "server/default/data/nxruntime/repos" folder. 

In order to access the repository remotely, I'hv created repository in a
different machine under "C:/Repository" by deploying
jackrabbit-jca-1.2.3.rar in Jboss server. 

The problem arises when I try to store and retrieve the documents in the
newly created repository in the other machine from Nuxeo server running in
my machine. 

It doesn't store and retrieve the document in the other machine, but uses my
machine to store and retrieve document in
"server/default/data/nxruntime/repos/MyRepo" folder in my machine. 
-- 
View this message in context: http://www.nabble.com/How-to-communicate-between-repository-client-and-server-with-only-JCR%2C-JSR-170-API-tp9188442p14599118.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: How to communicate between repository client and server with only JCR, JSR-170 API

Posted by Marcel Reutegger <ma...@gmx.net>.
David Nuescheler wrote:
> As Tobi mentioned there is an option of remoting JCR through RMI as one
> option in Jackrabbit. The SPI contrib also offers a remoting through 
> WebDAV as
> an alternative way of communicating a JCR client with a Jackrabbit 
> Instance.

speaking of remoting, the spi contrib now also contains a spi-rmi layer. which 
means you can now do the following:


     ------------------  JCR API
             |
     +----------------+
     |    JCR2SPI     |
     +----------------+
             |
     ------------------  SPI
             |
     +----------------+
     |    SPI-RMI     |
     +----------------+
             |
     ------------------  SPI
             |
     +----------------+
     |    SPI2JCR     |  (this one is also new)
     +----------------+
             |
     ------------------  JCR API
             |
     +----------------+
     |   Jackrabbit   |  (or any other JCR repo)
     +----------------+

just as an alternative, if you don't like WebDAV ;)

regards
  marcel

Re: How to communicate between repository client and server with only JCR, JSR-170 API

Posted by David Nuescheler <da...@gmail.com>.
hi,

> the rmi implementation is jcr neutral, if you don't want to use RMI,
> you need to run your application in the same VM as the repository.
> the problem is, that jsr170 does not specify any remoting protocol.
> but this will change in jsr283 (jcr2.0) which defines (among other new
> stuff) a SPI.

JCR is an API and as much as JDBC does not specify a transport
protocol JCR should not do that either.

The expert group of JSR-283 decided that the SPI is out of
scope for the core JCR spec and that's also why the development
of the SPI is progressing very quickly as a part of the Jackrabbit project.
I very much agree with this decision.

As Tobi mentioned there is an option of remoting JCR through RMI as one
option in Jackrabbit. The SPI contrib also offers a remoting through WebDAV as
an alternative way of communicating a JCR client with a Jackrabbit Instance.

regards,
david

Re: How to communicate between repository client and server with only JCR, JSR-170 API

Posted by Tobias Bocanegra <to...@day.com>.
the rmi implementation is jcr neutral, if you don't want to use RMI,
you need to run your application in the same VM as the repository.

the problem is, that jsr170 does not specify any remoting protocol.
but this will change in jsr283 (jcr2.0) which defines (among other new
stuff) a SPI.

regards, toby

On 2/27/07, Lubos and Alena Pochman <po...@gmail.com> wrote:
> Hi,
>
> I started exploring Jackrabbit and went over FirsHop, SecondHop, ThirdHop
> examples.
>
> I also deployed jackrabbit-webapp-1.2.2 servlet with WebDav repository
> server (can see it in DAV Explorer)
> over http://localhost:8080/jackrabbit-webapp-1.2.2/repository/default/,
> http://localhost:8080/jackrabbit-webapp-1.2.2/server.
>
> FirsHop, SecondHop, ThirdHop examples use TransientRepository(), and I have
> modified the jackrabbit server webapp
> and the ...Hop examples to use the server with creating repository like
> this:
>
>         String repoName = "rmi://localhost:5999/jackrabbit.repository";
>         ClientRepositoryFactory factory = new ClientRepositoryFactory();
>         Repository repository = factory.getRepository(repoName);
>
> The problem is that ClientRepositoryFactory is Jackrabbit implementation not
> a JCR, JSR-170.
> I would prefer to avoid RMI (but can live with it), and I would like client
> to be CMS neutral, do not use Jackrabbit, but use only
> JCR, JSR-170 complaint API.
>
> Is there a way?
>
> Thanks, Lubos Pochman
>


-- 
-----------------------------------------< tobias.bocanegra@day.com >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---