Author: antelder
Date: Thu Nov 1 09:34:09 2007
New Revision: 591073
URL: http://svn.apache.org/viewvc?rev=591073&view=rev
Log:
Merge trunk changes into beta2 branch
Added:
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XAxiomHelper.java
- copied unchanged from r591065,
jakarta/bsf/trunk/bsf3/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XAxiomHelper.java
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XXmlBeansHelper.java
- copied unchanged from r591065,
jakarta/bsf/trunk/bsf3/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XXmlBeansHelper.java
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/mozilla/
- copied from r591065,
jakarta/bsf/trunk/bsf3/bsf-utils/src/main/java/org/mozilla/
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/mozilla/javascript/
- copied from r591065,
jakarta/bsf/trunk/bsf3/bsf-utils/src/main/java/org/mozilla/javascript/
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/mozilla/javascript/ContextHelper.java
- copied unchanged from r591065,
jakarta/bsf/trunk/bsf3/bsf-utils/src/main/java/org/mozilla/javascript/ContextHelper.java
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/ (props
changed)
- copied from r591065, jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/pom.xml
- copied unchanged from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/pom.xml
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/
- copied from r591065, jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/main/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/main/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/main/java/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/main/java/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/main/resources/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/main/resources/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/e4x/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/e4x/
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/e4x/HelloTestCase.java
- copied unchanged from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/java/org/apache/bsf/testing/e4x/HelloTestCase.java
jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/src/test/resources/
- copied from r591065,
jakarta/bsf/trunk/bsf3/testing/e4x-1.6R7-Axiom/src/test/resources/
Modified:
jakarta/bsf/branches/bsf-3.0-beta2/bsf-api/src/main/java/javax/script/ScriptEngineManager.java
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/pom.xml
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XHelper.java
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/XMLHelper.java
jakarta/bsf/branches/bsf-3.0-beta2/testing/groovy-1.1/ (props changed)
jakarta/bsf/branches/bsf-3.0-beta2/testing/jython-2.2/ (props changed)
jakarta/bsf/branches/bsf-3.0-beta2/testing/pom.xml
Modified:
jakarta/bsf/branches/bsf-3.0-beta2/bsf-api/src/main/java/javax/script/ScriptEngineManager.java
URL:
http://svn.apache.org/viewvc/jakarta/bsf/branches/bsf-3.0-beta2/bsf-api/src/main/java/javax/script/ScriptEngineManager.java?rev=591073&r1=591072&r2=591073&view=diff
==============================================================================
---
jakarta/bsf/branches/bsf-3.0-beta2/bsf-api/src/main/java/javax/script/ScriptEngineManager.java
(original)
+++
jakarta/bsf/branches/bsf-3.0-beta2/bsf-api/src/main/java/javax/script/ScriptEngineManager.java
Thu Nov 1 09:34:09 2007
@@ -19,6 +19,7 @@
package javax.script;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -93,9 +94,25 @@
mimeTypeAssociations.put(data.get(i), factory);
}
}
+
+ initXMLHelper(loader);
}
-
+
/**
+ * Initialise the xml helper here so BSF clients don't have to.
+ * (Temporary approach for beta2 release)
+ */
+ private void initXMLHelper(ClassLoader loader) {
+ try {
+ Class xmlHelperClass =
Class.forName("org.apache.bsf.xml.XMLHelper", true, loader);
+ Method initMethod = xmlHelperClass.getMethod("init",
new Class[]{});
+ initMethod.invoke(null, new Object[]{});
+ } catch (Throwable e) {
+ // ignore
+ }
+ }
+
+ /**
* Retrieves the associated value for the spefied key in the
* GLOBAL_SCOPE
*
Modified: jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/pom.xml
URL:
http://svn.apache.org/viewvc/jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/pom.xml?rev=591073&r1=591072&r2=591073&view=diff
==============================================================================
--- jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/pom.xml (original)
+++ jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/pom.xml Thu Nov 1 09:34:09
2007
@@ -72,7 +72,7 @@
<dependency>
<groupId>rhino</groupId>
<artifactId>js</artifactId>
- <version>1.6R5</version>
+ <version>1.6R6</version>
<scope>compile</scope>
</dependency>
<dependency>
Modified:
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XHelper.java
URL:
http://svn.apache.org/viewvc/jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XHelper.java?rev=591073&r1=591072&r2=591073&view=diff
==============================================================================
---
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XHelper.java
(original)
+++
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/JavaScriptE4XHelper.java
Thu Nov 1 09:34:09 2007
@@ -19,99 +19,21 @@
package org.apache.bsf.xml;
import javax.script.ScriptEngine;
-import javax.script.ScriptException;
-import javax.xml.stream.XMLStreamException;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.xmlbeans.XmlObject;
-import org.mozilla.javascript.Context;
-import org.mozilla.javascript.Scriptable;
-import org.mozilla.javascript.ScriptableObject;
-import org.mozilla.javascript.Wrapper;
-import org.mozilla.javascript.xml.XMLObject;
/**
* XMLHelper for JavaScript E4X
*/
public class JavaScriptE4XHelper extends DefaultXMLHelper {
- private Scriptable scope;
-
- private static boolean axiomE4XImpl = false;
- static {
- try {
- Class.forName("org.mozilla.javascript.xmlimpl.AxiomNode");
- axiomE4XImpl = true;
- } catch (ClassNotFoundException ignore) {}
- }
-
- JavaScriptE4XHelper(ScriptEngine engine) {
- Context cx = Context.enter();
- try {
- this.scope = cx.initStandardObjects();
- } finally {
- Context.exit();
- }
- }
-
- public OMElement toOMElement(Object scriptXML) throws ScriptException {
- if (scriptXML == null) {
- return null;
- }
-
- if (!(scriptXML instanceof XMLObject)) {
- return null;
- }
-
- if (axiomE4XImpl) {
- return (OMElement) ScriptableObject.callMethod(
- (Scriptable) scriptXML, "getXmlObject", new Object[0]);
-
- } else {
- // TODO: E4X Bug? Shouldn't need this copy, but without it the
outer element gets lost???
- Scriptable jsXML =
- (Scriptable) ScriptableObject.callMethod((Scriptable)
scriptXML, "copy", new Object[0]);
- Wrapper wrapper =
- (Wrapper) ScriptableObject.callMethod((XMLObject)jsXML,
"getXmlObject", new Object[0]);
-
- XmlObject xmlObject = (XmlObject) wrapper.unwrap();
-
- try {
- StAXOMBuilder builder = new
StAXOMBuilder(xmlObject.newInputStream());
- return builder.getDocumentElement();
-
- } catch (XMLStreamException e) {
- throw new ScriptException(e);
- }
- }
- }
-
- public Object toScriptXML(OMElement om) throws ScriptException {
- if (om == null) {
- return null;
- }
- Context cx = Context.enter();
- try {
- if (axiomE4XImpl) {
-
- return cx.newObject(scope, "XML", new Object[]{om});
-
- } else {
-
- XmlObject xml = null;
- try {
- xml = XmlObject.Factory.parse(om.getXMLStreamReader());
- } catch (Exception e) {
- throw new ScriptException(e);
- }
- Object wrappedXML = cx.getWrapFactory().wrap(cx, scope, xml,
XmlObject.class);
- return cx.newObject(scope, "XML", new Object[]{wrappedXML});
+ public static XMLHelper getXMLHelper(ScriptEngine engine) {
- }
- } finally {
- Context.exit();
- }
+ try {
+ Class.forName("org.wso2.javascript.xmlimpl.XMLLibImpl",
true, JavaScriptE4XHelper.class.getClassLoader());
+ return new JavaScriptE4XAxiomHelper(engine);
+ } catch (ClassNotFoundException e) {
+ // TODO: also support Rhino 1.6R7 DOM based E4X impl
+ return new JavaScriptE4XXmlBeansHelper(engine);
+ }
}
}
Modified:
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/XMLHelper.java
URL:
http://svn.apache.org/viewvc/jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/XMLHelper.java?rev=591073&r1=591072&r2=591073&view=diff
==============================================================================
---
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/XMLHelper.java
(original)
+++
jakarta/bsf/branches/bsf-3.0-beta2/bsf-utils/src/main/java/org/apache/bsf/xml/XMLHelper.java
Thu Nov 1 09:34:09 2007
@@ -32,21 +32,33 @@
*/
public abstract class XMLHelper {
+ /**
+ * Register axiom-e4x if its available
+ * @deprecated temp approach for beta2 release
+ */
+ public static void init() {
+ try {
+ Class.forName("org.wso2.javascript.xmlimpl.XMLLibImpl",
true, JavaScriptE4XHelper.class.getClassLoader());
+ JavaScriptE4XAxiomHelper.init();
+ } catch (ClassNotFoundException e) {
+ }
+ }
+
public static XMLHelper getArgHelper(ScriptEngine engine) {
- // TODO: better discovery mechanisim than hardcoded class names
+ // TODO: better discovery mechanisim than hardcoded class names
if (engine == null) {
return null;
}
String language = engine.getFactory().getLanguageName();
if ("ECMAScript".endsWith(language)) {
- return new JavaScriptE4XHelper(engine);
+ return JavaScriptE4XHelper.getXMLHelper(engine);
} else if ("ruby".endsWith(language)) {
return new JRubyReXMLHelper(engine);
} else {
return new DefaultXMLHelper();
}
}
-
+
public abstract Object toScriptXML(OMElement om) throws ScriptException;
public abstract OMElement toOMElement(Object scriptXML) throws
ScriptException;
Propchange: jakarta/bsf/branches/bsf-3.0-beta2/testing/e4x-1.6R7-Axiom/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Nov 1 09:34:09 2007
@@ -0,0 +1,4 @@
+target
+.project
+.classpath
+.settings
Propchange: jakarta/bsf/branches/bsf-3.0-beta2/testing/groovy-1.1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Nov 1 09:34:09 2007
@@ -0,0 +1,4 @@
+target
+.project
+.classpath
+.settings
Propchange: jakarta/bsf/branches/bsf-3.0-beta2/testing/jython-2.2/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Nov 1 09:34:09 2007
@@ -0,0 +1,4 @@
+target
+.project
+.classpath
+.settings
Modified: jakarta/bsf/branches/bsf-3.0-beta2/testing/pom.xml
URL:
http://svn.apache.org/viewvc/jakarta/bsf/branches/bsf-3.0-beta2/testing/pom.xml?rev=591073&r1=591072&r2=591073&view=diff
==============================================================================
--- jakarta/bsf/branches/bsf-3.0-beta2/testing/pom.xml (original)
+++ jakarta/bsf/branches/bsf-3.0-beta2/testing/pom.xml Thu Nov 1 09:34:09 2007
@@ -38,6 +38,7 @@
</activation>
<modules>
<module>e4x</module>
+ <module>e4x-1.6R7-Axiom</module>
<module>groovy</module>
<module>groovy-1.1</module>
<module>javascript</module>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]