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]>.
