freemarker.ext.misc
Class Execute

java.lang.Object
  |
  +--freemarker.ext.misc.Execute
All Implemented Interfaces:
TemplateMethodModel, TemplateModel

public final class Execute
extends java.lang.Object
implements TemplateMethodModel

Gives FM-Classic the the ability to execute external commands. Will fork a process, and inline anything that process sends to stdout in the template. Based on a patch submitted by Peter Molettiere.

BE CAREFUL! this tag, depending on use, may allow you to set something up so that users of your web application could run arbitrary code on your server. This can only happen if you allow unchecked GET/POST submissions to be used as the command string in the exec method.

Usage:
From java:

 TemplateModelRoot root = new SimpleHash();

 root.put( "exec", freemarker.ext.misc.Execute.getInstance() );

 ...
 

From your FM-Classic template:

 The following is executed:
 ${exec( "/usr/bin/ls" )}

 ...
 

Note:
Execute is a singleton instance. Use the getInstance() method to retrieve instances of this model.

Version:
$Id: Execute.java,v 1.8 2003/11/17 13:06:24 run2000 Exp $

Constructor Summary
Execute()
          Deprecated. use the getInstance() method to avoid excessive object creation
 
Method Summary
 TemplateModel exec(java.util.List arguments)
          Executes a method call.
static Execute getInstance()
          Retrieve a singleton instance of this class.
 boolean isEmpty()
          Is the object empty?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Execute

public Execute()
Deprecated. use the getInstance() method to avoid excessive object creation

Creates new Execute template method model.
Method Detail

getInstance

public static Execute getInstance()
Retrieve a singleton instance of this class. Since there is no state information held between calls, there is only a need for one instance.
Returns:
an instance of this Execute class

exec

public TemplateModel exec(java.util.List arguments)
                   throws TemplateModelException
Executes a method call.
Specified by:
exec in interface TemplateMethodModel
Parameters:
arguments - a List of String objects containing the values of the arguments passed to the method.
Returns:
the TemplateModel produced by the method, or null.

isEmpty

public boolean isEmpty()
                throws TemplateModelException
Is the object empty?
Specified by:
isEmpty in interface TemplateModel
Returns:
false, to indicate the object is not empty