apache > cocoon
 

ScriptAction in Cocoon

ScriptAction

NAME

script

WHAT

The ScriptAction component is used to executes any script that can be run by the BSF.

TYPE

Action

BLOCK

bsf

CLASS

org.apache.cocoon.action.ScriptAction

SINCE

Cocoon 2.1

CACHEABLE

not applicable

Description

A simple action that executes any script that can be run by the BSF system. BSF supports script languages like javascript, python, etc.

Usage

This Action is used for quick prototyping of Action, realizing an Action in a script language instead of java language.

Sitemap pipeline examples

The following sample executes the script action/my-action.js for each URI matching pattern *.vm. If the ScriptAction succeeds, the pipeline continues, invoking the VelocityGenerator, and serializing the XML stream.

<map:match pattern="*.vm">
  <map:action type="script" src="action/my-action.js">
    <map:generate type="velocity" src="{1}.vm"/>
    <map:serialize/>
  </map:action>
</map:match>

Sitemap component configuration example

The following sample configures an ScriptAction, naming it script.

<map:actions...
  <map:action name="script"
    src="org.apache.cocoon.acting.ScriptAction"> 
    logger="sitemap.action.script"/>    
    <!-- optional action configuration -->
    ...
</map:actions>

Configuration

ScriptAction has no configuration options.

Setup

ScriptAction determines the name of the script getting executed from its src attribute.

The language of the script file is auto-detected by the BSF system from the extension of the script.

The next table lists the default mapping of BSF:

Script language

Extension

javascript

js

jacl

jacl

netrexx

nrx

java

java

javaclass

class

bml

bml

vbscript

vbs

jscript

jss

perlscript

pls

perl

pl

jpython

py

lotusscript

lss

xslt

xslt

pnuts

pnut

beanbasic

bb

ScriptAction registers following objects before invoking the script:

name

Object Typ

Comment

resolver

SourceResolver

Cocoon's source resolver

objectModel

Map

Cocoon's object model

parameters

Parameters

Cocoon's action parameter

actionMap

Map

Used for passing objects from the script back to the ScriptAction, and to Cocoon's sitemap

logger

Logger

Cocoon's logger of this ScriptAction

request

Request

Request provided by the object model

scriptaction

Action

The instance of this ScriptAction

manager

Manager

Cocoon's manager of this ScriptAction

These objects are accessible from within the script.

Effect on Object Model and Sitemap Parameters

ScriptAction checks the existence of the key scriptaction-continue in the actionMap. If this key exists ScriptAction returns actionMap, otherwise null is returned.

Objects available in the actionMap are available in the sitemap.

Bugs/Caveats

Using ScriptAction relies heavily on the setting of the key scriptaction-continue in the mapAction.

Be aware to provide script language implementation, beside BSF implementation.

History

07-24-03: initial creation

04-02-04: Updated to Jakarta BSF

Copyright

Copyright (C) 1999-2004 The Apache Software Foundation. All rights reserved.

See also

A general documentation about actions is available at Actions.

Further Documentation visit Jakarta BSF Project.