ServiceLoginUtil.java 3.13 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.jcr.RepositoryException
 *  javax.jcr.Session
 *  org.apache.sling.api.resource.LoginException
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.resource.ResourceResolverFactory
 *  org.apache.sling.jcr.api.SlingRepository
 */
package com.day.cq.workflow.impl;

import java.util.Collections;
import java.util.Map;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.jcr.api.SlingRepository;

public class ServiceLoginUtil {
    private static final String WORKFLOW_SERVICE = "workflow";
    private static final String WORKFLOW_USER_READER_SERVICE = "workflow-user";
    private static final String REPOSITORY_READER_SERVICE = "repo-reader";

    public static Session createWorkflowServiceSession(SlingRepository repository) {
        try {
            return repository.loginService("workflow", null);
        }
        catch (RepositoryException e) {
            throw new RuntimeException("Unable to create workflow service session.", (Throwable)e);
        }
    }

    public static Session createWorkflowUserReaderSession(SlingRepository repository) {
        try {
            return repository.loginService("workflow-user", null);
        }
        catch (RepositoryException e) {
            throw new RuntimeException("Unable to create workflow user reader service session.", (Throwable)e);
        }
    }

    public static Session createRepositoryReaderSession(SlingRepository repository) {
        try {
            return repository.loginService("repo-reader", null);
        }
        catch (RepositoryException e) {
            throw new RuntimeException("Unable to create repository reader service session.", (Throwable)e);
        }
    }

    public static ResourceResolver createWorkflowServiceResolver(ResourceResolverFactory factory) {
        try {
            return factory.getServiceResourceResolver(Collections.singletonMap("sling.service.subservice", "workflow"));
        }
        catch (LoginException e) {
            throw new RuntimeException("Unable to create workflow service resolver.", (Throwable)e);
        }
    }

    public static ResourceResolver createWorkflowUserReaderResolver(ResourceResolverFactory factory) {
        try {
            return factory.getServiceResourceResolver(Collections.singletonMap("sling.service.subservice", "workflow-user"));
        }
        catch (LoginException e) {
            throw new RuntimeException("Unable to create workflow user reader service resolver.", (Throwable)e);
        }
    }

    public static ResourceResolver createRepositoryReaderResolver(ResourceResolverFactory factory) {
        try {
            return factory.getServiceResourceResolver(Collections.singletonMap("sling.service.subservice", "repo-reader"));
        }
        catch (LoginException e) {
            throw new RuntimeException("Unable to create repository reader resolver.", (Throwable)e);
        }
    }
}