On Thu, Jul 23, 2009 at 9:34 PM, D. Stuart
Freeman<stuart.free...@et.gatech.edu> wrote:
> Is there a way from within an osgi bundle to get a jcr node by path if I
> don't have access to the request object?

For getting direct access to the repository and the JCR API, use the
SlingRepository service, which is an extension of the
javax.jcr.Repository with admin-login capabilities (if you don't need
that, you can simply use Repository as service reference). Assuming
you are in a component/service and use the SCR annotations, this would
look like:

    /** @scr.reference */
    protected SlingRepository repository;

    public void jcrMethod() {
        // uses admin credentials from sling repository component
config, use with care!
        Session adminSession = repository.loginAdministrative(null);
        ...
        // manual login
        Session session = repository.login(new
SimpleCredentials("user", "password");
    }

If you want to use the Sling resource API for JCR nodes, you can
create your own resource resolver from an existing JCR session:

    /** @scr.reference */
    protected JcrResourceResolverFactory jcrResourceResolverFactory;

    public void resourceMethod(Session session) {
        ResourceResolver resolver =
jcrResourceResolverFactory.getResourceResolver(session);
        Resource res = resolver.getResource("/some/path");
        ....
    }

Regards,
Alex

-- 
Alexander Klimetschek
alexander.klimetsc...@day.com

Reply via email to