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

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

commit cf3c4e79cf7b6bb9353af8065354a28c58520637
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 2 12:14:05 2016 +0000

    Migrate to parent pom 27
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/security@1754893
 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |   34 +-
 .../security/impl/ContentDispositionFilter.java    |  102 +-
 .../apache/sling/security/impl/ReferrerFilter.java |   11 +-
 .../impl/ContentDispositionFilterTest.java         | 1010 ++++++++------------
 .../sling/security/impl/ReferrerFilterTest.java    |   17 +-
 5 files changed, 487 insertions(+), 687 deletions(-)

diff --git a/pom.xml b/pom.xml
index cfae422..b05b3bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>26</version>
+        <version>27</version>
         <relativePath />
     </parent>
 
@@ -85,46 +85,38 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.annotations</artifactId>
-        </dependency>
-        <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
+            <artifactId>javax.servlet-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
+            <artifactId>osgi.core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.8.2</version>
-            <scope>test</scope>
-        </dependency>
         <!--  Testing -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.jmock</groupId>
             <artifactId>jmock-junit4</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <version>1.10.19</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit-addons</groupId>
             <artifactId>junit-addons</artifactId>
             <version>1.4</version>
diff --git 
a/src/main/java/org/apache/sling/security/impl/ContentDispositionFilter.java 
b/src/main/java/org/apache/sling/security/impl/ContentDispositionFilter.java
index fb5d031..abb3bd3 100644
--- a/src/main/java/org/apache/sling/security/impl/ContentDispositionFilter.java
+++ b/src/main/java/org/apache/sling/security/impl/ContentDispositionFilter.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -36,17 +35,16 @@ import javax.servlet.ServletResponse;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.PropertyUnbounded;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.PropertyUnbounded;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.api.wrappers.SlingHttpServletResponseWrapper;
 import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,30 +56,30 @@ label=" Apache Sling Content Disposition Filter")
         @Property(name = "sling.filter.scope", value = { "request" }, 
propertyPrivate = true),
         @Property(name = "service.ranking", intValue = -25000, propertyPrivate 
= true) })
 public class ContentDispositionFilter implements Filter {
-    
+
     /** Logger. */
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
-    
-    @Property(label = "Content Disposition Paths", 
+
+    @Property(label = "Content Disposition Paths",
             description = "These paths are checked by the filter. "+
                     "Each entry is of the form 'path [ \":\" CSV of excluded 
content types ]'. " +
                     "Invalid entries are logged and ignored."
                     , unbounded = PropertyUnbounded.ARRAY, value = { "" })
     private static final String PROP_CONTENT_DISPOSTION_PATHS = 
"sling.content.disposition.paths";
-    
-    @Property(label = "Content Disposition Excluded Paths", 
+
+    @Property(label = "Content Disposition Excluded Paths",
             description = "These paths are excluded by the filter. "+
                     "Each entry is of the form 'path'. "
                     , unbounded = PropertyUnbounded.ARRAY, value = { "" })
     private static final String PROP_CONTENT_DISPOSTION_EXCLUDED_PATHS = 
"sling.content.disposition.excluded.paths";
-    
+
     private static final boolean DEFAULT_ENABLE_CONTENT_DISPOSTION_ALL_PATHS = 
false;
     @Property(boolValue = DEFAULT_ENABLE_CONTENT_DISPOSTION_ALL_PATHS ,
               label = "Enable Content Disposition for all paths",
               description ="This flag controls whether to enable" +
                       " Content Disposition for all paths, except for the 
excluded paths defined by sling.content.disposition.excluded.paths")
     private static final String PROP_ENABLE_CONTENT_DISPOSTION_ALL_PATHS = 
"sling.content.disposition.all.paths";
-   
+
     /**
      * Set of paths
      */
@@ -91,29 +89,27 @@ public class ContentDispositionFilter implements Filter {
      * Array of prefixes of paths
      */
     private String[] contentDispositionPathsPfx;
-    
-    Set contentDispositionExcludedPaths;
+
+    Set<String> contentDispositionExcludedPaths;
 
     private Map<String, Set<String>> contentTypesMapping;
-    
+
     private boolean enableContentDispositionAllPaths;
-    
+
     @Activate
-    private void activate(final ComponentContext ctx) {
-        final Dictionary props = ctx.getProperties();
-        
+    private void activate(final Map<String, Object> props) {
         String[] contentDispostionProps = 
PropertiesUtil.toStringArray(props.get(PROP_CONTENT_DISPOSTION_PATHS));
-        
+
         Set<String> paths = new HashSet<String>();
         List<String> pfxs = new ArrayList<String>();
         Map<String, Set<String>> contentTypesMap = new HashMap<String, 
Set<String>>();
-        
+
         for (String path : contentDispostionProps) {
             path = path.trim();
             if (path.length() > 0) {
                 int idx = path.indexOf('*');
                 int colonIdx = path.indexOf(":");
-                
+
                 if (colonIdx > -1 && colonIdx < idx) {
                     // ':'  in paths is not allowed
                     logger.info("':' in paths is not allowed.");
@@ -135,7 +131,7 @@ public class ContentDispositionFilter implements Filter {
                             p = path;
                         }
                         paths.add(p);
-                    }                   
+                    }
                     if (colonIdx != -1 && p != null) {
                         Set <String> contentTypes = 
getContentTypes(path.substring(colonIdx+1));
                         contentTypesMap.put(p, contentTypes);
@@ -144,35 +140,38 @@ public class ContentDispositionFilter implements Filter {
 
             }
         }
-        
+
         contentDispositionPaths = paths.isEmpty() ? 
Collections.<String>emptySet() : paths;
         contentDispositionPathsPfx = pfxs.toArray(new String[pfxs.size()]);
         contentTypesMapping = contentTypesMap.isEmpty()?Collections.<String, 
Set<String>>emptyMap(): contentTypesMap;
-        
+
         enableContentDispositionAllPaths =  
PropertiesUtil.toBoolean(props.get(PROP_ENABLE_CONTENT_DISPOSTION_ALL_PATHS),DEFAULT_ENABLE_CONTENT_DISPOSTION_ALL_PATHS);
-        
-        
+
+
         String[] contentDispostionExcludedPathsArray = 
PropertiesUtil.toStringArray(props.get(PROP_CONTENT_DISPOSTION_EXCLUDED_PATHS));
-        
+
         contentDispositionExcludedPaths = new 
HashSet<String>(Arrays.asList(contentDispostionExcludedPathsArray));
-        
+
         logger.info("Initialized. content disposition paths: {}, content 
disposition paths-pfx {}, content disposition excluded paths: {}. Enable 
Content Disposition for all paths is set to {}", new Object[]{
                 contentDispositionPaths, contentDispositionPathsPfx, 
contentDispositionExcludedPaths, enableContentDispositionAllPaths}
         );
     }
-    
 
+
+    @Override
     public void init(FilterConfig filterConfig) throws ServletException {
         // nothing to do
     }
 
+    @Override
     public void destroy() {
         // nothing to do
     }
 
+    @Override
     public void doFilter(ServletRequest request, ServletResponse response,
             FilterChain chain) throws IOException, ServletException {
-  
+
         final SlingHttpServletRequest slingRequest = (SlingHttpServletRequest) 
request;
         final SlingHttpServletResponse slingResponse = 
(SlingHttpServletResponse) response;
 
@@ -180,9 +179,9 @@ public class ContentDispositionFilter implements Filter {
 
         chain.doFilter(request, rewriterResponse);
     }
-    
+
     //---------- PRIVATE METHODS ---------
-    
+
     private static Set<String> getContentTypes(String contentTypes) {
         Set<String> contentTypesSet = new HashSet<String>();
         if (contentTypes != null && contentTypes.length() > 0) {
@@ -193,37 +192,38 @@ public class ContentDispositionFilter implements Filter {
         }
         return contentTypesSet;
     }
-    
-    //----------- INNER CLASSES ------------ 
+
+    //----------- INNER CLASSES ------------
 
     protected class RewriterResponse extends SlingHttpServletResponseWrapper {
-        
+
         private static final String CONTENT_DISPOSTION = "Content-Disposition";
 
         private static final String CONTENT_DISPOSTION_ATTACHMENT = 
"attachment";
-        
+
         private static final String PROP_JCR_DATA = "jcr:data";
-        
+
         private static final String JCR_CONTENT_LEAF = "jcr:content";
-        
+
         static final String ATTRIBUTE_NAME =
                 
"org.apache.sling.security.impl.ContentDispositionFilter.RewriterResponse.contentType";
-        
+
         /** The current request. */
         private final SlingHttpServletRequest request;
-        
+
         private final Resource resource;
 
         public RewriterResponse(SlingHttpServletRequest request, 
SlingHttpServletResponse wrappedResponse) {
-            super(wrappedResponse);            
+            super(wrappedResponse);
             this.request = request;
             this.resource = request.getResource();
         }
-        
+
         /**
          * @see 
javax.servlet.ServletResponseWrapper#setContentType(java.lang.String)
          */
-        public void setContentType(String type) { 
+        @Override
+        public void setContentType(String type) {
             if ("GET".equals(request.getMethod())) {
                 String previousContentType = (String) 
request.getAttribute(ATTRIBUTE_NAME);
 
@@ -231,14 +231,14 @@ public class ContentDispositionFilter implements Filter {
                     return;
                 }
                 request.setAttribute(ATTRIBUTE_NAME, type);
-                
+
                 String resourcePath = resource.getPath();
 
                 if (!contentDispositionExcludedPaths.contains(resourcePath)) {
 
                     if (enableContentDispositionAllPaths) {
                         setContentDisposition(resource);
-                    } else {               
+                    } else {
 
                         boolean contentDispositionAdded = false;
                         if (contentDispositionPaths.contains(resourcePath)) {
@@ -251,7 +251,7 @@ public class ContentDispositionFilter implements Filter {
                             } else {
                                 contentDispositionAdded = 
setContentDisposition(resource);
                             }
-                        }            
+                        }
                         if (!contentDispositionAdded) {
                             for (String path : contentDispositionPathsPfx) {
                                 if (resourcePath.startsWith(path)) {
@@ -273,10 +273,10 @@ public class ContentDispositionFilter implements Filter {
                 }
             }
             super.setContentType(type);
-        }    
-        
+        }
+
       //---------- PRIVATE METHODS ---------
-        
+
         private boolean setContentDisposition(Resource resource) {
             boolean contentDispositionAdded = false;
             if (!this.containsHeader(CONTENT_DISPOSTION) && 
this.isJcrData(resource)) {
@@ -285,7 +285,7 @@ public class ContentDispositionFilter implements Filter {
             }
             return contentDispositionAdded;
         }
-        
+
         private boolean isJcrData(Resource resource){
             boolean jcrData = false;
             if (resource!= null) {
@@ -300,7 +300,7 @@ public class ContentDispositionFilter implements Filter {
                             jcrData = true;
                         }
                     }
-                }     
+                }
             }
             return jcrData;
         }
diff --git a/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java 
b/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
index f3c4951..39870b4 100644
--- a/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
+++ b/src/main/java/org/apache/sling/security/impl/ReferrerFilter.java
@@ -32,6 +32,7 @@ import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
@@ -54,7 +55,6 @@ import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -211,9 +211,7 @@ public class ReferrerFilter implements Filter {
      * Activate
      */
     @Activate
-    protected void activate(final ComponentContext ctx) {
-        final Dictionary props = ctx.getProperties();
-
+    protected void activate(final BundleContext context, final Map<String, 
Object> props) {
         this.allowEmpty = 
PropertiesUtil.toBoolean(props.get(PROP_ALLOW_EMPTY), DEFAULT_ALLOW_EMPTY);
 
         final String[] allowRegexHosts = 
defaultIfEmpty(PropertiesUtil.toStringArray(props.get(PROP_HOSTS_REGEX),
@@ -235,7 +233,7 @@ public class ReferrerFilter implements Filter {
                 filterMethods[i] = filterMethods[i].toUpperCase();
             }
         }
-        this.configPrinterRegistration = 
registerConfigPrinter(ctx.getBundleContext());
+        this.configPrinterRegistration = registerConfigPrinter(context);
     }
 
     @Deactivate
@@ -270,6 +268,7 @@ public class ReferrerFilter implements Filter {
         return false;
     }
 
+    @Override
     public void doFilter(final ServletRequest req,
                          final ServletResponse res,
                          final FilterChain chain)
@@ -373,6 +372,7 @@ public class ReferrerFilter implements Filter {
     /**
      * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
      */
+    @Override
     public void init(final FilterConfig config) throws ServletException {
         // nothing to do
     }
@@ -380,6 +380,7 @@ public class ReferrerFilter implements Filter {
     /**
      * @see javax.servlet.Filter#destroy()
      */
+    @Override
     public void destroy() {
         // nothing to do
     }
diff --git 
a/src/test/java/org/apache/sling/security/impl/ContentDispositionFilterTest.java
 
b/src/test/java/org/apache/sling/security/impl/ContentDispositionFilterTest.java
index a4941b6..ccb1406 100644
--- 
a/src/test/java/org/apache/sling/security/impl/ContentDispositionFilterTest.java
+++ 
b/src/test/java/org/apache/sling/security/impl/ContentDispositionFilterTest.java
@@ -16,14 +16,11 @@
  */
 package org.apache.sling.security.impl;
 
-import java.util.Dictionary;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import junitx.util.PrivateAccessor;
-
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
@@ -34,249 +31,195 @@ import org.jmock.Mockery;
 import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Assert;
 import org.junit.Test;
-import org.osgi.service.component.ComponentContext;
+
+import junitx.util.PrivateAccessor;
 
 public class ContentDispositionFilterTest {
-    
+
     private ContentDispositionFilter contentDispositionFilter;
     private final Mockery context = new JUnit4Mockery();
-    
+
     private static final String PROP_JCR_DATA = "jcr:data";
-    
+
     private static final String JCR_CONTENT_LEAF = "jcr:content";
 
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator1() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(1, contentDispositionPaths.size());   
+        Assert.assertEquals(1, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(0, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(0, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(0, contentTypesMapping.size());           
+        Assert.assertEquals(0, contentTypesMapping.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator2() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(0, contentDispositionPaths.size());   
+        Assert.assertEquals(0, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(1, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(1, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(0, contentTypesMapping.size());           
+        Assert.assertEquals(0, contentTypesMapping.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator3() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String []{"/libs", 
"/content/usergenerated/*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(1, contentDispositionPaths.size());   
+        Assert.assertEquals(1, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(1, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(1, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(0, contentTypesMapping.size());           
+        Assert.assertEquals(0, contentTypesMapping.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator5() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String []{"*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(0, contentDispositionPaths.size());   
+        Assert.assertEquals(0, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(0, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(0, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(0, contentTypesMapping.size());           
+        Assert.assertEquals(0, contentTypesMapping.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator6() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String []{"/libs:*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(0, contentDispositionPaths.size());   
+        Assert.assertEquals(0, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(0, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(0, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(0, contentTypesMapping.size());           
+        Assert.assertEquals(0, contentTypesMapping.size());
     }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator7() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/libs:text/html,text/plain","/content/usergenerated/*:image/jpeg"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, "contentDispositionPaths");
-        Assert.assertEquals(1, contentDispositionPaths.size());   
+        Assert.assertEquals(1, contentDispositionPaths.size());
         String[] contentDispositionPathsPfx = ( String[] ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionPathsPfx");
-        Assert.assertEquals(1, contentDispositionPathsPfx.length);   
+        Assert.assertEquals(1, contentDispositionPathsPfx.length);
         Map <String, Set<String>> contentTypesMapping = ( Map <String, 
Set<String>> ) PrivateAccessor.getField(contentDispositionFilter, 
"contentTypesMapping");
-        Assert.assertEquals(2, contentTypesMapping.size()); 
+        Assert.assertEquals(2, contentTypesMapping.size());
         Set<String> libsMapping = contentTypesMapping.get("/libs");
         Assert.assertEquals(2, libsMapping.size());
         libsMapping.contains("text/html");
         libsMapping.contains("text/plain");
- 
+
         Set<String> userGeneratedMapping = 
contentTypesMapping.get("/content/usergenerated/");
-        Assert.assertEquals(1, userGeneratedMapping.size()); 
+        Assert.assertEquals(1, userGeneratedMapping.size());
         userGeneratedMapping.contains("image/jpeg");
      }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator8() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/libs:text/html,text/plain","/content/usergenerated/*:image/jpeg"});
         props.put("sling.content.disposition.excluded.paths", new String []{});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionExcludedPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionExcludedPaths");
-        Assert.assertEquals(0, contentDispositionExcludedPaths.size());   
+        Assert.assertEquals(0, contentDispositionExcludedPaths.size());
      }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_activator9() throws Throwable{
         contentDispositionFilter = new ContentDispositionFilter();
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/libs:text/html,text/plain","/content/usergenerated/*:image/jpeg"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{"/content", "/libs"});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
         Set<String> contentDispositionExcludedPaths = ( Set<String> ) 
PrivateAccessor.getField(contentDispositionFilter, 
"contentDispositionExcludedPaths");
-        Assert.assertEquals(2, contentDispositionExcludedPaths.size());   
+        Assert.assertEquals(2, contentDispositionExcludedPaths.size());
      }
-    
+
+    @SuppressWarnings("unchecked")
     @Test
     public void test_getContentTypes() throws Throwable{
         // null content types
         String contentType = null;
         Set <String> contentTypesSet = ( Set <String>) 
PrivateAccessor.invoke(ContentDispositionFilter.class,"getContentTypes",  new 
Class[]{String.class},new Object[]{contentType});
-        Assert.assertEquals(0, contentTypesSet.size());   
+        Assert.assertEquals(0, contentTypesSet.size());
         // empty content types
         contentType = "";
         contentTypesSet = ( Set <String>) 
PrivateAccessor.invoke(ContentDispositionFilter.class,"getContentTypes",  new 
Class[]{String.class},new Object[]{contentType});
-        Assert.assertEquals(0, contentTypesSet.size());  
+        Assert.assertEquals(0, contentTypesSet.size());
         contentType = "text/html";
         contentTypesSet = ( Set <String>) 
PrivateAccessor.invoke(ContentDispositionFilter.class,"getContentTypes",  new 
Class[]{String.class},new Object[]{contentType});
-        Assert.assertEquals(1, contentTypesSet.size()); 
+        Assert.assertEquals(1, contentTypesSet.size());
         contentType = "text/html,text/plain";
         contentTypesSet = ( Set <String>) 
PrivateAccessor.invoke(ContentDispositionFilter.class,"getContentTypes",  new 
Class[]{String.class},new Object[]{contentType});
-        Assert.assertEquals(2, contentTypesSet.size()); 
+        Assert.assertEquals(2, contentTypesSet.size());
     }
-    
+
     @Test
-    public void test_doFilter1() throws Throwable{       
+    public void test_doFilter1() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
     
-        
+        final Resource resource = context.mock(Resource.class, "resource" );
+
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -291,34 +234,27 @@ public class ContentDispositionFilterTest {
                 allowing(response).setContentType("text/html");
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
-                
+
             }
-        }); 
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
 
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter2() throws Throwable{       
+    public void test_doFilter2() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -335,36 +271,29 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });    
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter3() throws Throwable{       
+    public void test_doFilter3() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -386,37 +315,31 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });   
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
-            }            
+            }
         };
-        rewriterResponse.setContentType("text/html");        
+        rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter4() throws Throwable{       
+    public void test_doFilter4() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -431,36 +354,29 @@ public class ContentDispositionFilterTest {
                 allowing(response).setContentType("text/html");
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
-                
+
             }
-        });       
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter5() throws Throwable{       
+    public void test_doFilter5() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();        
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -482,8 +398,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });  
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -491,30 +408,23 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter6() throws Throwable{       
+    public void test_doFilter6() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -536,8 +446,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        }); 
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -545,27 +456,20 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter7() throws Throwable{       
+    public void test_doFilter7() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -581,34 +485,27 @@ public class ContentDispositionFilterTest {
                 allowing(response).setContentType("text/html");
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
-                
+
             }
-        });   
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter8() throws Throwable{       
+    public void test_doFilter8() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -625,32 +522,25 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });       
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter9() throws Throwable{       
+    public void test_doFilter9() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -667,35 +557,28 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });       
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter10() throws Throwable{       
+    public void test_doFilter10() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();        
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -717,8 +600,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });    
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -726,27 +610,20 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("image/jpeg");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter11() throws Throwable{       
+    public void test_doFilter11() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -762,34 +639,27 @@ public class ContentDispositionFilterTest {
                 allowing(response).setContentType("text/html");
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
-                
+
             }
-        });       
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter12() throws Throwable{       
+    public void test_doFilter12() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );  
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -806,32 +676,25 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });    
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter13() throws Throwable{       
+    public void test_doFilter13() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );  
+        final Resource resource = context.mock(Resource.class, "resource" );
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
 
         context.checking(new Expectations() {
             {
@@ -848,35 +711,28 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION MUST NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });   
+        });
         ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         rewriterResponse.setContentType("text/html");
     }
-    
+
     @Test
-    public void test_doFilter14() throws Throwable{       
+    public void test_doFilter14() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated/*:text/html,text/plain"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();        
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -898,8 +754,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        }); 
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -907,34 +764,27 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("image/jpeg");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     /**
      * Test repeated setContentType calls don't add multiple headers, case 1 
resetting the same mimetype
      * @throws Throwable
      */
     @Test
-    public void test_doFilter15() throws Throwable{       
+    public void test_doFilter15() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-}
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -958,8 +808,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        }); 
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -968,34 +819,27 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     /**
      * Test repeated setContentType calls don't add multiple headers, case 2 
changing mime type
      * @throws Throwable
      */
     @Test
-    public void test_doFilter16() throws Throwable{       
+    public void test_doFilter16() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1023,8 +867,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });       
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -1033,32 +878,25 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/xml");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
 
     @Test
-    public void test_doFilter17() throws Throwable{       
+    public void test_doFilter17() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
         props.put("sling.content.disposition.all.paths", false);
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1087,7 +925,8 @@ public class ContentDispositionFilterTest {
                 never(response).addHeader("Content-Disposition", "attachment");
             }
         });
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -1095,32 +934,25 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(0, counter.intValue());
     }
-    
- 
+
+
     @Test
-    public void test_doFilter18() throws Throwable{       
+    public void test_doFilter18() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{""});
         props.put("sling.content.disposition.all.paths", true);
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1148,8 +980,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });      
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -1157,31 +990,24 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter19() throws Throwable{       
+    public void test_doFilter19() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{"/content"});
         props.put("sling.content.disposition.all.paths", true);
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1209,8 +1035,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        });   
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -1218,31 +1045,24 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter20() throws Throwable{       
+    public void test_doFilter20() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{"/content/other"});
         props.put("sling.content.disposition.all.paths", true);
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        final AtomicInteger counter =  new AtomicInteger();       
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1270,8 +1090,9 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });       
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
             }
@@ -1279,31 +1100,24 @@ public class ContentDispositionFilterTest {
         rewriterResponse.setContentType("text/html");
         Assert.assertEquals(0, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter21() throws Throwable{       
+    public void test_doFilter21() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{"/content"});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+
         final AtomicInteger counter =  new AtomicInteger();
-        
+
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1325,39 +1139,32 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS SET
                 exactly(1).of(response).addHeader("Content-Disposition", 
"attachment");
             }
-        }); 
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
-            }            
+            }
         };
-        rewriterResponse.setContentType("text/html");        
+        rewriterResponse.setContentType("text/html");
         Assert.assertEquals(1, counter.intValue());
     }
-    
+
     @Test
-    public void test_doFilter22() throws Throwable{       
+    public void test_doFilter22() throws Throwable{
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
-        final Resource resource = context.mock(Resource.class, "resource" );   
+        final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         contentDispositionFilter = new ContentDispositionFilter();
-        
-        final ComponentContext ctx = context.mock(ComponentContext.class);
-        final Dictionary props = new Hashtable<String, String[]>();
+
+        final Map<String, Object> props = new HashMap<String, Object>();
         props.put("sling.content.disposition.paths", new String 
[]{"/content/usergenerated"});
         props.put("sling.content.disposition.excluded.paths", new String 
[]{"/content/usergenerated"});
-        
-        context.checking(new Expectations() {
-            {
-                allowing(ctx).getProperties();
-                will(returnValue(props));
-                
-            }
-        });    
-        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{ComponentContext.class},new Object[]{ctx});
-        
-        final AtomicInteger counter =  new AtomicInteger();        
+
+        PrivateAccessor.invoke(contentDispositionFilter,"activate",  new 
Class[]{Map.class},new Object[]{props});
+
+        final AtomicInteger counter =  new AtomicInteger();
         context.checking(new Expectations() {
             {
                 allowing(request).getMethod();
@@ -1379,55 +1186,56 @@ public class ContentDispositionFilterTest {
                 //CONTENT DISPOSITION IS NOT SET
                 never(response).addHeader("Content-Disposition", "attachment");
             }
-        });     
-        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {          
+        });
+        final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response) {
+            @Override
             public void addHeader(String name, String value) {
                 counter.incrementAndGet();
-            }            
+            }
         };
-        
-        rewriterResponse.setContentType("text/html");        
+
+        rewriterResponse.setContentType("text/html");
         Assert.assertEquals(0, counter.intValue());
     }
-    
+
     @Test
     public void test_isJcrData1() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
         final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
         final Resource resource = null;
-        
+
         context.checking(new Expectations() {
             {
                 allowing(request).getResource();
                 will(returnValue(resource));
             }
         });
-        
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertFalse(result);
     }
-    
+
     @Test
     public void test_isJcrData2() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);     
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
         final Resource resource = context.mock(Resource.class);
-        
+
         context.checking(new Expectations() {
             {
                 allowing(request).getResource();
-                will(returnValue(resource));                
+                will(returnValue(resource));
             }
-        });     
-        
+        });
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
         final ValueMap properties = context.mock(ValueMap.class);
-        
+
         context.checking(new Expectations() {
             {
                 allowing(resource).adaptTo(ValueMap.class);
@@ -1435,26 +1243,26 @@ public class ContentDispositionFilterTest {
                 allowing(properties).containsKey(PROP_JCR_DATA);
                 will(returnValue(true));
             }
-        });     
-        
+        });
+
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertTrue(result);
     }
-    
+
     @Test
     public void test_isJcrData3() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);       
-        
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
+
         final Resource resource = context.mock(Resource.class);
         final ValueMap properties = context.mock(ValueMap.class);
-        
+
         context.checking(new Expectations() {
-            {                
+            {
                 allowing(request).getResource();
-                will(returnValue(resource));   
+                will(returnValue(resource));
                 allowing(resource).adaptTo(ValueMap.class);
                 will(returnValue(properties));
                 allowing(properties).containsKey(PROP_JCR_DATA);
@@ -1462,27 +1270,27 @@ public class ContentDispositionFilterTest {
                 allowing(resource).getChild(JCR_CONTENT_LEAF);
                 will(returnValue(null));
             }
-        });  
-        
+        });
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertFalse(result);
     }
-    
+
     @Test
     public void test_isJcrData4() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);       
-        
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
+
         final Resource child = context.mock(Resource.class, "child");
         final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         final ValueMap childPropoerties = context.mock(ValueMap.class, 
"childPropoerties");
 
-        
+
         context.checking(new Expectations() {
             {
                 allowing(request).getResource();
@@ -1498,28 +1306,28 @@ public class ContentDispositionFilterTest {
                 allowing(childPropoerties).containsKey(PROP_JCR_DATA);
                 will(returnValue(false));
             }
-        });     
-        
+        });
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertFalse(result);
     }
-    
+
     @Test
     public void test_isJcrData5() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);       
-       
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
+
         final Resource child = context.mock(Resource.class, "child");
         final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
         final ValueMap childPropoerties = context.mock(ValueMap.class, 
"childPropoerties");
 
-        
+
         context.checking(new Expectations() {
-            {                
+            {
                 allowing(request).getResource();
                 will(returnValue(resource));
                 allowing(resource).adaptTo(ValueMap.class);
@@ -1533,26 +1341,25 @@ public class ContentDispositionFilterTest {
                 allowing(childPropoerties).containsKey(PROP_JCR_DATA);
                 will(returnValue(true));
             }
-        });   
-        
+        });
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertTrue(result);
     }
-    
+
     @Test
     public void test_isJcrData6() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);       
-        
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
+
         final Resource resource = context.mock(Resource.class);
-        final ValueMap properties = context.mock(ValueMap.class);
-        
+
         context.checking(new Expectations() {
-            {                
+            {
                 allowing(request).getResource();
                 will(returnValue(resource));
                 allowing(resource).adaptTo(ValueMap.class);
@@ -1560,28 +1367,27 @@ public class ContentDispositionFilterTest {
                 allowing(resource).getChild(JCR_CONTENT_LEAF);
                 will(returnValue(null));
             }
-        });     
+        });
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
-        
+
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertFalse(result);
     }
-    
-    
+
+
     @Test
     public void test_isJcrData7() throws Throwable {
         contentDispositionFilter = new ContentDispositionFilter();
         final SlingHttpServletRequest request = 
context.mock(SlingHttpServletRequest.class);
-        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);               
+        final SlingHttpServletResponse response = 
context.mock(SlingHttpServletResponse.class);
         final Resource child = context.mock(Resource.class, "child");
         final Resource resource = context.mock(Resource.class, "resource" );
         final ValueMap properties = context.mock(ValueMap.class);
-        final ValueMap childPropoerties = context.mock(ValueMap.class, 
"childPropoerties");
 
-        
+
         context.checking(new Expectations() {
-            {                
+            {
                 allowing(request).getResource();
                 will(returnValue(resource));
                 allowing(resource).adaptTo(ValueMap.class);
@@ -1593,12 +1399,12 @@ public class ContentDispositionFilterTest {
                 allowing(child).adaptTo(ValueMap.class);
                 will(returnValue(null));
             }
-        });     
-        
+        });
+
         final ContentDispositionFilter.RewriterResponse rewriterResponse = 
contentDispositionFilter. new RewriterResponse(request, response);
 
         Boolean result = (Boolean) 
PrivateAccessor.invoke(rewriterResponse,"isJcrData",  new 
Class[]{Resource.class},new Object[]{resource});
-        
+
         Assert.assertFalse(result);
     }
 }
\ No newline at end of file
diff --git 
a/src/test/java/org/apache/sling/security/impl/ReferrerFilterTest.java 
b/src/test/java/org/apache/sling/security/impl/ReferrerFilterTest.java
index 14002bc..7eb6d16 100644
--- a/src/test/java/org/apache/sling/security/impl/ReferrerFilterTest.java
+++ b/src/test/java/org/apache/sling/security/impl/ReferrerFilterTest.java
@@ -16,10 +16,15 @@
  */
 package org.apache.sling.security.impl;
 
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import java.util.Dictionary;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -28,7 +33,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
-import org.osgi.service.component.ComponentContext;
 
 public class ReferrerFilterTest {
 
@@ -36,18 +40,15 @@ public class ReferrerFilterTest {
 
     @Before public void setup() {
         filter = new ReferrerFilter();
-        final ComponentContext ctx = mock(ComponentContext.class);
         final BundleContext bundleCtx = mock(BundleContext.class);
         final ServiceRegistration reg = mock(ServiceRegistration.class);
-        final Dictionary<String, Object> props = new Hashtable<String, 
Object>(){{
+        final Map<String, Object> props = new HashMap<String, Object>(){{
             put("allow.hosts", new String[]{"relhost"});
             put("allow.hosts.regexp", new 
String[]{"http://([^.]*.)?abshost:80"});
         }};
-        doReturn(props).when(ctx).getProperties();
-        doReturn(bundleCtx).when(ctx).getBundleContext();
         doReturn(reg).when(bundleCtx).registerService(any(String[].class), 
any(), any(Dictionary.class));
         doNothing().when(reg).unregister();
-        filter.activate(ctx);
+        filter.activate(bundleCtx, props);
     }
 
     @Test public void testHostName() {

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

Reply via email to