Package jakarta.ws.rs.ext
Class RuntimeDelegate
- java.lang.Object
- 
- jakarta.ws.rs.ext.RuntimeDelegate
 
- 
 public abstract class RuntimeDelegate extends Object 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.- Since:
- 1.0
- Author:
- Paul Sandoz, Marc Hadley
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static interfaceRuntimeDelegate.HeaderDelegate<T>Defines 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 SummaryFields Modifier and Type Field Description static StringJAXRS_RUNTIME_DELEGATE_PROPERTYName of the property identifying theRuntimeDelegateimplementation to be returned fromgetInstance().
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedRuntimeDelegate()Allows custom implementations to extend theRuntimeDelegateclass.
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract CompletionStage<SeBootstrap.Instance>bootstrap(Application application, SeBootstrap.Configuration configuration)Perform startup of the application in Java SE environments.abstract CompletionStage<SeBootstrap.Instance>bootstrap(Class<? extends Application> clazz, SeBootstrap.Configuration configuration)Perform startup of the application in Java SE environments.abstract SeBootstrap.Configuration.BuildercreateConfigurationBuilder()Create a new instance of aSeBootstrap.Configuration.Builder.abstract <T> TcreateEndpoint(Application application, Class<T> endpointType)Create a configured instance of the supplied endpoint type.abstract EntityPart.BuildercreateEntityPartBuilder(String partName)Create a new instance of aEntityPart.Builder.abstract <T> RuntimeDelegate.HeaderDelegate<T>createHeaderDelegate(Class<T> type)Obtain an instance of aRuntimeDelegate.HeaderDelegatefor the supplied class.abstract Link.BuildercreateLinkBuilder()Create a new instance of aLink.Builder.abstract Response.ResponseBuildercreateResponseBuilder()Create a new instance of aResponse.ResponseBuilder.abstract UriBuildercreateUriBuilder()Create a new instance of aUriBuilder.abstract Variant.VariantListBuildercreateVariantListBuilder()Create a new instance of aVariant.VariantListBuilder.static RuntimeDelegategetInstance()Obtain aRuntimeDelegateinstance.static voidsetInstance(RuntimeDelegate rd)Set the runtime delegate that will be used by JAX-RS classes.
 
- 
- 
- 
Field Detail- 
JAXRS_RUNTIME_DELEGATE_PROPERTYpublic static final String JAXRS_RUNTIME_DELEGATE_PROPERTY Name of the property identifying theRuntimeDelegateimplementation to be returned fromgetInstance().- See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
getInstancepublic static RuntimeDelegate getInstance() Obtain aRuntimeDelegateinstance. 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/jakarta.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 isjakarta.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 jakarta.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 
 - 
setInstancepublic static void setInstance(RuntimeDelegate rd) 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.
 
 - 
createUriBuilderpublic abstract UriBuilder createUriBuilder() Create a new instance of aUriBuilder.- Returns:
- new UriBuilderinstance.
- See Also:
- UriBuilder
 
 - 
createResponseBuilderpublic abstract Response.ResponseBuilder createResponseBuilder() Create a new instance of aResponse.ResponseBuilder.- Returns:
- new ResponseBuilderinstance.
- See Also:
- Response.ResponseBuilder
 
 - 
createVariantListBuilderpublic abstract Variant.VariantListBuilder createVariantListBuilder() Create a new instance of aVariant.VariantListBuilder.- Returns:
- new VariantListBuilderinstance.
- See Also:
- Variant.VariantListBuilder
 
 - 
createEndpointpublic 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.- Type Parameters:
- T- endpoint type.
- Parameters:
- application- the application configuration.
- endpointType- 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.
 
 - 
createHeaderDelegatepublic abstract <T> RuntimeDelegate.HeaderDelegate<T> createHeaderDelegate(Class<T> type) throws IllegalArgumentException Obtain an instance of aRuntimeDelegate.HeaderDelegatefor the supplied class. An implementation is required to support the following values for type:CacheControl,Cookie,EntityTag,Link,NewCookie,MediaTypeandjava.util.Date.- Type Parameters:
- T- header type.
- Parameters:
- type- the class of the header.
- Returns:
- an instance of HeaderDelegatefor the supplied type.
- Throws:
- IllegalArgumentException- if type is- null.
- See Also:
- RuntimeDelegate.HeaderDelegate
 
 - 
createLinkBuilderpublic abstract Link.Builder createLinkBuilder() Create a new instance of aLink.Builder.- Returns:
- new Link.Builderinstance.
- See Also:
- Link.Builder
 
 - 
createConfigurationBuilderpublic abstract SeBootstrap.Configuration.Builder createConfigurationBuilder() Create a new instance of aSeBootstrap.Configuration.Builder.This method is not intended to be invoked by applications. Call SeBootstrap.Configuration.builder()instead.- Returns:
- new SeBootstrap.Configuration.Builderinstance.
- See Also:
- SeBootstrap.Configuration.Builder
 
 - 
bootstrappublic abstract CompletionStage<SeBootstrap.Instance> bootstrap(Application application, SeBootstrap.Configuration configuration) Perform startup of the application in Java SE environments.This method is not intended to be invoked by applications. Call SeBootstrap.start(Application, SeBootstrap.Configuration)instead.- Parameters:
- application- The application to start up.
- configuration- The bootstrap configuration.
- Returns:
- CompletionStageasynchronously producing handle of the running application- instance.
 
 - 
bootstrappublic abstract CompletionStage<SeBootstrap.Instance> bootstrap(Class<? extends Application> clazz, SeBootstrap.Configuration configuration) Perform startup of the application in Java SE environments.This method is not intended to be invoked by applications. Call SeBootstrap.start(Class, SeBootstrap.Configuration)instead.- Parameters:
- clazz- The application class to instantiate and start.
- configuration- The bootstrap configuration.
- Returns:
- CompletionStageasynchronously producing handle of the running application- instance.
 
 - 
createEntityPartBuilderpublic abstract EntityPart.Builder createEntityPartBuilder(String partName) throws IllegalArgumentException Create a new instance of aEntityPart.Builder.This method is not intended to be invoked by applications. Call EntityPart.withName(String)instead.- Parameters:
- partName- name for this part within the multipart body.
- Returns:
- new EntityPart.Builderinstance with specified part name
- Throws:
- IllegalArgumentException- if- partNameis- null.
- Since:
- 3.1
 
 
- 
 
-