jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Boston <...@tfd.co.uk>
Subject Re: Get JackrabbitSession with Jackrabbit-JCA on Glassfish
Date Fri, 26 Nov 2010 11:45:10 GMT

On 26 Nov 2010, at 11:05, Stefan Hagedorn wrote:

> Hi,
> 
> I am running my application that uses the Jackrabbit repository on a Glassfish v3 application
server. I am using jackrabbit-jca 2.1.0
> 
> In order to use jackrabbit ACLs I am doing
> 
> Session s = repo.login(...);
> UserManager umngr = ((JackrabbitSession) s).getUserManager();
> 
> But this cast is not possible and throws an exception:
> 
> java.lang.ClassCastException: org.apache.jackrabbit.jca.JCASessionHandle cannot be cast
to org.apache.jackrabbit.api.JackrabbitSession
> 
> 
> So, could anyone please tell me how to receive an JackrabbitSession object (or any other
way to get the user manager)?

Looks like JCA is putting a wrapper around the session, if JCASessionHandle does not have
an exposed method to get the JackrabbitSession or the class definition that was used to create
the JackrabbitSession is not available to the classloader you are working in then you might
be able to do it with reflection. (IIRC Glassfish v3 is OSGi based, is JackrabbitSession exported
from its bundle ?)

In Apache Sling (also OSGi based), AccessControlUtils in the server bundle does just this,
although there isn't the added complexity of JCA.

HTH
Ian

> 
> Regards,
> Stefan


Mime
View raw message