You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Kenneth Yue <Ke...@Sun.COM> on 2009/09/04 18:50:36 UTC

Re: How to replace RMI with WebDAV?

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
> 


Re: How to replace RMI with WebDAV?

Posted by Kenneth Yue <Ke...@Sun.COM>.
Alexander Klimetschek wrote:
> On Fri, Sep 4, 2009 at 6:50 PM, Kenneth Yue<Ke...@sun.com> wrote:
>> 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.
> 
> Maybe this thread helps: http://markmail.org/message/4oy65gmvjttg42ht

Unfortunately it doesn't help.  I was the one who started that thread 
and the one who ended that thread by posting the last message:

http://markmail.org/message/r5jbob2f7pob77k7

I added the request of an ObjectFactory implementation to 
https://issues.apache.org/jira/browse/JCR-1877 but this issue has been 
fixed still without an ObjectFactory implementation.  :-(

There is a related issue https://issues.apache.org/jira/browse/JCR-2041 
which is also marked as fixed.  But again, still no ObjectFactory 
implementation.

I would love to have someone explaining to me what the logic in 
RepositoryImpl$Factory is.  Why is it checking for an ObjectFactory 
implementation while none exists (besides BindableRepositoryFactory and 
ClientRepositoryFactory which are totally unrelated)?  Thanks.

Regards,

Ken

Re: How to replace RMI with WebDAV?

Posted by Alexander Klimetschek <ak...@day.com>.
On Fri, Sep 4, 2009 at 6:50 PM, Kenneth Yue<Ke...@sun.com> wrote:
> 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.

Maybe this thread helps: http://markmail.org/message/4oy65gmvjttg42ht

Regards,
Alex


-- 
Alexander Klimetschek
alexander.klimetschek@day.com