Author: justin
Date: Fri Jan 21 01:15:00 2011
New Revision: 1061592
URL: http://svn.apache.org/viewvc?rev=1061592&view=rev
Log:
fixing SLING-1941 - DefaultSlingScript now has a static list of protected keys
Modified:
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindings.java
sling/trunk/bundles/scripting/core/src/test/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindingsTest.java
Modified:
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java?rev=1061592&r1=1061591&r2=1061592&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
(original)
+++
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
Fri Jan 21 01:15:00 2011
@@ -25,6 +25,7 @@ import static org.apache.sling.api.scrip
import static org.apache.sling.api.scripting.SlingBindings.RESOURCE;
import static org.apache.sling.api.scripting.SlingBindings.RESPONSE;
import static org.apache.sling.api.scripting.SlingBindings.SLING;
+import static org.apache.sling.api.scripting.SlingBindings.FLUSH;
import java.io.BufferedReader;
import java.io.IOException;
@@ -38,9 +39,11 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Dictionary;
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 javax.script.Bindings;
import javax.script.Invocable;
@@ -81,6 +84,10 @@ class DefaultSlingScript implements Slin
/** Thread local containing the resource resolver. */
private static ThreadLocal<ResourceResolver> requestResourceResolver = new
ThreadLocal<ResourceResolver>();
+ /** The set of protected keys. */
+ private static final Set<String> PROTECTED_KEYS =
+ new HashSet<String>(Arrays.asList(REQUEST, RESPONSE, READER, SLING,
RESOURCE, OUT, FLUSH, LOG));
+
/** The resource pointing to the script. */
private final Resource scriptResource;
@@ -359,7 +366,7 @@ class DefaultSlingScript implements Slin
}
}
// optionall flush the output channel
- Object flushObject = bindings.get(SlingBindings.FLUSH);
+ Object flushObject = bindings.get(FLUSH);
if (flushObject instanceof Boolean && (Boolean) flushObject) {
ctx.getWriter().flush();
}
@@ -673,7 +680,10 @@ class DefaultSlingScript implements Slin
}
if (!bindingsValuesProviders.isEmpty()) {
- ProtectedBindings protectedBindings = new
ProtectedBindings(bindings);
+ Set<String> protectedKeys = new HashSet<String>();
+ protectedKeys.addAll(PROTECTED_KEYS);
+
+ ProtectedBindings protectedBindings = new
ProtectedBindings(bindings, protectedKeys);
for (BindingsValuesProvider provider : bindingsValuesProviders) {
provider.addBindings(protectedBindings);
}
Modified:
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindings.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindings.java?rev=1061592&r1=1061591&r2=1061592&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindings.java
(original)
+++
sling/trunk/bundles/scripting/core/src/main/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindings.java
Fri Jan 21 01:15:00 2011
@@ -2,7 +2,6 @@ package org.apache.sling.scripting.core.
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -13,9 +12,9 @@ public class ProtectedBindings implement
private final Bindings wrapped;
private final Set<String> protectedKeys;
- public ProtectedBindings(Bindings wrapped) {
+ public ProtectedBindings(Bindings wrapped, Set<String> protectedKeys) {
this.wrapped = wrapped;
- this.protectedKeys = new HashSet<String>(wrapped.keySet());
+ this.protectedKeys = protectedKeys;
}
/**
Modified:
sling/trunk/bundles/scripting/core/src/test/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindingsTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/core/src/test/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindingsTest.java?rev=1061592&r1=1061591&r2=1061592&view=diff
==============================================================================
---
sling/trunk/bundles/scripting/core/src/test/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindingsTest.java
(original)
+++
sling/trunk/bundles/scripting/core/src/test/java/org/apache/sling/scripting/core/impl/helper/ProtectedBindingsTest.java
Fri Jan 21 01:15:00 2011
@@ -16,6 +16,7 @@
*/
package org.apache.sling.scripting.core.impl.helper;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -38,7 +39,7 @@ public class ProtectedBindingsTest {
public void setup() {
SimpleBindings inner = new SimpleBindings();
inner.put("test1", "value1");
- this.bindings = new ProtectedBindings(inner);
+ this.bindings = new ProtectedBindings(inner,
Collections.singleton("test1"));
}
@Test(expected=IllegalArgumentException.class)