jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kenneth Yue <Kenneth....@Sun.COM>
Subject Re: How to replace RMI with WebDAV?
Date Fri, 04 Sep 2009 16:50:36 GMT
Any ideas?  I'm beginning to think this may be a bug. 
org.apache.jackrabbit.jcr2spi.RepositoryImpl.java expects a 
javax.naming.spi.ObjectFactory implementation, but I looked over the 
entire Jackrabbit workspace and found only the following classes 
implement javax.naming.spi.ObjectFactory:

org.apache.jackrabbit.core.jndi.BindableRepositoryFactory
org.apache.jackrabbit.jcr2spi.RepositoryImpl$Factory
org.apache.jackrabbit.rmi.client.ClientRepositoryFactory

BindableRepositoryFactory and ClientRepositoryFactory are unrelated to 
WebDAV.  RepositoryImpl$Factory is, well, the code that's doing the 
checking,  So is the code looking for itself???  How does the code 
expect users to use it?  Does the code expect users to write their own 
ObjectFactory implementation and plug it in?  Then how exactly is 
org.apache.jackrabbit.client.RepositoryFactoryImpl useful?

What do you all think?  Thanks.

Ken

Kenneth Yue wrote:
> All,
> 
> I'm trying to replace, in my META-INF/context.xml,
> 
>   <Resource name="jcr/repository"
>             auth="Container"
>             type="javax.jcr.Repository"
> 
> factory="org.apache.jackrabbit.rmi.client.ClientRepositoryFactory"
>             url="rmi://localhost:1099/jackrabbit.repository"/>
> 
> by
> 
>   <Resource name="jcr/repository"
>             auth="Container"
>             type="org.apache.jackrabbit.jcr2spi.RepositoryImpl"
>             factory="org.apache.jackrabbit.jcr2spi.RepositoryImpl$Factory"
> 
> org.apache.jackrabbit.jcr2spi.RepositoryImpl.factory="org.apache.jackrabbit.client.RepositoryFactoryImpl"

> 
> 
> org.apache.jackrabbit.jcr2spi.RepositoryImpl.class="org.apache.jackrabbit.client.spi2dav.RepositoryConfigImpl"

> 
> 
> org.apache.jackrabbit.repository.spi2dav.uri="http://localhost:8080/jackrabbit/server"/>

> 
> 
> but this doesn't work because 
> org.apache.jackrabbit.client.RepositoryFactoryImpl doesn't implement 
> javax.naming.spi.ObjectFactory, which lines 249-251 of 
> org.apache.jackrabbit.jcr2spi.RepositoryImpl.java is looking for.  So 
> how do I replace RMI with WebDAV without "import 
> org.apache.jackrabbit..." in my code?  Thanks in advance.
> 
> Ken
> 


Mime
View raw message