caucho
Resin
FAQ
Reference Guide
Demo
Tutorial

Getting Started
Configuration
IDE
Topics
JSP
XML/XSLT

Virtual Hosts
Balancing
Distributed Sessions
Caching
JavaScript
Filters
Servlets
Admin
WebDAV
Velocity
EJB Clients
JMX
Burlap
Hessian
 JavaScript API

Caching
Topics
Filters

  1. Basic Scripts

Resin's JavaScript engine is in the com.caucho.es package. The main classes are com.caucho.es.parser.Parser and com.caucho.es.Script. Parser is a factory for generating scripts and Script is a compiled script.

Running JavaScript is a two-step process: compile the script and then execute it.

Basic Scripts

Basic javascript just needs two know about two classes: com.caucho.es.parser.Parser and com.caucho.es.parser.Script. Parser is a factory for parsing Scripts and Script represents a compiled script.

Most application will set the script path and the work directory. The script path specifies the directories to search for javascript files. MergePath is handy since it lets you build a list of directories to search. You can also add the classpath to the list of directories to search by calling addClassPath. The default search path is the current directory of the process (e.g. server-home) and includes the classpath. So a simple application can just put javascript files in the classpath.

The work directory specifies where the generated *.java and *.class will go. The parser will try to load a precompiled script before parsing the script. If any of the source files have changed, the parser will recompile the script.

Compiling a Script
package com.caucho.vfs.*;
package com.caucho.es.*;

...

com.caucho.es.parser.Parser parser = Resin.getParser();

MergePath scriptPath = new MergePath();
scriptPath.addMergePath(Vfs.lookup("/home/ferg/js"));
ClassLoader loader = Thread.currentThread().getContextClassLoader();
scriptPath.addClassPath(loader);
parser.setScriptPath(scriptPath);

Path workPath = Vfs.lookup("/tmp/caucho/work");
parser.setWorkDir(workPath);

Script script = parser.parse("test.js");

Once the script is compiled, the application can execute it. The Script object is thread-safe, since all the JavaScript objects, including the global objects, have their own copy for each execution.

Custom global objects can be configured by adding them to a HashMap in the script call.

Executing a Script
Bean myBean = ...;

HashMap properties = new HashMap();

Path pwd = Vfs.lookup(".");
properties.put("File", pwd);

script.execute(properties, myBean);

Caching
Topics
Filters
Copyright © 1998-2002 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark, and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc.