Resteasy Jackson Provider 2.3.6.Final-redhat-1

org.jboss.resteasy.plugins.providers.jackson
Class JacksonJsonpInterceptor

java.lang.Object
  extended by org.jboss.resteasy.plugins.providers.jackson.JacksonJsonpInterceptor
All Implemented Interfaces:
MessageBodyWriterInterceptor

@Provider
public class JacksonJsonpInterceptor
extends Object
implements MessageBodyWriterInterceptor

JSONP is an alternative to normal AJAX requests. Instead of using a XMLHttpRequest a script tag is added to the DOM. The browser will call the corresponding URL and download the JavaScript. The server creates a response which looks like a method call. The parameter is the body of the request. The name of the method to call is normally passed as query parameter. The method has to be present in the current JavaScript environment.

Jackson JSON processor can produce such an response. This interceptor checks if the media type is a JavaScript one if there is a query parameter with the method name. The default name of this query parameter is "callback". So this interceptor is compatible with jQuery.

Version:
$Revision: 1 $
Author:
Holger Morch

Field Summary
static javax.ws.rs.core.MediaType APPLICATION_JAVASCRIPT_MEDIA_TYPE
          "application/javascript" media type.
static javax.ws.rs.core.MediaType APPLICATION_PLUS_JSON_TYPE
          "application/*+json" media type.
static String DEFAULT_CALLBACK_QUERY_PARAMETER
          Default name of the query parameter with the method name.
protected static org.codehaus.jackson.map.ObjectMapper DEFAULT_MAPPER
          Default ObjectMapper for type resolution.
static MediaTypeMap<String> jsonpCompatibleMediaTypes
          If response media type is one of this jsonp response may be created.
protected  org.codehaus.jackson.map.ObjectMapper objectMapper
          The ObjectMapper used to create typing information.
protected  javax.ws.rs.ext.Providers providers
          The Providers used to retrieve the objectMapper from.
static javax.ws.rs.core.MediaType TEXT_JAVASCRIPT_MEDIA_TYPE
          "text/javascript" media type.
static javax.ws.rs.core.MediaType TEXT_JSON_TYPE
          "text/json" media type.
 
Constructor Summary
JacksonJsonpInterceptor()
           
 
Method Summary
 String getCallbackQueryParameter()
          Get the name of the query parameter which contains the JavaScript method name.
protected  org.codehaus.jackson.map.ObjectMapper getObjectMapper(Class<?> type, javax.ws.rs.core.MediaType mediaType)
          Search for an ObjectMapper for the given class and mediaType
 void setCallbackQueryParameter(String callbackQueryParameter)
          Set callback query parameter.
 void setObjectMapper(org.codehaus.jackson.map.ObjectMapper objectMapper)
          Set an fix ObjectMapper.
 void setProviders(javax.ws.rs.ext.Providers providers)
          Setter used by RESTeasy to provide the Providers
 void setUri(javax.ws.rs.core.UriInfo uri)
          Setter used by RESTeasy to provide the UriInfo.
 void write(MessageBodyWriterContext context)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TEXT_JAVASCRIPT_MEDIA_TYPE

public static final javax.ws.rs.core.MediaType TEXT_JAVASCRIPT_MEDIA_TYPE
"text/javascript" media type. Default media type of script tags.


APPLICATION_JAVASCRIPT_MEDIA_TYPE

public static final javax.ws.rs.core.MediaType APPLICATION_JAVASCRIPT_MEDIA_TYPE
"application/javascript" media type.


TEXT_JSON_TYPE

public static final javax.ws.rs.core.MediaType TEXT_JSON_TYPE
"text/json" media type.


APPLICATION_PLUS_JSON_TYPE

public static final javax.ws.rs.core.MediaType APPLICATION_PLUS_JSON_TYPE
"application/*+json" media type.


DEFAULT_CALLBACK_QUERY_PARAMETER

public static final String DEFAULT_CALLBACK_QUERY_PARAMETER
Default name of the query parameter with the method name.

See Also:
Constant Field Values

jsonpCompatibleMediaTypes

public static final MediaTypeMap<String> jsonpCompatibleMediaTypes
If response media type is one of this jsonp response may be created.


DEFAULT_MAPPER

protected static final org.codehaus.jackson.map.ObjectMapper DEFAULT_MAPPER
Default ObjectMapper for type resolution. Used if none is provided by Providers.


objectMapper

protected org.codehaus.jackson.map.ObjectMapper objectMapper
The ObjectMapper used to create typing information.


providers

protected javax.ws.rs.ext.Providers providers
The Providers used to retrieve the objectMapper from.

Constructor Detail

JacksonJsonpInterceptor

public JacksonJsonpInterceptor()
Method Detail

write

public void write(MessageBodyWriterContext context)
           throws IOException,
                  javax.ws.rs.WebApplicationException

Specified by:
write in interface MessageBodyWriterInterceptor
Throws:
IOException
javax.ws.rs.WebApplicationException

getObjectMapper

protected org.codehaus.jackson.map.ObjectMapper getObjectMapper(Class<?> type,
                                                                javax.ws.rs.core.MediaType mediaType)
Search for an ObjectMapper for the given class and mediaType

Parameters:
type - the Class to serialize
mediaType - the response MediaType
Returns:
the ObjectMapper

setUri

@Context
public void setUri(javax.ws.rs.core.UriInfo uri)
Setter used by RESTeasy to provide the UriInfo.

Parameters:
uri - the uri to set

setProviders

@Context
public void setProviders(javax.ws.rs.ext.Providers providers)
Setter used by RESTeasy to provide the Providers

Parameters:
providers -

setObjectMapper

public void setObjectMapper(org.codehaus.jackson.map.ObjectMapper objectMapper)
Set an fix ObjectMapper. If this is not set Providers are used for lookup. If there are is none too, use a default one.

Parameters:
objectMapper -

getCallbackQueryParameter

public String getCallbackQueryParameter()
Get the name of the query parameter which contains the JavaScript method name. Default: callback.

Returns:
the callbackQueryParameter

setCallbackQueryParameter

public void setCallbackQueryParameter(String callbackQueryParameter)
Set callback query parameter.

Parameters:
callbackQueryParameter - the callbackQueryParameter to set
See Also:
getCallbackQueryParameter()

Resteasy Jackson Provider 2.3.6.Final-redhat-1

Copyright © 2013 JBoss by Red Hat. All Rights Reserved.