org.pentaho.platform.engine.core.system
Class PentahoRequestContextHolder

java.lang.Object
  extended by org.pentaho.platform.engine.core.system.PentahoRequestContextHolder

public class PentahoRequestContextHolder
extends Object

Stores the IPentahoRequestContext object for the current thread so that a web service bean can get to it without requiring it to be passed to its methods.

Configure using system property pentaho.requuestContextHolder.strategy or setStrategyName(String). Valid values are: MODE_INHERITABLETHREADLOCAL and MODE_GLOBAL.

Partially inspired by org.springframework.security.context.SecurityContextHolder.

Author:
Ramaiz Mansoor

Field Summary
static String MODE_GLOBAL
           
static String MODE_INHERITABLETHREADLOCAL
           
static String SYSTEM_PROPERTY
           
 
Constructor Summary
PentahoRequestContextHolder()
           
 
Method Summary
static IPentahoRequestContext getRequestContext()
          Returns the IPentahoRequestContext for the current thread
static void removeRequestContext()
          Removes the IPentahoRequestContext for the current thread.
static void setRequestContext(IPentahoRequestContext requestContext)
          Sets an IPentahoRequestContext for the current thread
static void setStrategyName(String strategyName)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MODE_INHERITABLETHREADLOCAL

public static final String MODE_INHERITABLETHREADLOCAL
See Also:
Constant Field Values

MODE_GLOBAL

public static final String MODE_GLOBAL
See Also:
Constant Field Values

SYSTEM_PROPERTY

public static final String SYSTEM_PROPERTY
See Also:
Constant Field Values
Constructor Detail

PentahoRequestContextHolder

public PentahoRequestContextHolder()
Method Detail

setRequestContext

public static void setRequestContext(IPentahoRequestContext requestContext)
Sets an IPentahoRequestContext for the current thread

Parameters:
requestContext -

getRequestContext

public static IPentahoRequestContext getRequestContext()
Returns the IPentahoRequestContext for the current thread

Returns:
thread requestContext

removeRequestContext

public static void removeRequestContext()
Removes the IPentahoRequestContext for the current thread. It is important that the framework calls this to prevent RequestContext bleed- through between requests as threads are re-used by the server.


setStrategyName

public static void setStrategyName(String strategyName)