org.apache.geronimo.connector.work
Class WorkerContext

java.lang.Object
  extended by org.apache.geronimo.connector.work.WorkerContext
All Implemented Interfaces:
java.lang.Runnable, javax.resource.spi.work.Work

public class WorkerContext
extends java.lang.Object
implements javax.resource.spi.work.Work

Work wrapper providing an execution context to a Work instance.

Version:
$Rev: 925908 $ $Date: 2010-03-22 05:59:55 +0800 (Mon, 22 Mar 2010) $

Constructor Summary
WorkerContext(javax.resource.spi.work.Work work, java.util.Collection<WorkContextHandler> workContextHandlers)
          Create a WorkWrapper.
WorkerContext(javax.resource.spi.work.Work aWork, long aStartTimeout, javax.resource.spi.work.ExecutionContext execContext, javax.resource.spi.work.WorkListener workListener, java.util.Collection<WorkContextHandler> workContextHandlers)
          Create a WorkWrapper with the specified execution context.
 
Method Summary
 long getAcceptedTime()
          System.currentTimeMillis() when the Work has been accepted.
 long getStartTimeout()
          Gets the time duration (in milliseconds) within which the execution of the Work instance must start.
 int getThreadPriority()
          Gets the priority level of the thread, which will be dispatched to process this work.
 javax.resource.spi.work.WorkException getWorkException()
          Gets the WorkException, if any, thrown during the execution.
 boolean isTimedOut()
          Used by a Work executor in order to know if this work, which should be accepted but not started has timed out.
 java.util.concurrent.CountDownLatch provideEndLatch()
          Provides a latch, which can be used to wait the end of a work execution.
 java.util.concurrent.CountDownLatch provideStartLatch()
          Provides a latch, which can be used to wait the start of a work execution.
 void release()
           
 void run()
           
 void setThreadPriority(int aPriority)
          Defines the thread priority level of the thread, which will be dispatched to process this work.
 java.lang.String toString()
           
 void workAccepted(java.lang.Object anObject)
          Call-back method used by a Work executor in order to notify this instance that the wrapped Work instance has been accepted.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WorkerContext

public WorkerContext(javax.resource.spi.work.Work work,
                     java.util.Collection<WorkContextHandler> workContextHandlers)
Create a WorkWrapper. TODO include a WorkContextLifecycleListener

Parameters:
work - Work to be wrapped.
workContextHandlers - WorkContextHandlers supported by this work manager

WorkerContext

public WorkerContext(javax.resource.spi.work.Work aWork,
                     long aStartTimeout,
                     javax.resource.spi.work.ExecutionContext execContext,
                     javax.resource.spi.work.WorkListener workListener,
                     java.util.Collection<WorkContextHandler> workContextHandlers)
              throws javax.resource.spi.work.WorkRejectedException
Create a WorkWrapper with the specified execution context. TODO include a WorkContextLifecycleListener

Parameters:
aWork - Work to be wrapped.
aStartTimeout - a time duration (in milliseconds) within which the execution of the Work instance must start.
execContext - an object containing the execution context with which the submitted Work instance must be executed.
workListener - an object which would be notified when the various
workContextHandlers - WorkContextHandlers supported by this work manager
Throws:
javax.resource.spi.work.WorkRejectedException - if executionContext supplied yet Work implements WorkContextProvider
Method Detail

release

public void release()
Specified by:
release in interface javax.resource.spi.work.Work

setThreadPriority

public void setThreadPriority(int aPriority)
Defines the thread priority level of the thread, which will be dispatched to process this work. This priority level must be the same one for a given resource adapter.

Parameters:
aPriority - Priority of the thread to be used to process the wrapped Work instance.

getThreadPriority

public int getThreadPriority()
Gets the priority level of the thread, which will be dispatched to process this work. This priority level must be the same one for a given resource adapter.

Returns:
The priority level of the thread to be dispatched to process the wrapped Work instance.

workAccepted

public void workAccepted(java.lang.Object anObject)
Call-back method used by a Work executor in order to notify this instance that the wrapped Work instance has been accepted.

Parameters:
anObject - Object on which the event initially occurred. It should be the work executor.

getAcceptedTime

public long getAcceptedTime()
System.currentTimeMillis() when the Work has been accepted. This method can be used to compute the duration of a work.

Returns:
When the work has been accepted.

getStartTimeout

public long getStartTimeout()
Gets the time duration (in milliseconds) within which the execution of the Work instance must start.

Returns:
Time out duration.

isTimedOut

public boolean isTimedOut()
Used by a Work executor in order to know if this work, which should be accepted but not started has timed out. This method MUST be called prior to retry the execution of a Work.

Returns:
true if the Work has timed out and false otherwise.

getWorkException

public javax.resource.spi.work.WorkException getWorkException()
Gets the WorkException, if any, thrown during the execution.

Returns:
WorkException, if any.

run

public void run()
Specified by:
run in interface java.lang.Runnable

provideStartLatch

public java.util.concurrent.CountDownLatch provideStartLatch()
Provides a latch, which can be used to wait the start of a work execution.

Returns:
Latch that a caller can acquire to wait for the start of a work execution.

provideEndLatch

public java.util.concurrent.CountDownLatch provideEndLatch()
Provides a latch, which can be used to wait the end of a work execution.

Returns:
Latch that a caller can acquire to wait for the end of a work execution.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.