Hello all,

Got no answer from the users list on this issue. When accessing a remote JCA-deployed Jackrabbit, a repository is created on the client machine (see below for details).

Regards,

Edouard

---------- Forwarded message ----------
From: Edouard Hue <edouard.hue@gmail.com>
Date: Wed, Jun 1, 2011 at 2:35 PM
Subject: Strange behavior with JCA adapter
To: users@jackrabbit.apache.org


Hello all,

I'm trying to deploy Jackrabbit 2.3-SNAPSHOT into a Jonas 5.1 application server as a JCA resource. The RAR deploys OK and shows up in JNDI. Then I try to access the repository through RMI, using Jonas' Carol RMI implementation, with the code below :

final JndiRepositoryFactory factory = new JndiRepositoryFactory();
final Map<String, String> parameters = new HashMap<String, String>() {{
    put(JndiRepositoryFactory.JNDI_NAME, "rbus");
    put(Context.INITIAL_CONTEXT_FACTORY, "org.ow2.carol.jndi.spi.IRMIContextWrapperFactory");
    put(Context.PROVIDER_URL, "rmi://bo-app-01.ipop.proj.aql.fr:1091");
}};
repo = factory.getRepository(parameters);

I run this code on a client machine running Windows. Jonas is running on a remote Linux machine. The logs show the two lines below :

1 juin 2011 11:24:05 org.slf4j.impl.JCLLoggerAdapter info
INFO: Creating repository directory \var\opt\data\flat\rbus\jcr
1 juin 2011 11:24:05 org.slf4j.impl.JCLLoggerAdapter info
INFO: Copying configuration from jar:file:/I:/Maven/org/apache/jackrabbit/jackrabbit-core/2.3-SNAPSHOT/jackrabbit-core-2.3-SNAPSHOT.jar!/org/apache/jackrabbit/core/repository.xml to \opt\application\rbus\current\etc\repository.xml

The two pathes \var\opt\data\flat\rbus\jcr and \opt\application\rbus\current\etc\repository.xml are defined in the RAR deployment descriptor. I expected the repository to be created and accessed remotely on the server, but it appears that it is created locally on the client machine ! Is this really the way it should work ?

Regards,

Edouard