SessionUtil.java 2.26 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.jcr.Session
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.Service
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.resource.ResourceResolverFactory
 *  org.apache.sling.jcr.api.SlingRepository
 */
package com.adobe.aemfd.watchfolder.util;

import java.util.HashMap;
import java.util.Map;
import javax.jcr.Session;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.jcr.api.SlingRepository;

@Component(immediate=1)
@Service(value={SessionUtil.class})
public class SessionUtil {
    @Reference
    private SlingRepository slingRepository;
    @Reference
    private ResourceResolverFactory resourceResolverFactory;

    public Session getServiceSession(String subSvcName) throws Exception {
        return this.slingRepository.loginService(subSvcName, null);
    }

    public ResourceResolver getServiceResolver(String subSvcName) throws Exception {
        HashMap<String, String> authInfo = null;
        if (subSvcName != null) {
            authInfo = new HashMap<String, String>();
            authInfo.put("sling.service.subservice", subSvcName);
        }
        return this.resourceResolverFactory.getServiceResourceResolver(authInfo);
    }

    protected void bindSlingRepository(SlingRepository slingRepository) {
        this.slingRepository = slingRepository;
    }

    protected void unbindSlingRepository(SlingRepository slingRepository) {
        if (this.slingRepository == slingRepository) {
            this.slingRepository = null;
        }
    }

    protected void bindResourceResolverFactory(ResourceResolverFactory resourceResolverFactory) {
        this.resourceResolverFactory = resourceResolverFactory;
    }

    protected void unbindResourceResolverFactory(ResourceResolverFactory resourceResolverFactory) {
        if (this.resourceResolverFactory == resourceResolverFactory) {
            this.resourceResolverFactory = null;
        }
    }
}