This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.scripting.thymeleaf-1.1.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-thymeleaf.git

commit 7ce68ada7d286692d69d0a0eef3f1f91d373c2ee
Author: Oliver Lietz <[email protected]>
AuthorDate: Wed Jan 25 00:09:18 2017 +0000

    SLING-5928 Use Service ResourceResolver in SlingResourceTemplateResolver
    
    use RequestScopedResourceResolver
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf@1780128
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../internal/ThymeleafScriptEngineFactory.java     |   6 +-
 .../DelegatingResourceResolver.java                | 231 ---------------------
 .../RequestScopedResourceResolverProvider.java     |  90 --------
 3 files changed, 3 insertions(+), 324 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
 
b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
index 846b210..22a18f1 100644
--- 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
+++ 
b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/ThymeleafScriptEngineFactory.java
@@ -30,7 +30,7 @@ import javax.script.ScriptEngineFactory;
 
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
-import 
org.apache.sling.scripting.thymeleaf.internal.resourceresolver.RequestScopedResourceResolverProvider;
+import 
org.apache.sling.scripting.api.resource.ScriptingResourceResolverProvider;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
@@ -133,7 +133,7 @@ public final class ThymeleafScriptEngineFactory extends 
AbstractScriptEngineFact
         policy = ReferencePolicy.DYNAMIC,
         policyOption = ReferencePolicyOption.GREEDY
     )
-    private volatile RequestScopedResourceResolverProvider 
resourceResolverProvider;
+    private volatile ScriptingResourceResolverProvider 
scriptingResourceResolverProvider;
 
     private ThymeleafScriptEngineFactoryConfiguration configuration;
 
@@ -429,7 +429,7 @@ public final class ThymeleafScriptEngineFactory extends 
AbstractScriptEngineFact
     }
 
     ResourceResolver getRequestScopedResourceResolver() {
-        return resourceResolverProvider.getResourceResolver();
+        return 
scriptingResourceResolverProvider.getRequestScopedResourceResolver();
     }
 
 }
diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/DelegatingResourceResolver.java
 
b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/DelegatingResourceResolver.java
deleted file mode 100644
index 25b1c4d..0000000
--- 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/DelegatingResourceResolver.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.scripting.thymeleaf.internal.resourceresolver;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnull;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.PersistenceException;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DelegatingResourceResolver implements ResourceResolver {
-
-    private final ResourceResolver resourceResolver;
-
-    private final Logger logger = 
LoggerFactory.getLogger(DelegatingResourceResolver.class);
-
-    public DelegatingResourceResolver(final ResourceResolver resourceResolver) 
{
-        this.resourceResolver = resourceResolver;
-    }
-
-    void closeInternal() {
-        resourceResolver.close();
-    }
-
-    @Override
-    @Nonnull
-    public Resource resolve(@Nonnull HttpServletRequest 
httpServletRequest,@Nonnull String s) {
-        return resourceResolver.resolve(httpServletRequest, s);
-    }
-
-    @Override
-    @Nonnull
-    public Resource resolve(@Nonnull String s) {
-        return resourceResolver.resolve(s);
-    }
-
-    @Override
-    @Deprecated
-    @Nonnull
-    public Resource resolve(@Nonnull HttpServletRequest httpServletRequest) {
-        return resourceResolver.resolve(httpServletRequest);
-    }
-
-    @Override
-    @Nonnull
-    public String map(@Nonnull String s) {
-        return resourceResolver.map(s);
-    }
-
-    @Override
-    @CheckForNull
-    public String map(@Nonnull HttpServletRequest httpServletRequest, @Nonnull 
String s) {
-        return resourceResolver.map(httpServletRequest, s);
-    }
-
-    @Override
-    @CheckForNull
-    public Resource getResource(@Nonnull String s) {
-        return resourceResolver.getResource(s);
-    }
-
-    @Override
-    @CheckForNull
-    public Resource getResource(Resource resource, @Nonnull String s) {
-        return resourceResolver.getResource(resource, s);
-    }
-
-    @Override
-    @Nonnull
-    public String[] getSearchPath() {
-        return resourceResolver.getSearchPath();
-    }
-
-    @Override
-    @Nonnull
-    public Iterator<Resource> listChildren(@Nonnull Resource resource) {
-        return resourceResolver.listChildren(resource);
-    }
-
-    @Override
-    @CheckForNull
-    public Resource getParent(@Nonnull Resource resource) {
-        return resourceResolver.getParent(resource);
-    }
-
-    @Override
-    @Nonnull
-    public Iterable<Resource> getChildren(@Nonnull Resource resource) {
-        return resourceResolver.getChildren(resource);
-    }
-
-    @Override
-    @Nonnull
-    public Iterator<Resource> findResources(@Nonnull String s, String s1) {
-        return resourceResolver.findResources(s, s1);
-    }
-
-    @Override
-    @Nonnull
-    public Iterator<Map<String, Object>> queryResources(@Nonnull String s, 
String s1) {
-        return resourceResolver.queryResources(s, s1);
-    }
-
-    @Override
-    public boolean hasChildren(@Nonnull Resource resource) {
-        return resourceResolver.hasChildren(resource);
-    }
-
-    @Override
-    @Nonnull
-    public ResourceResolver clone(Map<String, Object> map) throws 
LoginException {
-        return resourceResolver.clone(map);
-    }
-
-    @Override
-    public boolean isLive() {
-        return resourceResolver.isLive();
-    }
-
-    @Override
-    public void close() {
-        // do not close
-    }
-
-    @Override
-    @CheckForNull
-    public String getUserID() {
-        return resourceResolver.getUserID();
-    }
-
-    @Override
-    @Nonnull
-    public Iterator<String> getAttributeNames() {
-        return resourceResolver.getAttributeNames();
-    }
-
-    @Override
-    @CheckForNull
-    public Object getAttribute(@Nonnull String s) {
-        return resourceResolver.getAttribute(s);
-    }
-
-    @Override
-    public void delete(@Nonnull Resource resource) throws PersistenceException 
{
-        resourceResolver.delete(resource);
-    }
-
-    @Override
-    @Nonnull
-    public Resource create(@Nonnull Resource resource, @Nonnull String s, 
Map<String, Object> map) throws PersistenceException {
-        return resourceResolver.create(resource, s, map);
-    }
-
-    @Override
-    public void revert() {
-        resourceResolver.revert();
-    }
-
-    @Override
-    public void commit() throws PersistenceException {
-        resourceResolver.commit();
-    }
-
-    @Override
-    public boolean hasChanges() {
-        return resourceResolver.hasChanges();
-    }
-
-    @Override
-    @CheckForNull
-    public String getParentResourceType(Resource resource) {
-        return resourceResolver.getParentResourceType(resource);
-    }
-
-    @Override
-    @CheckForNull
-    public String getParentResourceType(String s) {
-        return resourceResolver.getParentResourceType(s);
-    }
-
-    @Override
-    public boolean isResourceType(Resource resource, String s) {
-        return resourceResolver.isResourceType(resource, s);
-    }
-
-    @Override
-    public void refresh() {
-        resourceResolver.refresh();
-    }
-
-    @Override
-    public Resource copy(String s, String s1) throws PersistenceException {
-        return resourceResolver.copy(s, s1);
-    }
-
-    @Override
-    public Resource move(String s, String s1) throws PersistenceException {
-        return resourceResolver.move(s, s1);
-    }
-
-    @Override
-    @CheckForNull
-    public <AdapterType> AdapterType adaptTo(@Nonnull Class<AdapterType> 
aClass) {
-        return resourceResolver.adaptTo(aClass);
-    }
-
-}
diff --git 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/RequestScopedResourceResolverProvider.java
 
b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/RequestScopedResourceResolverProvider.java
deleted file mode 100644
index 4da19ad..0000000
--- 
a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/resourceresolver/RequestScopedResourceResolverProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.scripting.thymeleaf.internal.resourceresolver;
-
-import org.apache.sling.api.request.SlingRequestEvent;
-import org.apache.sling.api.request.SlingRequestEvent.EventType;
-import org.apache.sling.api.request.SlingRequestListener;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.serviceusermapping.ServiceUserMapped;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferenceCardinality;
-import org.osgi.service.component.annotations.ReferencePolicy;
-import org.osgi.service.component.annotations.ReferencePolicyOption;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Component(
-    service = {
-        RequestScopedResourceResolverProvider.class,
-        SlingRequestListener.class
-    },
-    immediate = true
-)
-public class RequestScopedResourceResolverProvider implements 
SlingRequestListener {
-
-    private final ThreadLocal<DelegatingResourceResolver> threadLocal = new 
ThreadLocal<>();
-
-    @Reference(
-        policy = ReferencePolicy.DYNAMIC,
-        policyOption = ReferencePolicyOption.GREEDY
-    )
-    private volatile ResourceResolverFactory resourceResolverFactory;
-
-    @Reference(
-        cardinality = ReferenceCardinality.MANDATORY,
-        policy = ReferencePolicy.DYNAMIC,
-        policyOption = ReferencePolicyOption.GREEDY
-    )
-    private volatile ServiceUserMapped serviceUserMapped;
-
-    private final Logger logger = 
LoggerFactory.getLogger(RequestScopedResourceResolverProvider.class);
-
-    public ResourceResolver getResourceResolver() {
-        DelegatingResourceResolver resourceResolver = threadLocal.get();
-        if (resourceResolver == null) {
-            try {
-                logger.debug("getting service resource resolver for thread 
{}", Thread.currentThread().getName());
-                final ResourceResolver delegate = 
resourceResolverFactory.getServiceResourceResolver(null);
-                resourceResolver = new DelegatingResourceResolver(delegate);
-                logger.debug("setting service resource resolver {} for thread 
{}", resourceResolver, Thread.currentThread().getName());
-                threadLocal.set(resourceResolver);
-            } catch (Exception e) {
-                logger.error(e.getMessage(), e);
-            }
-        }
-        return resourceResolver;
-    }
-
-    @Override
-    public void onEvent(final SlingRequestEvent slingRequestEvent) {
-        if (EventType.EVENT_DESTROY.equals(slingRequestEvent.getType())) {
-            final DelegatingResourceResolver resourceResolver = 
threadLocal.get();
-            logger.debug("removing service resource resolver {} for thread 
{}", resourceResolver, Thread.currentThread().getName());
-            threadLocal.remove();
-            if (resourceResolver != null) {
-                logger.debug("closing resource resolver {} for thread {}", 
resourceResolver, Thread.currentThread().getName());
-                resourceResolver.closeInternal();
-            }
-        }
-    }
-
-}

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to