You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2016/04/26 18:47:57 UTC
svn commit: r1741055 - in
/sling/whiteboard/bdelacretaz/filtering-resource-decorator: ./ src/
src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/sling/ src/main/java/org/apache/sling/filteringrd/
src/main/jav...
Author: bdelacretaz
Date: Tue Apr 26 16:47:57 2016
New Revision: 1741055
URL: http://svn.apache.org/viewvc?rev=1741055&view=rev
Log:
Experiment using a ResourceDecorator to selectively hide resources
Added:
sling/whiteboard/bdelacretaz/filtering-resource-decorator/ (with props)
sling/whiteboard/bdelacretaz/filtering-resource-decorator/README.md
sling/whiteboard/bdelacretaz/filtering-resource-decorator/pom.xml
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/ResourceFilter.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/DefaultResourceFilter.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteredResourceWrapper.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringPredicate.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceDecorator.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceResolverWrapper.java
sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/ResourceResolverWrapper.java
Propchange: sling/whiteboard/bdelacretaz/filtering-resource-decorator/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Apr 26 16:47:57 2016
@@ -0,0 +1,19 @@
+target
+sling
+bin
+logs
+jackrabbit-repository
+derby.log
+*.iml
+*.ipr
+*.iws
+.settings
+.project
+.classpath
+.externalToolBuilders
+maven-eclipse.xml
+jackrabbit
+
+
+
+
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/README.md
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/README.md?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/README.md (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/README.md Tue Apr 26 16:47:57 2016
@@ -0,0 +1,15 @@
+filtering-resource-decorator
+----------------------------
+
+Experiment using a `ResourceDecorator` to selectively hide resources.
+
+Adding a boolean `sling:FilterRecursion` property which is true on a resource
+activates the filtering resource wrapper.
+
+Then, any direct child resource of that one which has a boolean `sling:hide` property
+which is true is omitted when recursing into the parent resource.
+
+Only works one level done from the parent resource so far but that can be fixed.
+
+Performance needs to be measured as a `ResourceDecorator` service is called for
+each resource that's created - the decision to activate it or not should be very cheap.
\ No newline at end of file
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/pom.xml
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/pom.xml?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/pom.xml (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/pom.xml Tue Apr 26 16:47:57 2016
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>25</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.filtering-resource-decorator</artifactId>
+ <packaging>bundle</packaging>
+ <version>0.1.1-SNAPSHOT</version>
+
+ <name>Apache Sling Filtering ResourceDecorator</name>
+ <inceptionYear>2015</inceptionYear>
+
+ <description>
+ Example ResourceDecorator which filters recursion into Resources.
+ </description>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Private-Package>org.apache.sling.filteringrd.*</Private-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.api</artifactId>
+ <version>2.1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.scr.annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/ResourceFilter.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/ResourceFilter.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/ResourceFilter.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/ResourceFilter.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,24 @@
+/*
+ * 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.filteringrd;
+
+import org.apache.sling.api.resource.Resource;
+
+/** Decides whether a Resource is visible */
+public interface ResourceFilter {
+ boolean isVisible(Resource r);
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/DefaultResourceFilter.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/DefaultResourceFilter.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/DefaultResourceFilter.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/DefaultResourceFilter.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,50 @@
+/*
+ * 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.filteringrd.impl;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.filteringrd.ResourceFilter;
+import org.osgi.framework.Constants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Component
+@Service(value=ResourceFilter.class)
+@Property(name=Constants.SERVICE_RANKING, intValue=Integer.MIN_VALUE)
+public class DefaultResourceFilter implements ResourceFilter {
+ public static final String HIDE_PROP = "sling:hide";
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ @Override
+ public boolean isVisible(Resource r) {
+ if(r != null) {
+ final ValueMap vm = r.adaptTo(ValueMap.class);
+ if(vm != null) {
+ final boolean hide = vm.get(HIDE_PROP, false);
+ if(hide) {
+ log.debug("Hiding {} due to {} being true", r, HIDE_PROP);
+ }
+ return !hide;
+ }
+ }
+ return true;
+ }
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteredResourceWrapper.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteredResourceWrapper.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteredResourceWrapper.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteredResourceWrapper.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,47 @@
+/*
+ * 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.filteringrd.impl;
+
+import java.util.Iterator;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceWrapper;
+import org.apache.sling.filteringrd.ResourceFilter;
+
+/** ResourceWrapper that uses a ResourceFilter to filter
+ * recursion in the resource children.
+ */
+public class FilteredResourceWrapper extends ResourceWrapper {
+
+ private final ResourceFilter filter;
+
+ FilteredResourceWrapper(Resource r, ResourceFilter f) {
+ super(r);
+ filter = f;
+ }
+
+ @Override
+ public Iterator<Resource> listChildren() {
+ return FilteringPredicate.wrapIterator(super.listChildren(), filter);
+ }
+
+ @Override
+ public ResourceResolver getResourceResolver() {
+ return new FilteringResourceResolverWrapper(super.getResourceResolver(), filter);
+ }
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringPredicate.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringPredicate.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringPredicate.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringPredicate.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,45 @@
+/*
+ * 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.filteringrd.impl;
+
+import java.util.Iterator;
+
+import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.filteringrd.ResourceFilter;
+
+class FilteringPredicate implements Predicate {
+ private ResourceFilter filter;
+
+ private FilteringPredicate(ResourceFilter f) {
+ filter = f;
+ }
+
+ @Override
+ public boolean evaluate(Object object) {
+ if(object instanceof Resource && filter != null) {
+ return filter.isVisible((Resource)object);
+ }
+ return false;
+ }
+
+ @SuppressWarnings("unchecked")
+ static Iterator<Resource> wrapIterator(Iterator<Resource> toWrap, ResourceFilter filter) {
+ return new FilterIterator(toWrap, new FilteringPredicate(filter));
+ }
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceDecorator.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceDecorator.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceDecorator.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceDecorator.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,70 @@
+/*
+ * 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.filteringrd.impl;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceDecorator;
+import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.filteringrd.ResourceFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/** ResourceDecorator that can hide resources
+ * when recursing with Resource.getChild and
+ * related methods.
+ */
+@Component
+@Service(value=ResourceDecorator.class)
+public class FilteringResourceDecorator implements ResourceDecorator {
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ public static final String FILTER_PROP = "sling:filterRecursion";
+
+ // TODO should use a more specific way of selecting a ResourceFilter
+ @Reference
+ private ResourceFilter filter;
+
+ @Override
+ public Resource decorate(Resource r) {
+ // TODO ResourceDecorator needs to decide cheaply whether to
+ // decorate a resource or not - we might add configurable paths
+ // or other cheap to evaluate conditions to decide more quickly
+ if(r != null) {
+ final ValueMap vm = r.adaptTo(ValueMap.class);
+ if(vm != null) {
+ if(vm.get(FILTER_PROP, false)) {
+ log.debug("Wrapping {} using {} due to {} being true",
+ new Object[] { r, filter, FILTER_PROP });
+ return new FilteredResourceWrapper(r, filter);
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public Resource decorate(Resource r, HttpServletRequest request) {
+ return decorate(r);
+ }
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceResolverWrapper.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceResolverWrapper.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceResolverWrapper.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/FilteringResourceResolverWrapper.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,37 @@
+/*
+ * 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.filteringrd.impl;
+
+import java.util.Iterator;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.filteringrd.ResourceFilter;
+
+class FilteringResourceResolverWrapper extends ResourceResolverWrapper {
+ private final ResourceFilter filter;
+
+ FilteringResourceResolverWrapper(ResourceResolver toWrap, ResourceFilter f) {
+ super(toWrap);
+ filter = f;
+ }
+
+ @Override
+ public Iterator<Resource> listChildren(final Resource r) {
+ return FilteringPredicate.wrapIterator(super.listChildren(r), filter);
+ }
+}
Added: sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/ResourceResolverWrapper.java
URL: http://svn.apache.org/viewvc/sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/ResourceResolverWrapper.java?rev=1741055&view=auto
==============================================================================
--- sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/ResourceResolverWrapper.java (added)
+++ sling/whiteboard/bdelacretaz/filtering-resource-decorator/src/main/java/org/apache/sling/filteringrd/impl/ResourceResolverWrapper.java Tue Apr 26 16:47:57 2016
@@ -0,0 +1,125 @@
+/*
+ * 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.filteringrd.impl;
+
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+
+abstract class ResourceResolverWrapper implements ResourceResolver {
+ private final ResourceResolver wrapped;
+
+ ResourceResolverWrapper(ResourceResolver wrapped) {
+ this.wrapped = wrapped;
+ }
+
+ @Override
+ public <AdapterType> AdapterType adaptTo(Class<AdapterType> arg0) {
+ return wrapped.adaptTo(arg0);
+ }
+
+ @Override
+ public ResourceResolver clone(Map<String, Object> arg0)
+ throws LoginException {
+ return wrapped.clone(arg0);
+ }
+
+ @Override
+ public void close() {
+ wrapped.close();
+ }
+
+ @Override
+ public Iterator<Resource> findResources(String arg0, String arg1) {
+ return wrapped.findResources(arg0, arg1);
+ }
+
+ @Override
+ public Object getAttribute(String arg0) {
+ return wrapped.getAttribute(arg0);
+ }
+
+ @Override
+ public Iterator<String> getAttributeNames() {
+ return wrapped.getAttributeNames();
+ }
+
+ @Override
+ public Resource getResource(Resource arg0, String arg1) {
+ return wrapped.getResource(arg0, arg1);
+ }
+
+ @Override
+ public Resource getResource(String arg0) {
+ return wrapped.getResource(arg0);
+ }
+
+ @Override
+ public String[] getSearchPath() {
+ return wrapped.getSearchPath();
+ }
+
+ @Override
+ public String getUserID() {
+ return wrapped.getUserID();
+ }
+
+ @Override
+ public boolean isLive() {
+ return wrapped.isLive();
+ }
+
+ @Override
+ public Iterator<Resource> listChildren(Resource arg0) {
+ return wrapped.listChildren(arg0);
+ }
+
+ @Override
+ public String map(HttpServletRequest arg0, String arg1) {
+ return wrapped.map(arg0, arg1);
+ }
+
+ @Override
+ public String map(String arg0) {
+ return wrapped.map(arg0);
+ }
+
+ @Override
+ public Iterator<Map<String, Object>> queryResources(String arg0, String arg1) {
+ return wrapped.queryResources(arg0, arg1);
+ }
+
+ @Override
+ public Resource resolve(HttpServletRequest arg0, String arg1) {
+ return wrapped.resolve(arg0, arg1);
+ }
+
+ @Override
+ public Resource resolve(HttpServletRequest arg0) {
+ return wrapped.resolve(arg0);
+ }
+
+ @Override
+ public Resource resolve(String arg0) {
+ return wrapped.resolve(arg0);
+ }
+}