Author: danielf Date: Fri Mar 25 12:39:04 2005 New Revision: 159059 URL: http://svn.apache.org/viewcvs?view=rev&rev=159059 Log: Using FOM wrappers for request session and context, to get the same behaviour as in the original JXTG.
Modified: cocoon/trunk/src/java/org/apache/cocoon/environment/TemplateObjectModelHelper.java Modified: cocoon/trunk/src/java/org/apache/cocoon/environment/TemplateObjectModelHelper.java URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/environment/TemplateObjectModelHelper.java?view=diff&r1=159058&r2=159059 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/environment/TemplateObjectModelHelper.java (original) +++ cocoon/trunk/src/java/org/apache/cocoon/environment/TemplateObjectModelHelper.java Fri Mar 25 12:39:04 2005 @@ -22,6 +22,7 @@ import org.apache.avalon.framework.parameters.Parameters; import org.apache.cocoon.components.flow.FlowHelper; +import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon; import org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptFlowHelper; import org.apache.commons.jxpath.DynamicPropertyHandler; import org.apache.commons.jxpath.JXPathBeanInfo; @@ -98,26 +99,38 @@ // first create the "cocoon object": final Map cocoon = new HashMap(); + + // Needed for the FOM wrappers + Context cx = Context.enter(); + try { + //FIXME: we surely need to share the scope as this operation is time consuming + Scriptable scope = cx.initStandardObjects(); - // cocoon.request - final Request request = ObjectModelHelper.getRequest( objectModel ); - cocoon.put("request", request); + // cocoon.request + final Request request = ObjectModelHelper.getRequest( objectModel ); + cocoon.put("request", new FOM_Cocoon.FOM_Request(scope, request)); + + // cocoon.session + final Session session = request.getSession(false); + if (session != null) { + cocoon.put("session", new FOM_Cocoon.FOM_Session(scope, session)); + } - // cocoon.session - final Session session = request.getSession(false); - if (session != null) { - cocoon.put("session", session); + // cocoon.context + final org.apache.cocoon.environment.Context context = + ObjectModelHelper.getContext( objectModel ); + cocoon.put("context", new FOM_Cocoon.FOM_Context(scope, context)); + + } finally { + Context.exit(); } - - // cocoon.context - cocoon.put("context", ObjectModelHelper.getContext(objectModel)); - + // cocoon.continuation final Object cont = FlowHelper.getWebContinuation(objectModel); if ( cont != null ) { cocoon.put("continuation", cont); } - + // cocoon.parameters if ( parameters != null ) { cocoon.put("parameters", Parameters.toProperties(parameters));