You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ju...@apache.org on 2012/10/10 21:51:05 UTC
svn commit: r1396762 - in /sling/trunk/bundles/scripting/jsp: ./
src/main/java/org/apache/sling/scripting/jsp/
src/main/java/org/apache/sling/scripting/jsp/jasper/
src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/
src/main/java/org/apache/s...
Author: justin
Date: Wed Oct 10 19:51:04 2012
New Revision: 1396762
URL: http://svn.apache.org/viewvc?rev=1396762&view=rev
Log:
SLING-2618 - allowing the default session availability to be configured
Modified:
sling/trunk/bundles/scripting/jsp/pom.xml
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/JspScriptEngineFactory.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/Compiler.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JDTCompiler.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/PageInfo.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagFileProcessor.java
sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/servlet/JspServletWrapper.java
sling/trunk/bundles/scripting/jsp/src/main/resources/OSGI-INF/metatype/metatype.properties
Modified: sling/trunk/bundles/scripting/jsp/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/pom.xml?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/pom.xml (original)
+++ sling/trunk/bundles/scripting/jsp/pom.xml Wed Oct 10 19:51:04 2012
@@ -76,7 +76,10 @@
<!-- Embed Jasper completely -->
<Embed-Dependency>
- jasper*,el-api,jsp-api
+ jasper*,
+ el-api,
+ jsp-api,
+ org.apache.sling.commons.osgi;inline="org/apache/sling/commons/osgi/PropertiesUtil.*"
</Embed-Dependency>
<Embed-StripGroup>true</Embed-StripGroup>
</instructions>
@@ -122,6 +125,13 @@
<version>1.3.0</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.osgi</artifactId>
+ <version>2.1.0</version>
+ <scope>provided</scope>
+ </dependency>
+
<dependency>
<groupId>org.apache.tomcat</groupId>
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/JspScriptEngineFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/JspScriptEngineFactory.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/JspScriptEngineFactory.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/JspScriptEngineFactory.java Wed Oct 10 19:51:04 2012
@@ -47,6 +47,7 @@ import org.apache.sling.api.scripting.Sl
import org.apache.sling.api.scripting.SlingScriptHelper;
import org.apache.sling.commons.classloader.ClassLoaderWriter;
import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
+import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
import org.apache.sling.scripting.api.AbstractSlingScriptEngine;
import org.apache.sling.scripting.jsp.jasper.Options;
@@ -86,6 +87,9 @@ public class JspScriptEngineFactory
extends AbstractScriptEngineFactory
implements EventHandler {
+ @Property(boolValue = true)
+ private static final String PROP_DEFAULT_IS_SESSION = "default.is.session";
+
/** Default logger */
private final Logger logger = LoggerFactory.getLogger(JspScriptEngineFactory.class);
@@ -115,6 +119,8 @@ public class JspScriptEngineFactory
private ServiceRegistration eventHandlerRegistration;
+ private boolean defaultIsSession;
+
/** The handler for the jsp factories. */
private JspRuntimeContext.JspFactoryHandler jspFactoryHandler;
@@ -254,7 +260,7 @@ public class JspScriptEngineFactory
}
wrapper = new JspServletWrapper(servletConfig, options,
- scriptName, false, rctxt);
+ scriptName, false, rctxt, defaultIsSession);
wrapper = rctxt.addWrapper(scriptName, wrapper);
return wrapper;
@@ -273,6 +279,9 @@ public class JspScriptEngineFactory
* Activate this component
*/
protected void activate(final ComponentContext componentContext) {
+ Dictionary<?, ?> properties = componentContext.getProperties();
+ this.defaultIsSession = PropertiesUtil.toBoolean(properties.get(PROP_DEFAULT_IS_SESSION), true);
+
// set the current class loader as the thread context loader for
// the setup of the JspRuntimeContext
final ClassLoader old = Thread.currentThread().getContextClassLoader();
@@ -294,7 +303,7 @@ public class JspScriptEngineFactory
slingServletContext, tldLocationsCache);
servletConfig = new JspServletConfig(jspServletContext,
- componentContext.getProperties());
+ properties);
} finally {
// make sure the context loader is reset after setting up the
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/JspCompilationContext.java Wed Oct 10 19:51:04 2012
@@ -79,12 +79,15 @@ public class JspCompilationContext {
private TagInfo tagInfo;
private URL tagFileJarUrl;
+ private final boolean defaultIsSession;
+
// jspURI _must_ be relative to the context
public JspCompilationContext(String jspUri,
boolean isErrPage,
Options options,
ServletContext context,
- JspRuntimeContext rctxt) {
+ JspRuntimeContext rctxt,
+ boolean defaultIsSession) {
this.jspUri = canonicalURI(jspUri);
this.isErrPage = isErrPage;
@@ -107,6 +110,7 @@ public class JspCompilationContext {
this.rctxt = rctxt;
this.tagFileJarUrls = new HashMap<String, URL>();
this.basePackageName = Constants.JSP_PACKAGE_NAME;
+ this.defaultIsSession = defaultIsSession;
}
public JspCompilationContext(String tagfile,
@@ -114,8 +118,9 @@ public class JspCompilationContext {
Options options,
ServletContext context,
JspRuntimeContext rctxt,
+ boolean defaultIsSession,
URL tagFileJarUrl) {
- this(tagfile, false, options, context, rctxt);
+ this(tagfile, false, options, context, rctxt, defaultIsSession);
this.isTagFile = true;
this.tagInfo = tagInfo;
this.tagFileJarUrl = tagFileJarUrl;
@@ -193,7 +198,7 @@ public class JspCompilationContext {
if (jspCompiler != null ) {
return jspCompiler;
}
- jspCompiler = new JDTCompiler();
+ jspCompiler = new JDTCompiler(defaultIsSession);
jspCompiler.init(this);
return jspCompiler;
}
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/Compiler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/Compiler.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/Compiler.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/Compiler.java Wed Oct 10 19:51:04 2012
@@ -57,8 +57,14 @@ public abstract class Compiler {
protected Node.Nodes pageNodes;
+ protected final boolean defaultIsSession;
+
// ------------------------------------------------------------ Constructor
+ public Compiler(boolean defaultIsSession) {
+ this.defaultIsSession = defaultIsSession;
+ }
+
public void init(final JspCompilationContext ctxt) {
this.ctxt = ctxt;
this.options = ctxt.getOptions();
@@ -97,7 +103,7 @@ public abstract class Compiler {
// Setup page info area
pageInfo = new PageInfo(new BeanRepository(ctxt.getClassLoader(),
- errDispatcher), ctxt.getJspFile());
+ errDispatcher), ctxt.getJspFile(), defaultIsSession);
JspConfig jspConfig = options.getJspConfig();
JspConfig.JspProperty jspProperty = jspConfig.findJspProperty(ctxt
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JDTCompiler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JDTCompiler.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JDTCompiler.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/JDTCompiler.java Wed Oct 10 19:51:04 2012
@@ -58,6 +58,9 @@ import org.eclipse.jdt.internal.compiler
*/
public class JDTCompiler extends org.apache.sling.scripting.jsp.jasper.compiler.Compiler {
+ public JDTCompiler(boolean defaultIsSession) {
+ super(defaultIsSession);
+ }
/**
* Compile the servlet from .java file to .class file
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/PageInfo.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/PageInfo.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/PageInfo.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/PageInfo.java Wed Oct 10 19:51:04 2012
@@ -94,7 +94,7 @@ class PageInfo {
private Vector pluginDcls; // Id's for tagplugin declarations
- PageInfo(BeanRepository beanRepository, String jspFile) {
+ PageInfo(BeanRepository beanRepository, String jspFile, boolean isSession) {
this.jspFile = jspFile;
this.beanRepository = beanRepository;
@@ -109,6 +109,8 @@ class PageInfo {
this.pluginDcls = new Vector();
this.prefixes = new HashSet();
+ this.isSession = isSession;
+
// Enter standard imports
for(int i = 0; i < Constants.STANDARD_IMPORTS.length; i++)
imports.add(Constants.STANDARD_IMPORTS[i]);
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagFileProcessor.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagFileProcessor.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagFileProcessor.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/compiler/TagFileProcessor.java Wed Oct 10 19:51:04 2012
@@ -538,7 +538,8 @@ class TagFileProcessor {
if (wrapper == null) {
wrapper = new JspServletWrapper(ctxt.getServletContext(), ctxt
.getOptions(), tagFilePath, tagInfo, ctxt
- .getRuntimeContext(), ctxt.getTagFileJarUrl(tagFilePath));
+ .getRuntimeContext(), compiler.defaultIsSession,
+ ctxt.getTagFileJarUrl(tagFilePath));
wrapper = rctxt.addWrapper(tagFilePath, wrapper);
// Use same classloader and classpath for compiling tag files
@@ -564,6 +565,7 @@ class TagFileProcessor {
JspServletWrapper tempWrapper = new JspServletWrapper(ctxt
.getServletContext(), ctxt.getOptions(),
tagFilePath, tagInfo, ctxt.getRuntimeContext(),
+ compiler.defaultIsSession,
ctxt.getTagFileJarUrl(tagFilePath));
tagClazz = tempWrapper.loadTagFilePrototype();
tempVector.add(tempWrapper.getJspEngineContext()
Modified: sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/servlet/JspServletWrapper.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/servlet/JspServletWrapper.java?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/servlet/JspServletWrapper.java (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/java/org/apache/sling/scripting/jsp/jasper/servlet/JspServletWrapper.java Wed Oct 10 19:51:04 2012
@@ -103,14 +103,15 @@ public class JspServletWrapper {
final Options options,
final String jspUri,
final boolean isErrorPage,
- final JspRuntimeContext rctxt) {
+ final JspRuntimeContext rctxt,
+ final boolean defaultIsSession) {
this.isTagFile = false;
this.config = config;
this.options = options;
this.jspUri = jspUri;
this.ctxt = new JspCompilationContext(jspUri, isErrorPage, options,
config.getServletContext(),
- rctxt);
+ rctxt, defaultIsSession);
if ( log.isDebugEnabled() ) {
log.debug("Creating new wrapper for servlet " + jspUri);
}
@@ -124,6 +125,7 @@ public class JspServletWrapper {
final String tagFilePath,
final TagInfo tagInfo,
final JspRuntimeContext rctxt,
+ final boolean defaultIsSession,
final URL tagFileJarUrl)
throws JasperException {
this.isTagFile = true;
@@ -131,7 +133,7 @@ public class JspServletWrapper {
this.options = options;
this.jspUri = tagFilePath;
this.ctxt = new JspCompilationContext(jspUri, tagInfo, options,
- servletContext, rctxt,
+ servletContext, rctxt, defaultIsSession,
tagFileJarUrl);
if ( log.isDebugEnabled() ) {
log.debug("Creating new wrapper for tagfile " + jspUri);
Modified: sling/trunk/bundles/scripting/jsp/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/jsp/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1396762&r1=1396761&r2=1396762&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/jsp/src/main/resources/OSGI-INF/metatype/metatype.properties (original)
+++ sling/trunk/bundles/scripting/jsp/src/main/resources/OSGI-INF/metatype/metatype.properties Wed Oct 10 19:51:04 2012
@@ -63,3 +63,7 @@ jasper.trimSpaces.description = Should w
jasper.displaySourceFragments.name = Display Source Fragments
jasper.displaySourceFragments.description = Should we include a source fragment \
in exception messages, which could be displayed to the developer
+
+default.is.session.name = Default Session Value
+default.is.session.description = Should a session be created by default for every \
+ JSP page?