
com.sun.phobos.script.javascript.EmbeddedRhinoScriptEngine Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino-js-engine Show documentation
Show all versions of rhino-js-engine Show documentation
A js-engine.jar that provides a script engine "rhino" with old Rhino JavaScript.
The source code for js-engine comes from https://java.net/projects/Scripting.
The Rhino engine itself is pulled by maven. Its source is at https://github.com/mozilla/rhino.
/*
* Copyright (C) 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met: Redistributions of source code
* must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution. Neither the name of the Sun Microsystems nor the names of
* is contributors may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package com.sun.phobos.script.javascript;
import com.sun.phobos.script.util.*;
import javax.script.*;
import java.io.*;
/**
* Embedded javascript interpreter.
*/
public class EmbeddedRhinoScriptEngine extends RhinoScriptEngine {
protected DeTagifier detagifier;
public EmbeddedRhinoScriptEngine() {
detagifier = new DeTagifier("context.getWriter().write(\"",
"\");\n",
"context.getWriter().write(",
");\n");
}
protected Reader preProcessScriptSource(Reader reader) throws ScriptException {
try {
String s = detagifier.parse(reader);
return new StringReader(s);
}
catch (IOException ee) {
throw new ScriptException(ee);
}
}
public static void main(String[] args) throws Exception {
if (args.length == 0) {
System.out.println("No file specified");
return;
}
InputStreamReader r = new InputStreamReader(new FileInputStream(args[0]));
ScriptEngine engine = new EmbeddedRhinoScriptEngine();
SimpleScriptContext context = new SimpleScriptContext();
engine.put(ScriptEngine.FILENAME, args[0]);
engine.eval(r, context);
context.getWriter().flush();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy