Search in sources :

Example 26 with LoginException

use of org.apache.sling.api.resource.LoginException in project sling by apache.

the class ScriptCacheImpl method activate.

@Activate
protected void activate(ScriptCacheImplConfiguration configuration, BundleContext bundleCtx) {
    threadPool = threadPoolManager.get("Script Cache Thread Pool");
    bundleContext = bundleCtx;
    additionalExtensions = configuration.org_apache_sling_scripting_cache_additional__extensions();
    int newMaxCacheSize = configuration.org_apache_sling_scripting_cache_size();
    if (newMaxCacheSize != DEFAULT_CACHE_SIZE) {
        // change the map only if there's a configuration change regarding the cache's max size
        CachingMap<CachedScript> newMap = new CachingMap<>(newMaxCacheSize);
        newMap.putAll(internalMap);
        internalMap = newMap;
    }
    ResourceResolver resolver = null;
    try {
        resolver = rrf.getServiceResourceResolver(null);
        searchPaths = resolver.getSearchPath();
    } catch (LoginException e) {
        LOGGER.error("Unable to retrieve a ResourceResolver for determining the search paths.", e);
    } finally {
        if (resolver != null) {
            resolver.close();
        }
    }
    configureCache();
    active = true;
}
Also used : CachingMap(org.apache.sling.scripting.core.impl.helper.CachingMap) CachedScript(org.apache.sling.scripting.api.CachedScript) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) LoginException(org.apache.sling.api.resource.LoginException) Activate(org.osgi.service.component.annotations.Activate)

Example 27 with LoginException

use of org.apache.sling.api.resource.LoginException in project sling by apache.

the class ScriptingResourceResolverProviderImpl method getRequestScopedResourceResolver.

@Override
public ResourceResolver getRequestScopedResourceResolver() {
    ScriptingResourceResolver threadResolver = perThreadResourceResolver.get();
    if (threadResolver == null) {
        try {
            ResourceResolver delegate = rrf.getServiceResourceResolver(null);
            threadResolver = new ScriptingResourceResolver(logStackTraceOnResolverClose, delegate);
            perThreadResourceResolver.set(threadResolver);
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Set per thread resource resolver for thread {}.", Thread.currentThread().getId());
            }
        } catch (LoginException e) {
            throw new IllegalStateException("Cannot create per thread resource resolver.", e);
        }
    }
    return threadResolver;
}
Also used : ResourceResolver(org.apache.sling.api.resource.ResourceResolver) LoginException(org.apache.sling.api.resource.LoginException)

Example 28 with LoginException

use of org.apache.sling.api.resource.LoginException in project sling by apache.

the class SlingServletResolverTest method setUp.

@Before
public void setUp() throws Exception {
    mockResourceResolver = new MockResourceResolver() {

        @Override
        public void close() {
        // nothing to do;
        }

        @Override
        public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
            return null;
        }

        @Override
        public ResourceResolver clone(Map<String, Object> authenticationInfo) throws LoginException {
            throw new LoginException("MockResourceResolver can't be cloned - excepted for this test!");
        }

        @Override
        public void refresh() {
        // nothing to do
        }
    };
    mockResourceResolver.setSearchPath("/");
    final ResourceResolverFactory factory = new ResourceResolverFactory() {

        @Override
        public ResourceResolver getAdministrativeResourceResolver(Map<String, Object> authenticationInfo) throws LoginException {
            return mockResourceResolver;
        }

        @Override
        public ResourceResolver getResourceResolver(Map<String, Object> authenticationInfo) throws LoginException {
            return mockResourceResolver;
        }

        @Override
        public ResourceResolver getServiceResourceResolver(Map<String, Object> authenticationInfo) throws LoginException {
            return mockResourceResolver;
        }

        @Override
        public ResourceResolver getThreadResourceResolver() {
            // TODO Auto-generated method stub
            return null;
        }
    };
    servlet = new MockSlingRequestHandlerServlet();
    servletResolver = new SlingServletResolver();
    Class<?> resolverClass = servletResolver.getClass();
    // set resource resolver factory
    final Field resolverField = resolverClass.getDeclaredField("resourceResolverFactory");
    resolverField.setAccessible(true);
    resolverField.set(servletResolver, factory);
    MockBundle bundle = new MockBundle(1L);
    MockBundleContext bundleContext = new MockBundleContext(bundle) {

        @Override
        public ServiceRegistration registerService(String s, Object o, Dictionary dictionary) {
            return null;
        }

        @Override
        public ServiceRegistration registerService(String[] strings, Object o, Dictionary dictionary) {
            return null;
        }
    };
    MockServiceReference serviceReference = new MockServiceReference(bundle);
    serviceReference.setProperty(Constants.SERVICE_ID, 1L);
    serviceReference.setProperty(ServletResolverConstants.SLING_SERVLET_NAME, SERVLET_NAME);
    serviceReference.setProperty(ServletResolverConstants.SLING_SERVLET_PATHS, SERVLET_PATH);
    serviceReference.setProperty(ServletResolverConstants.SLING_SERVLET_EXTENSIONS, SERVLET_EXTENSION);
    servletResolver.bindServlet(SlingServletResolverTest.this.servlet, serviceReference);
    servletResolver.activate(bundleContext, new SlingServletResolver.Config() {

        @Override
        public Class<? extends Annotation> annotationType() {
            return SlingServletResolver.Config.class;
        }

        @Override
        public String servletresolver_servletRoot() {
            return "0";
        }

        @Override
        public String[] servletresolver_paths() {
            return new String[] { "/" };
        }

        @Override
        public String[] servletresolver_defaultExtensions() {
            // TODO Auto-generated method stub
            return new String[] { "html" };
        }

        @Override
        public int servletresolver_cacheSize() {
            return 200;
        }
    });
    String path = "/" + MockSlingHttpServletRequest.RESOURCE_TYPE + "/" + ResourceUtil.getName(MockSlingHttpServletRequest.RESOURCE_TYPE) + ".servlet";
    MockServletResource res = new MockServletResource(mockResourceResolver, servlet, path);
    mockResourceResolver.addResource(res);
    MockResource parent = new MockResource(mockResourceResolver, ResourceUtil.getParent(res.getPath()), "nt:folder");
    mockResourceResolver.addResource(parent);
    List<Resource> childRes = new ArrayList<>();
    childRes.add(res);
    mockResourceResolver.addChildren(parent, childRes);
}
Also used : Dictionary(java.util.Dictionary) MockResource(org.apache.sling.commons.testing.sling.MockResource) ArrayList(java.util.ArrayList) Field(java.lang.reflect.Field) ResourceResolverFactory(org.apache.sling.api.resource.ResourceResolverFactory) MockResourceResolver(org.apache.sling.commons.testing.sling.MockResourceResolver) MockBundle(org.apache.sling.commons.testing.osgi.MockBundle) MockServletResource(org.apache.sling.servlets.resolver.internal.resource.MockServletResource) Resource(org.apache.sling.api.resource.Resource) MockResource(org.apache.sling.commons.testing.sling.MockResource) MockServletResource(org.apache.sling.servlets.resolver.internal.resource.MockServletResource) Annotation(java.lang.annotation.Annotation) MockServiceReference(org.apache.sling.commons.testing.osgi.MockServiceReference) MockBundleContext(org.apache.sling.commons.testing.osgi.MockBundleContext) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) MockResourceResolver(org.apache.sling.commons.testing.sling.MockResourceResolver) LoginException(org.apache.sling.api.resource.LoginException) Map(java.util.Map) Before(org.junit.Before)

Example 29 with LoginException

use of org.apache.sling.api.resource.LoginException in project sling by apache.

the class SlyBindingsValuesProvider method ensureFactoriesLoaded.

private void ensureFactoriesLoaded(Bindings bindings) {
    JsEnvironment jsEnvironment = null;
    ResourceResolver resolver = null;
    try {
        ScriptEngine scriptEngine = obtainEngine();
        if (scriptEngine == null) {
            return;
        }
        jsEnvironment = new JsEnvironment(scriptEngine);
        jsEnvironment.initialize();
        resolver = rrf.getServiceResourceResolver(null);
        factories = new HashMap<>(scriptPaths.size());
        for (Map.Entry<String, String> entry : scriptPaths.entrySet()) {
            factories.put(entry.getKey(), loadFactory(resolver, jsEnvironment, entry.getValue(), bindings));
        }
        qScript = loadQScript(resolver);
    } catch (LoginException e) {
        LOGGER.error("Cannot load HTL Use-API factories.", e);
    } finally {
        if (jsEnvironment != null) {
            jsEnvironment.cleanup();
        }
        if (resolver != null) {
            resolver.close();
        }
    }
}
Also used : JsEnvironment(org.apache.sling.scripting.sightly.js.impl.JsEnvironment) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) LoginException(org.apache.sling.api.resource.LoginException) HashMap(java.util.HashMap) Map(java.util.Map) ScriptEngine(javax.script.ScriptEngine)

Example 30 with LoginException

use of org.apache.sling.api.resource.LoginException in project sling by apache.

the class TenantProviderImpl method call.

private <T> T call(ResourceResolverTask<T> task) {
    ResourceResolver resolver = null;
    T result = null;
    try {
        resolver = factory.getServiceResourceResolver(null);
        result = task.call(resolver);
    } catch (LoginException le) {
    // unexpected, thus ignore
    } finally {
        if (resolver != null) {
            resolver.close();
        }
    }
    return result;
}
Also used : ResourceResolver(org.apache.sling.api.resource.ResourceResolver) LoginException(org.apache.sling.api.resource.LoginException)

Aggregations

LoginException (org.apache.sling.api.resource.LoginException)61 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)49 Resource (org.apache.sling.api.resource.Resource)34 PersistenceException (org.apache.sling.api.resource.PersistenceException)23 HashMap (java.util.HashMap)11 ModifiableValueMap (org.apache.sling.api.resource.ModifiableValueMap)8 RepositoryException (javax.jcr.RepositoryException)7 ArrayList (java.util.ArrayList)5 HashSet (java.util.HashSet)5 JsonException (javax.json.JsonException)4 ResourceResolverFactory (org.apache.sling.api.resource.ResourceResolverFactory)4 ValueMap (org.apache.sling.api.resource.ValueMap)4 IOException (java.io.IOException)3 Calendar (java.util.Calendar)3 Map (java.util.Map)3 SimpleCredentials (javax.jcr.SimpleCredentials)3 ServletException (javax.servlet.ServletException)3 InstanceDescription (org.apache.sling.discovery.InstanceDescription)3 Bundle (org.osgi.framework.Bundle)3 LinkedList (java.util.LinkedList)2