Package org.restlet
Class Context
- java.lang.Object
-
- org.restlet.Context
-
public class Context extends java.lang.Object
Contextual data and services provided to a set of Restlets. The context is the means by which a Restlet may access the software environment within the framework. It is typically provided by the immediate parent Restlet (Application is the most common case).
Concurrency note: attributes and parameters of a context are stored in concurrent collections that guarantee thread safe access and modification. If several threads concurrently access objects and modify these collections, they should synchronize on the lock of the Context instance.- Author:
- Jerome Louvel
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Context
createChildContext()
Creates a protected child context.java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object>
getAttributes()
Returns a modifiable attributes map that can be used by developers to save information relative to the context.Restlet
getClientDispatcher()
Returns a request dispatcher to available client connectors.static Context
getCurrent()
Returns the context associated to the currentRestlet
.static java.util.logging.Logger
getCurrentLogger()
Returns the current context's logger.Enroler
getDefaultEnroler()
Returns an enroler that can add the user roles based on authenticated user principals.Verifier
getDefaultVerifier()
Returns a verifier that can check the validity of the credentials associated to a request.java.util.concurrent.ScheduledExecutorService
getExecutorService()
Returns the executor service.java.util.logging.Logger
getLogger()
Returns the logger.Series<Parameter>
getParameters()
Returns the modifiable series of parameters.Restlet
getServerDispatcher()
Returns a request dispatcher to component's virtual hosts.void
setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
Sets the modifiable map of attributes.void
setClientDispatcher(Restlet clientDispatcher)
Sets the client dispatcher.static void
setCurrent(Context context)
Sets the context to associated with the current thread.void
setDefaultEnroler(Enroler enroler)
Sets an enroler that can add the user roles based on authenticated user principals.void
setDefaultVerifier(Verifier verifier)
Sets a local verifier that can check the validity of user/secret couples based on Restlet default authorization model.void
setExecutorService(java.util.concurrent.ScheduledExecutorService executorService)
Sets the executor service.void
setLogger(java.lang.String loggerName)
Sets the logger.void
setLogger(java.util.logging.Logger logger)
Sets the logger.void
setParameters(Series<Parameter> parameters)
Sets the modifiable series of parameters.void
setServerDispatcher(Restlet serverDispatcher)
Sets the server dispatcher.
-
-
-
Constructor Detail
-
Context
public Context()
Constructor. Writes log messages to "org.restlet".
-
Context
public Context(java.util.logging.Logger logger)
Constructor.- Parameters:
logger
- The logger instance of use.
-
Context
public Context(java.lang.String loggerName)
Constructor.- Parameters:
loggerName
- The name of the logger to use.
-
-
Method Detail
-
getCurrent
public static Context getCurrent()
Returns the context associated to the currentRestlet
. The context can be the one of aComponent
, anApplication
, aFilter
or any otherRestlet
subclass.
Warning: this method should only be used under duress. You should by default prefer obtaining the current context using methods such asRestlet.getContext()
orResource.getContext()
.
This variable is stored internally as a thread local variable and updated each time a request is handled by aRestlet
via theRestlet.handle(org.restlet.Request, org.restlet.Response)
method.- Returns:
- The current context.
-
getCurrentLogger
public static java.util.logging.Logger getCurrentLogger()
Returns the current context's logger.- Returns:
- The current context's logger.
-
setCurrent
public static void setCurrent(Context context)
Sets the context to associated with the current thread.- Parameters:
context
- The thread's context.
-
createChildContext
public Context createChildContext()
Creates a protected child context. This is especially useful for new application attached to their parent component, to ensure their isolation from the other applications. By default it creates a new context instance with empty or null properties, except the client and server dispatchers that are wrapped for isolation purpose.- Returns:
- The child context.
-
getAttributes
public java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> getAttributes()
Returns a modifiable attributes map that can be used by developers to save information relative to the context. This is a convenient means to provide common objects to all the Restlets and Resources composing an Application.
In addition, this map is a shared space between the developer and the Restlet implementation. For this purpose, all attribute names starting with "org.restlet" are reserved. Currently the following attributes are used:list of currently used attributes Attribute name Class name Description org.restlet.application org.restlet.Application The parent application providing this context, if any. - Returns:
- The modifiable attributes map.
-
getClientDispatcher
public Restlet getClientDispatcher()
Returns a request dispatcher to available client connectors. When you ask the dispatcher to handle a request, it will automatically select the appropriate client connector for your request, based on the request.protocol property or on the resource URI's scheme. This call is blocking and will return an updated response object.- Returns:
- A request dispatcher to available client connectors.
-
getDefaultEnroler
public Enroler getDefaultEnroler()
Returns an enroler that can add the user roles based on authenticated user principals.- Returns:
- An enroler.
-
getDefaultVerifier
public Verifier getDefaultVerifier()
Returns a verifier that can check the validity of the credentials associated to a request.- Returns:
- A verifier.
-
getExecutorService
public java.util.concurrent.ScheduledExecutorService getExecutorService()
Returns the executor service.- Returns:
- The executor service.
-
getLogger
public java.util.logging.Logger getLogger()
Returns the logger.- Returns:
- The logger.
-
getParameters
public Series<Parameter> getParameters()
Returns the modifiable series of parameters. A parameter is a pair composed of a name and a value and is typically used for configuration purpose, like Java properties. Note that multiple parameters with the same name can be declared and accessed.- Returns:
- The modifiable series of parameters.
-
getServerDispatcher
public Restlet getServerDispatcher()
Returns a request dispatcher to component's virtual hosts. This is useful for application that want to optimize calls to other applications hosted in the same component or to the application itself.
The processing is the same as what would have been done if the request came from one of the component's server connectors. It first must match one of the registered virtual hosts. Then it can be routed to one of the attached Restlets, typically an Application.
Note that the RIAP pseudo protocol isn't supported by this dispatcher, you should instead rely on thegetClientDispatcher()
method.- Returns:
- A request dispatcher to the server connectors' router.
-
setAttributes
public void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
Sets the modifiable map of attributes. This method clears the current map and puts all entries in the parameter map.- Parameters:
attributes
- A map of attributes.
-
setClientDispatcher
public void setClientDispatcher(Restlet clientDispatcher)
Sets the client dispatcher.- Parameters:
clientDispatcher
- The new client dispatcher.
-
setDefaultEnroler
public void setDefaultEnroler(Enroler enroler)
Sets an enroler that can add the user roles based on authenticated user principals.- Parameters:
enroler
- An enroler.
-
setDefaultVerifier
public void setDefaultVerifier(Verifier verifier)
Sets a local verifier that can check the validity of user/secret couples based on Restlet default authorization model.- Parameters:
verifier
- A local verifier.
-
setExecutorService
public void setExecutorService(java.util.concurrent.ScheduledExecutorService executorService)
Sets the executor service.- Parameters:
executorService
- The executor service.
-
setLogger
public void setLogger(java.util.logging.Logger logger)
Sets the logger.- Parameters:
logger
- The logger.
-
setLogger
public void setLogger(java.lang.String loggerName)
Sets the logger.- Parameters:
loggerName
- The name of the logger to use.
-
setParameters
public void setParameters(Series<Parameter> parameters)
Sets the modifiable series of parameters. This method clears the current series and adds all entries in the parameter series.- Parameters:
parameters
- A series of parameters.
-
setServerDispatcher
public void setServerDispatcher(Restlet serverDispatcher)
Sets the server dispatcher.- Parameters:
serverDispatcher
- The new server dispatcher.
-
-