org.oddjob.script
Class InvokeType
java.lang.Object
org.oddjob.script.InvokeType
- All Implemented Interfaces:
- ArooaValue, ArooaSessionAware
public class InvokeType
- extends Object
- implements ArooaValue, ArooaSessionAware
Description
Invoke a java method or script snippet,
or JMX operation.
For a script, the source must be a javax.script.Invocable
object.
Example
Invoke a method on a bean. The method takes a single date parameter which
is uses to generate a time of day dependent greeting.
<oddjob>
<job>
<sequential>
<jobs>
<variables id="vars">
<message>
<invoke function="greeting">
<source>
<bean class="org.oddjob.script.GreetingService"/>
</source>
<parameters>
<schedule>
<date>
<value value="${date}"/>
</date>
<schedule>
<schedules:now xmlns:schedules="http://rgordon.co.uk/oddjob/schedules"/>
</schedule>
</schedule>
</parameters>
</invoke>
</message>
</variables>
<echo id="echo-greeting">${vars.message}</echo>
</jobs>
</sequential>
</job>
</oddjob>
The ${date} reference is there so that it can be injected
during a test, to get a guaranteed result. When this is example
is run as is, this is null so the system clock to be used
there by giving a real time based greeting.
One subtle point to note about Oddjob configuration that this example
highlights is to do with when types are resolved.
The invoke type will be resolved when the
echo job is run. The schedule type will be resolved when the
variables job is
run. If the echo job were scheduled to run several hours after
the variables job had run it would not give the correct greeting!
Example
Invoke a static method of a class.
<oddjob>
<job>
<sequential>
<jobs>
<variables id="vars">
<message>
<invoke function="static greetPerson">
<source>
<class name="org.oddjob.script.GreetingService"/>
</source>
<parameters>
<value value="John"/>
</parameters>
</invoke>
</message>
</variables>
<echo id="echo-greeting">${vars.message}</echo>
</jobs>
</sequential>
</job>
</oddjob>
Example
Invoking a function of a script.
See the ScriptJob
examples.- Author:
- Rob.
InvokeType
public InvokeType()
setArooaSession
public void setArooaSession(ArooaSession session)
- Specified by:
setArooaSession
in interface ArooaSessionAware
toValue
public Object toValue()
throws ArooaConversionException
- Throws:
ArooaConversionException
getSource
public Invoker getSource()
setSource
public void setSource(Invoker source)
getFunction
public String getFunction()
setFunction
public void setFunction(String function)
getParameters
public ArooaValue getParameters(int index)
setParameters
public void setParameters(int index,
ArooaValue parameter)
toString
public String toString()
- Overrides:
toString
in class Object