You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gk...@apache.org on 2007/07/31 17:12:54 UTC
svn commit: r561357 - in /cocoon/trunk:
blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/
core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expressio...
Author: gkossakowski
Date: Tue Jul 31 08:12:52 2007
New Revision: 561357
URL: http://svn.apache.org/viewvc?view=rev&rev=561357
Log:
COCOON-2095: More work on cleaning up various helper classes.
Basically, the work consists of moving initialization stuff from helper classes to approporiate ObjectModel providers. Detailed info:
* introduced Rhino's root scope as Spring bean
* moved adding java packages from FlowObjectModelHelper to ObjectModel providers
* adapted tests so they use new root scope as Spring bean
Added:
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java (with props)
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java (with props)
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java (with props)
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml (with props)
Modified:
cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/JXTemplateGeneratorTestCase.spring.xml
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptCompiler.java
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptExpression.java
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/environment/FlowObjectModelHelper.java
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/JavaScriptCompiler.xml
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModel.xml
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModelProviders.xml
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/java/org/apache/cocoon/components/expression/javascript/JavaScriptTestCase.java
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/components/expression/ExpressionTestCase.spring.xml
cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/environment/FOMTestCase.spring.xml
Modified: cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/JXTemplateGeneratorTestCase.spring.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/JXTemplateGeneratorTestCase.spring.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/JXTemplateGeneratorTestCase.spring.xml (original)
+++ cocoon/trunk/blocks/cocoon-template/cocoon-template-impl/src/test/resources/org/apache/cocoon/template/jxtg/JXTemplateGeneratorTestCase.spring.xml Tue Jul 31 08:12:52 2007
@@ -25,6 +25,7 @@
<import resource="classpath:META-INF/cocoon/spring/JexlCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/JXPathCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/ObjectModelProviders.xml"/>
+ <import resource="classpath:META-INF/cocoon/spring/RhinoScope.xml"/>
<!-- Redefining this bean instead of importing because originally it is in "call" scope -->
<bean name="org.apache.cocoon.objectmodel.ObjectModel" class="org.apache.cocoon.objectmodel.ObjectModelImpl">
Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java?view=auto&rev=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java Tue Jul 31 08:12:52 2007
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.components.expression.helpers;
+
+import org.mozilla.javascript.Context;
+import org.mozilla.javascript.Scriptable;
+
+/**
+ * This is a simple factory class that produces Rhino scope.
+ * Scope returned by this factory will be used as Spring bean.
+ */
+public final class RhinoScopeFactory {
+
+ public static Scriptable createRhinoScope() {
+ final Scriptable rootScope;
+
+ Context ctx = Context.enter();
+ try {
+ rootScope = ctx.initStandardObjects(null);
+ } finally {
+ Context.exit();
+ }
+ return rootScope;
+ }
+}
Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/helpers/RhinoScopeFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptCompiler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptCompiler.java?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptCompiler.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptCompiler.java Tue Jul 31 08:12:52 2007
@@ -19,16 +19,27 @@
import org.apache.cocoon.components.expression.Expression;
import org.apache.cocoon.components.expression.ExpressionCompiler;
import org.apache.cocoon.components.expression.ExpressionException;
+import org.mozilla.javascript.Scriptable;
/**
* @version $Id$
*/
public class JavaScriptCompiler implements ExpressionCompiler {
+
+ Scriptable rootScope;
/**
* @see org.apache.cocoon.components.expression.ExpressionCompiler#compile(java.lang.String, java.lang.String)
*/
public Expression compile(String language, String expression) throws ExpressionException {
- return new JavaScriptExpression(language, expression);
+ return new JavaScriptExpression(language, expression, rootScope);
+ }
+
+ public Scriptable getRootScope() {
+ return rootScope;
+ }
+
+ public void setRootScope(Scriptable rootScope) {
+ this.rootScope = rootScope;
}
}
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptExpression.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptExpression.java?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptExpression.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/components/expression/javascript/JavaScriptExpression.java Tue Jul 31 08:12:52 2007
@@ -35,9 +35,11 @@
private Script script;
private JSIntrospector introspector;
+ private Scriptable rootScope;
- public JavaScriptExpression(String language, String expression) {
+ public JavaScriptExpression(String language, String expression, Scriptable rootScope) {
super(language, expression);
+ this.rootScope = rootScope;
compile();
}
@@ -45,7 +47,7 @@
Context ctx = Context.enter();
try {
// Note: used compileReader instead of compileString to work with the older Rhino in C2.1
- this.script = ctx.compileReader(FlowObjectModelHelper.getScope(), new StringReader(getExpression()), "", 1, null);
+ this.script = ctx.compileReader(FlowObjectModelHelper.getScope(rootScope), new StringReader(getExpression()), "", 1, null);
} catch (Exception e) {
// Note: this catch block is only needed for the Rhino in C2.1 where the older
// Rhino does not throw RuntimeExceptions
@@ -62,7 +64,7 @@
public Object evaluate(ObjectModel objectModel) throws ExpressionException {
Context ctx = Context.enter();
try {
- Scriptable scope = ctx.newObject(FlowObjectModelHelper.getScope());
+ Scriptable scope = ctx.newObject(FlowObjectModelHelper.getScope(rootScope));
// Populate the scope
Iterator iter = objectModel.entrySet().iterator();
while (iter.hasNext()) {
Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java?view=auto&rev=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java Tue Jul 31 08:12:52 2007
@@ -0,0 +1,56 @@
+package org.apache.cocoon.objectmodel.provider;
+
+import org.mozilla.javascript.Context;
+import org.mozilla.javascript.Scriptable;
+import org.mozilla.javascript.ScriptableObject;
+
+/**
+ * Adds java packages to {@link org.apache.cocoon.objectmodel.ObjectModel ObjectModel}. Allows to construct java objects.
+ *
+ * @see PackagesEntryObjectModelProvider
+ */
+public class JavaEntryObjectModelProvider implements ObjectModelProvider {
+
+ private Scriptable rootScope;
+
+ //FIXME: This method is duplicated in PackagesEntryObjectModelProvider
+ private Scriptable getScope() {
+ Context ctx = Context.enter();
+ try {
+ // Create it if never used up to now
+ if (rootScope == null) {
+ rootScope = ctx.initStandardObjects(null);
+ }
+ try {
+ Scriptable scope = ctx.newObject(rootScope);
+ scope.setPrototype(rootScope);
+ scope.setParentScope(null);
+ return scope;
+ } catch (Exception e) {
+ throw new RuntimeException("Exception", e);
+ }
+ } finally {
+ Context.exit();
+ }
+ }
+
+ public Object getObject() {
+ Object javaPackage;
+ Context.enter();
+ try {
+ javaPackage = ScriptableObject.getProperty( getScope(), "java" );
+ } finally {
+ Context.exit();
+ }
+ return javaPackage;
+ }
+
+ public Scriptable getRootScope() {
+ return rootScope;
+ }
+
+ public void setRootScope(Scriptable rootScope) {
+ this.rootScope = rootScope;
+ }
+
+}
Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/JavaEntryObjectModelProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java?view=auto&rev=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java Tue Jul 31 08:12:52 2007
@@ -0,0 +1,65 @@
+package org.apache.cocoon.objectmodel.provider;
+
+import org.mozilla.javascript.Context;
+import org.mozilla.javascript.NativeJavaPackage;
+import org.mozilla.javascript.Scriptable;
+import org.mozilla.javascript.ScriptableObject;
+
+/**
+ * Adds java packages to {@link org.apache.cocoon.objectmodel.ObjectModel ObjectModel}. Allows to construct java objects.
+ *
+ * @see JavaEntryObjectModelProvider
+ */
+public class PackagesEntryObjectModelProvider implements ObjectModelProvider {
+
+ private Scriptable rootScope;
+
+ //FIXME: This method is duplicated in JavaEntryObjectModelProvider
+ private Scriptable getScope() {
+ Context ctx = Context.enter();
+ try {
+ // Create it if never used up to now
+ if (rootScope == null) {
+ rootScope = ctx.initStandardObjects(null);
+ }
+ try {
+ Scriptable scope = ctx.newObject(rootScope);
+ scope.setPrototype(rootScope);
+ scope.setParentScope(null);
+ return scope;
+ } catch (Exception e) {
+ throw new RuntimeException("Exception", e);
+ }
+ } finally {
+ Context.exit();
+ }
+ }
+
+ public Object getObject() {
+ Scriptable newPackages;
+ Context.enter();
+ try {
+ final String JAVA_PACKAGE = "JavaPackage";
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ // FIXME - NativeJavaPackage is an internal class which we should not use
+ newPackages = new NativeJavaPackage( "", cl );
+ newPackages.setParentScope( getScope() );
+ newPackages.setPrototype( ScriptableObject.getClassPrototype( getScope(),
+ JAVA_PACKAGE ) );
+ //objectModel.put( "Packages", newPackages );
+ //objectModel.put( "java", ScriptableObject.getProperty( getScope(), "java" ) );
+ } finally {
+ Context.exit();
+ }
+ return newPackages;
+ }
+
+ public Scriptable getRootScope() {
+ return rootScope;
+ }
+
+ public void setRootScope(Scriptable rootScope) {
+ this.rootScope = rootScope;
+ }
+
+}
Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/objectmodel/provider/PackagesEntryObjectModelProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/environment/FlowObjectModelHelper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/environment/FlowObjectModelHelper.java?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/environment/FlowObjectModelHelper.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/environment/FlowObjectModelHelper.java Tue Jul 31 08:12:52 2007
@@ -37,29 +37,22 @@
*/
public class FlowObjectModelHelper {
- private static Scriptable rootScope;
-
/** Avoid instantiation. */
private FlowObjectModelHelper() {}
- public static Scriptable getScope() {
+ public static Scriptable getScope(Scriptable rootScope) {
+ Scriptable scope;
Context ctx = Context.enter();
try {
- // Create it if never used up to now
- if (rootScope == null) {
- rootScope = ctx.initStandardObjects(null);
- }
- try {
- Scriptable scope = ctx.newObject(rootScope);
- scope.setPrototype(rootScope);
- scope.setParentScope(null);
- return scope;
- } catch (Exception e) {
- throw new RuntimeException("Exception", e);
- }
+ scope = ctx.newObject(rootScope);
+ scope.setPrototype(rootScope);
+ scope.setParentScope(null);
+ } catch (Exception e) {
+ throw new RuntimeException("Exception", e);
} finally {
Context.exit();
}
+ return scope;
}
/**
@@ -69,7 +62,7 @@
public static void fillNewObjectModelWithFOM(ObjectModel newObjectModel,
final Map objectModel, final Parameters parameters) {
Map expressionContext = TemplateObjectModelHelper.getTemplateObjectModel(objectModel, parameters);
- FlowObjectModelHelper.addJavaPackages(expressionContext);
+ //FlowObjectModelHelper.addJavaPackages(expressionContext);
//FIXME: It's a temporary code!
((Map)newObjectModel.get("cocoon")).putAll((Map)expressionContext.get("cocoon"));
@@ -80,36 +73,6 @@
newObjectModel.put(key, expressionContext.get(key));
}
newObjectModel.put(org.apache.cocoon.objectmodel.ObjectModel.CONTEXTBEAN, FlowHelper.getContextObject(objectModel));
- }
-
- /**
- * Add java packages to object model. Allows to construct java objects.
- * @param objectModel usually the result of invoking getTemplateObjectModel
- */
- public static void addJavaPackages( Map objectModel ) {
- Object javaPkg = FOM_JavaScriptFlowHelper.getJavaPackage(objectModel);
- Object pkgs = FOM_JavaScriptFlowHelper.getPackages(objectModel);
-
- // packages might have already been set up if flowscript is being used
- if ( javaPkg != null && pkgs != null ) {
- objectModel.put( "Packages", javaPkg );
- objectModel.put( "java", pkgs );
- } else {
- Context.enter();
- try {
- final String JAVA_PACKAGE = "JavaPackage";
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- // FIXME - NativeJavaPackage is an internal class which we should not use
- Scriptable newPackages = new NativeJavaPackage( "", cl );
- newPackages.setParentScope( getScope() );
- newPackages.setPrototype( ScriptableObject.getClassPrototype( getScope(),
- JAVA_PACKAGE ) );
- objectModel.put( "Packages", newPackages );
- objectModel.put( "java", ScriptableObject.getProperty( getScope(), "java" ) );
- } finally {
- Context.exit();
- }
- }
}
}
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/JavaScriptCompiler.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/JavaScriptCompiler.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/JavaScriptCompiler.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/JavaScriptCompiler.xml Tue Jul 31 08:12:52 2007
@@ -15,11 +15,14 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<!-- SVN $Id $ -->
+<!-- SVN $Id: $ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <bean name="org.apache.cocoon.components.expression.ExpressionCompiler/js" class="org.apache.cocoon.components.expression.javascript.JavaScriptCompiler"/>
+ <bean name="org.apache.cocoon.components.expression.ExpressionCompiler/js"
+ class="org.apache.cocoon.components.expression.javascript.JavaScriptCompiler">
+ <property name="rootScope" ref="org.mozilla.javascript.Scriptable/rootScope"/>
+ </bean>
</beans>
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModel.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModel.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModel.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModel.xml Tue Jul 31 08:12:52 2007
@@ -30,6 +30,8 @@
<property name="initialEntries">
<map>
<entry key="cocoon" value-ref="org.apache.cocoon.objectmodel.provider.CocoonEntryObjectModelProvider"/>
+ <entry key="Packages" value-ref="org.apache.cocoon.objectmodel.provider.PackagesEntryObjectModelProvider"/>
+ <entry key="java" value-ref="org.apache.cocoon.objectmodel.provider.JavaEntryObjectModelProvider"/>
</map>
</property>
</bean>
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModelProviders.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModelProviders.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModelProviders.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/ObjectModelProviders.xml Tue Jul 31 08:12:52 2007
@@ -20,11 +20,23 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <!-- ObjectModelEntry provider for cocoon -->
+ <!-- ObjectModelEntry provider for 'cocoon' -->
<bean name="org.apache.cocoon.objectmodel.provider.CocoonEntryObjectModelProvider"
class="org.apache.cocoon.objectmodel.provider.CocoonEntryObjectModelProvider">
<property name="settings" ref="org.apache.cocoon.configuration.Settings"/>
<property name="processInfoProvider" ref="org.apache.cocoon.processing.ProcessInfoProvider"/>
+ </bean>
+
+ <!-- ObjectModelEntry provider for 'Packages' -->
+ <bean name="org.apache.cocoon.objectmodel.provider.PackagesEntryObjectModelProvider"
+ class="org.apache.cocoon.objectmodel.provider.PackagesEntryObjectModelProvider">
+ <property name="rootScope" ref="org.mozilla.javascript.Scriptable/rootScope"/>
+ </bean>
+
+ <!-- ObjectModelEntry provider for 'java' -->
+ <bean name="org.apache.cocoon.objectmodel.provider.JavaEntryObjectModelProvider"
+ class="org.apache.cocoon.objectmodel.provider.JavaEntryObjectModelProvider">
+ <property name="rootScope" ref="org.mozilla.javascript.Scriptable/rootScope"/>
</bean>
</beans>
Added: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml?view=auto&rev=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml (added)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml Tue Jul 31 08:12:52 2007
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- SVN $Id: $ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:configurator="http://cocoon.apache.org/schema/configurator"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://cocoon.apache.org/schema/configurator http://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.1.xsd">
+
+ <bean name="org.mozilla.javascript.Scriptable/rootScope"
+ class="org.apache.cocoon.components.expression.helpers.RhinoScopeFactory" factory-method="createRhinoScope">
+ </bean>
+
+</beans>
Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/resources/META-INF/cocoon/spring/RhinoScope.xml
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/java/org/apache/cocoon/components/expression/javascript/JavaScriptTestCase.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/java/org/apache/cocoon/components/expression/javascript/JavaScriptTestCase.java?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/java/org/apache/cocoon/components/expression/javascript/JavaScriptTestCase.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/java/org/apache/cocoon/components/expression/javascript/JavaScriptTestCase.java Tue Jul 31 08:12:52 2007
@@ -21,8 +21,8 @@
import junit.framework.TestCase;
import org.apache.cocoon.components.expression.Expression;
-import org.apache.cocoon.components.expression.ExpressionCompiler;
import org.apache.cocoon.components.expression.ExpressionException;
+import org.apache.cocoon.components.expression.helpers.RhinoScopeFactory;
import org.apache.cocoon.objectmodel.ObjectModel;
import org.apache.cocoon.objectmodel.ObjectModelImpl;
@@ -32,14 +32,16 @@
public class JavaScriptTestCase extends TestCase {
public void testExpression() throws ExpressionException {
- ExpressionCompiler compiler = new JavaScriptCompiler();
+ JavaScriptCompiler compiler = new JavaScriptCompiler();
+ compiler.setRootScope(RhinoScopeFactory.createRhinoScope());
Expression expression = compiler.compile("js", "1+2");
Object result = expression.evaluate(new ObjectModelImpl());
assertEquals(new Integer(3), result);
}
public void testContextExpression() throws ExpressionException {
- ExpressionCompiler compiler = new JavaScriptCompiler();
+ JavaScriptCompiler compiler = new JavaScriptCompiler();
+ compiler.setRootScope(RhinoScopeFactory.createRhinoScope());
ObjectModel objectModel = new ObjectModelImpl();
objectModel.put("a", new Long(1));
objectModel.put("b", new Long(2));
@@ -49,7 +51,8 @@
}
public void testIterator() throws ExpressionException {
- ExpressionCompiler compiler = new JavaScriptCompiler();
+ JavaScriptCompiler compiler = new JavaScriptCompiler();
+ compiler.setRootScope(RhinoScopeFactory.createRhinoScope());
ObjectModel objectModel = new ObjectModelImpl();
String[] arr = { "foo" };
objectModel.put("arr", arr);
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/components/expression/ExpressionTestCase.spring.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/components/expression/ExpressionTestCase.spring.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/components/expression/ExpressionTestCase.spring.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/components/expression/ExpressionTestCase.spring.xml Tue Jul 31 08:12:52 2007
@@ -24,5 +24,6 @@
<import resource="classpath:META-INF/cocoon/spring/JavaScriptCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/JexlCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/JXPathCompiler.xml"/>
+ <import resource="classpath:META-INF/cocoon/spring/RhinoScope.xml"/>
</beans>
Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/environment/FOMTestCase.spring.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/environment/FOMTestCase.spring.xml?view=diff&rev=561357&r1=561356&r2=561357
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/environment/FOMTestCase.spring.xml (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/test/resources/org/apache/cocoon/environment/FOMTestCase.spring.xml Tue Jul 31 08:12:52 2007
@@ -24,6 +24,7 @@
<import resource="classpath:META-INF/cocoon/spring/JexlCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/JXPathCompiler.xml"/>
<import resource="classpath:META-INF/cocoon/spring/ObjectModelProviders.xml"/>
+ <import resource="classpath:META-INF/cocoon/spring/RhinoScope.xml"/>
<!-- Redefining this bean instead of importing because originally it is in "call" scope -->
<bean name="org.apache.cocoon.objectmodel.ObjectModel" class="org.apache.cocoon.objectmodel.ObjectModelImpl">