package example;
import java.util.Date;
import java.util.logging.Logger;
import java.util.logging.Level;
import javax.naming.InitialContext;
import javax.resource.spi.work.Work;
/**
* Implements the work task. This task just loops until the resource stops.
*/
public class WorkTask implements Work {
private static final Logger log = Logger.getLogger(WorkTask.class.getName());
private String _value = "default";
private String _jndi = "java:comp/env/test";
/**
* Creates the work task.
*/
public WorkTask()
{
}
/**
* Sets the JNDI name to store the value.
*/
public void setJNDI(String jndi)
{
_jndi = jndi;
}
/**
* Sets the name of the work task (as an example bean-style parameter.)
*/
public void setValue(String value)
{
_value = value;
}
/**
* Resin calls <code>init()</code> immediately after the parameters are
* set during configuration. Resources can use <code>init()</code>
* to validate parameters.
*/
public void init()
{
try {
new InitialContext().rebind(_jndi, _value + ": init");
} catch (Throwable e) {
log.log(Level.WARNING, e.toString(), e);
}
}
/**
* The method called to execute the task, like Runnable
*/
public void run()
{
log.fine("work starting");
try {
new InitialContext().rebind(_jndi, _value + ": " + new Date());
} catch (Throwable e) {
log.log(Level.WARNING, e.toString(), e);
}
}
/**
* Resin will call the release() method when the server shuts down
* to tell the task to close.
*/
public void release()
{
}
}