Class RuntimeDelegate
java.lang.Object
javax.ws.rs.ext.RuntimeDelegate
Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and
various JAX-RS API methods defer to methods of RuntimeDelegate for their
functionality. Regular users of JAX-RS are not expected to use this class
directly and overriding an implementation of this class with a user supplied
subclass may cause unexpected behavior.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceDefines the contract for a delegate that is responsible for converting between the String form of a HTTP header and the corresponding JAX-RS typeT. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringstatic final Stringprivate static RuntimeDelegateprivate static ReflectPermission -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract <T> TcreateEndpoint(Application application, Class<T> endpointType) Create a configured instance of the supplied endpoint type.abstract <T> RuntimeDelegate.HeaderDelegate<T> createHeaderDelegate(Class<T> type) Obtain an instance of a HeaderDelegate for the supplied class.abstract Response.ResponseBuilderCreate a new instance of aResponse.ResponseBuilder.abstract UriBuilderCreate a new instance of aUriBuilder.abstract Variant.VariantListBuilderCreate a new instance of aVariant.VariantListBuilder.private static RuntimeDelegateObtain a RuntimeDelegate instance using the method described ingetInstance().static RuntimeDelegateObtain a RuntimeDelegate instance.static voidSet the runtime delegate that will be used by JAX-RS classes.
-
Field Details
-
JAXRS_RUNTIME_DELEGATE_PROPERTY
- See Also:
-
JAXRS_DEFAULT_RUNTIME_DELEGATE
- See Also:
-
rp
-
rd
-
-
Constructor Details
-
RuntimeDelegate
protected RuntimeDelegate()
-
-
Method Details
-
getInstance
Obtain a RuntimeDelegate instance. If an instance had not already been created and set viasetInstance(RuntimeDelegate), the first invocation will create an instance which will then be cached for future use.The algorithm used to locate the RuntimeDelegate subclass to use consists of the following steps:
-
If a resource with the name of
META-INF/services/javax.ws.rs.ext.RuntimeDelegateexists, then its first line, if present, is used as the UTF-8 encoded name of the implementation class. -
If the $java.home/lib/jaxrs.properties file exists and it is readable by
the
java.util.Properties.load(InputStream)method and it contains an entry whose key isjavax.ws.rs.ext.RuntimeDelegate, then the value of that entry is used as the name of the implementation class. -
If a system property with the name
javax.ws.rs.ext.RuntimeDelegateis defined, then its value is used as the name of the implementation class. - Finally, a default implementation class name is used.
- Returns:
- an instance of RuntimeDelegate
-
If a resource with the name of
-
findDelegate
Obtain a RuntimeDelegate instance using the method described ingetInstance().- Returns:
- an instance of RuntimeDelegate
-
setInstance
Set the runtime delegate that will be used by JAX-RS classes. If this method is not called prior togetInstance()then an implementation will be sought as described ingetInstance().- Parameters:
rd- the runtime delegate instance- Throws:
SecurityException- if there is a security manager and the permission ReflectPermission("suppressAccessChecks") has not been granted.
-
createUriBuilder
Create a new instance of aUriBuilder.- Returns:
- new UriBuilder instance
- See Also:
-
createResponseBuilder
Create a new instance of aResponse.ResponseBuilder.- Returns:
- new ResponseBuilder instance
- See Also:
-
createVariantListBuilder
Create a new instance of aVariant.VariantListBuilder.- Returns:
- new VariantListBuilder instance
- See Also:
-
createEndpoint
public abstract <T> T createEndpoint(Application application, Class<T> endpointType) throws IllegalArgumentException, UnsupportedOperationException Create a configured instance of the supplied endpoint type. How the returned endpoint instance is published is dependent on the type of endpoint.- Parameters:
application- the application configurationendpointType- the type of endpoint instance to be created.- Returns:
- a configured instance of the requested type.
- Throws:
IllegalArgumentException- if application is null or the requested endpoint type is not supported.UnsupportedOperationException- if the implementation supports no endpoint types.
-
createHeaderDelegate
Obtain an instance of a HeaderDelegate for the supplied class. An implementation is required to support the following values for type:Cookie,CacheControl,EntityTag,NewCookie,MediaTypeandjava.util.Date.- Parameters:
type- the class of the header- Returns:
- an instance of HeaderDelegate for the supplied type
- Throws:
IllegalArgumentException- if type is null
-