The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.
An I/O exception thrown by MessageBodyReader implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+ a client did not send the required authorization credentials to access the requested resource, i.e.
Defines a contract for a delegate responsible for converting between a String form of a message parameter
+ value and the corresponding custom Java type T.
Mandates that a conversion of any default value delegated to a parameter
+ converter annotated with @Lazy annotation SHOULD occur only once the value is actually required (e.g.
Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.
Global binding annotation that can be applied to a container request filter to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.
A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ jakarta.annotation.Priority class-level annotation value when used or applied by JAX-RS runtime.
Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.
+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces
+
+
Search
+
You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API. These items can be searched using part or all of the name, optionally using "camelCase" abbreviations, or multiple search terms separated by whitespace. Some examples:
+The following sections describe the different kinds of pages in this collection.
+
+
Overview
+
The Overview page is the front page of this API document and provides a list of all modules with a summary for each. This page can also contain an overall description of the set of modules.
+
+
+
Module
+
Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These pages may contain the following categories:
+
+
Packages
+
Modules
+
Services
+
+
+
+
Package
+
Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+
Interfaces
+
Classes
+
Enum Classes
+
Exception Classes
+
Annotation Interfaces
+
+
+
+
Class or Interface
+
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+
Class Inheritance Diagram
+
Direct Subclasses
+
All Known Subinterfaces
+
All Known Implementing Classes
+
Class or Interface Declaration
+
Class or Interface Description
+
+
+
+
Nested Class Summary
+
Enum Constant Summary
+
Field Summary
+
Property Summary
+
Constructor Summary
+
Method Summary
+
Required Element Summary
+
Optional Element Summary
+
+
+
+
Enum Constant Details
+
Field Details
+
Property Details
+
Constructor Details
+
Method Details
+
Element Details
+
+
Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+
The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+
Other Files
+
Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+
Use
+
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.
+
+
+
Tree (Class Hierarchy)
+
There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.
+
+
When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+
When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
+
+
+
+
Deprecated API
+
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.
+
+
+
All Packages
+
The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+
All Classes and Interfaces
+
The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
Index
+
The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.
+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.
The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.
Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.
A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a runtime configuration scope of a particular
+ resource or sub-resource method; i.e.
Get the immutable set of registered JAX-RS component (such as provider, root resource or feature)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance.
Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.
+
+
getRel() - Method in class jakarta.ws.rs.core.Link
+
+
Returns the value associated with the link rel param, or null if this param is not specified.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.
An I/O exception thrown by MessageBodyReader implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+ a client did not send the required authorization credentials to access the requested resource, i.e.
Register a listener, which will be called when this SseBroadcaster closes a given event SseEventSink or
+ tries to write to a given SseEventSink that is already closed (either by client closing the connection
+ or by calling SseEventSink.close() on the server side.
This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.
Register a listener, which will be called when an exception is thrown by a given SseEventSink
+ when this SseBroadcaster tries to write to it or close it.
Defines a contract for a delegate responsible for converting between a String form of a message parameter
+ value and the corresponding custom Java type T.
Mandates that a conversion of any default value delegated to a parameter
+ converter annotated with @Lazy annotation SHOULD occur only once the value is actually required (e.g.
Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.
Global binding annotation that can be applied to a container request filter to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.
A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ jakarta.annotation.Priority class-level annotation value when used or applied by JAX-RS runtime.
Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause).
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.
Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied encoded value.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.
Constructs a new JAX-RS runtime response processing exception for a specific response with the
+ specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the
+ class and detail message of cause).
Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ web targets created by the client instance that is using this SSL context.
Create a new event source builder that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.
Parses the uriTemplate string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.
Constructs a new exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause).
Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.
+
+
value() - Element in annotation interface jakarta.ws.rs.Path
+
+
Defines a URI template for the resource class or method, must not include matrix parameters.
+
+
value() - Element in annotation interface jakarta.ws.rs.PathParam
+
+
Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property.
+
+
value() - Element in annotation interface jakarta.ws.rs.Produces
Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.
Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.
Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
Jakarta RESTful Web Services 4.0 API Specification
+
+
Jakarta RESTful Web Services provides a foundational API to develop web services
+ following the Representational State Transfer (REST) architectural pattern.
+ This API is distributed under the Eclipse Foundation Specification License.
+
+
Web resources
+
+
JAX-RS core APIs enable developers to rapidly build Web applications in Java that are characteristic
+ of the best designed parts of the Web. The API brings in support for designing and implementing
+ Web resources and application that follow principles of
+ REST (Representational
+ State Transfer) architectural style to the Java Platform.
+
+
In JAX-RS, Java POJOs can be exposed as RESTful Web resources independent of the underlying technology
+ using a high level easy-to-use declarative annotation-based API. E.g.:
JAX-RS client API is a Java based API used to access resources on the Web. It is not restricted
+ to resources implemented using JAX-RS. It provides a higher-level abstraction compared to a
+ plain HTTP communication API as well as integration with the
+ JAX-RS extension providers, in order to enable concise and efficient implementation of
+ reusable client-side solutions that leverage existing and well
+ established client-side implementations of HTTP-based communication.
+
+
The JAX-RS Client API also encapsulates the Uniform Interface Constraint –
+ a key constraint of the REST architectural style – and associated data
+ elements as client-side Java artifacts and supports a pluggable architecture
+ by defining multiple extension points.
+
+
Following example demonstrates a simple JAX-RS client API usage scenario:
JAX-RS applications may provide custom extensions to the client and server runtime using the
+ common extension APIs defined in jakarta.ws.rs.ext
+ package, namely entity providers and entity provider interceptors. Additionally, request and
+ response processing chains on client as well as server side can be further customized by
+ implemening custom request and response filters - see the
+ ClientRequestFilter,
+ ClientResponseFilter,
+ ContainerRequestFilter,
+ ContainerResponseFilter
+ APIs.
Identifies the application path that serves as the base URI for all resource URIs provided by
+ Path. May only be applied to a subclass of Application.
+
+
+ When published in a Servlet container, the value of the application path may be overridden using a servlet-mapping
+ element in the web.xml.
+
Defines the base URI for all resource URIs. A trailing '/' character will be automatically appended if one is not
+ present.
+
+
+ The supplied value is automatically percent encoded to conform to the path production of
+ RFC 3986 section 3.3. Note that percent encoded values
+ are allowed in the value, an implementation will recognize such values and will not double encode the '%' character.
+
The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.
+
+ The JAX-RS runtime will instantiate the object and inject all it's fields and properties annotated with either one of
+ the @XxxParam annotation (@PathParam, @FormParam ...) or the
+ @Context annotation. For the POJO classes same instantiation and injection rules
+ apply as in case of instantiation and injection of request-scoped root resource classes.
+
+ For example:
+
+
+ public class MyBean {
+ @FormParam("myData")
+ private String data;
+
+ @HeaderParam("myHeader")
+ private String header;
+
+ @PathParam("id")
+ public void setResourceId(String id) {...}
+
+ ...
+ }
+
+ @Path("myresources")
+ public class MyResources {
+ @POST
+ @Path("{id}")
+ public void post(@BeanParam MyBean myBean) {...}
+
+ ...
+ }
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Indicates the run-time context in which an annotated JAX-RS provider is applicable. If a @ConstrainedTo
+ annotation is not present on a JAX-RS provider type declaration, the declared provider may be used in any run-time
+ context. If such a annotation is present, the JAX-RS runtime will enforce the specified usage restriction.
+
+ @ConstrainedTo(RuntimeType.SERVER)
+ public class MyWriterInterceptor implements WriterInterceptor {
+ ...
+ }
+
+
+ It is a configuration error to constraint a JAX-RS provider implementation to a run-time context in which the
+ provider cannot be applied. In such case a JAX-RS runtime SHOULD inform a user about the issue and ignore the
+ provider implementation in further processing.
+
+
+ For example, the following restriction of a ClientRequestFilter to run only as part of a
+ JAX-RS server run-time would be considered invalid:
+
+
+
+ // reported as invalid and ignored by JAX-RS runtime
+ @ConstrainedTo(RuntimeType.SERVER)
+ public class MyFilter implements ClientRequestFilter {
+ ...
+ }
+
Defines the media types that the methods of a resource class or MessageBodyReader can accept.
+ If not specified, a container will assume that any media type is acceptable. Method level annotations override a
+ class level annotation. A container is responsible for ensuring that the method invoked is capable of consuming the
+ media type of the HTTP request entity body. If no such method is available the container must respond with a HTTP
+ "415 Unsupported Media Type" as specified by RFC 2616.
A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any
+ leading or trailing white-spaces in a single type entry being ignored. For example:
+
+
+ { "image/jpeg, image/gif ", " image/png" }
+
+
+ Use of the comma-separated form allows definition of a common string constant for use on multiple targets.
Binds the value of a HTTP cookie to a resource method parameter, resource class field, or resource class bean
+ property. A default value can be specified using the DefaultValue annotation.
+
+ The type T of the annotated parameter, field or property must either:
+
+
Have a constructor that accepts a single String argument
+
Have a static method named valueOf or fromString that accepts a single String argument (see, for
+ example, Integer.valueOf(String))
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
Be List<T>, Set<T>, SortedSet<T> or T[] array, where T satisfies 2, 3, 4
+ or 5 above. The resulting collection is read-only.
+
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Defines the default value of request meta-data that is bound using one of the following annotations:
+ PathParam, QueryParam, MatrixParam,
+ CookieParam, FormParam, or HeaderParam. The default value
+ is used if the corresponding meta-data is not present in the request.
+
+ If the type of the annotated parameter is List, Set or
+ SortedSet then the resulting collection will have a single entry mapped from the supplied default
+ value.
+
+
+ If this annotation is not used and the corresponding meta-data is not present in the request, the value will be an
+ empty collection for List, Set or SortedSet, null for other object types, and the
+ Java-defined default for primitive types.
+
Disables automatic decoding of parameter values bound using QueryParam, PathParam, FormParam
+ or MatrixParam. Using this annotation on a method will disable decoding for all parameters. Using this
+ annotation on a class will disable decoding for all parameters of all methods.
Binds the value(s) of a form parameter contained within a request entity body to a resource method parameter. Values
+ are URL decoded unless this is disabled using the Encoded annotation. A default value can be specified using
+ the DefaultValue annotation. If the request entity body is absent or is an unsupported media type, the
+ default value is used.
+
+ The type T of the annotated parameter must either:
+
+
Be a primitive type
+
Have a constructor that accepts a single String argument
+
Have a static method named valueOf or fromString that accepts a single String argument
+ (see, for example, Integer.valueOf(String))
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
Be List<T>, Set<T>, SortedSet<T> or T[] array, where T satisfies 2, 3 or
+ 4 above. The resulting collection is read-only.
+
+
+
+ If the type is not one of the collection types listed in 5 above and the form parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+
+
+
+ If this annotation is used to bind form parameters, a JAX-RS implementation MUST use the entity provider API
+ to create a Form and derive the values from this instance. If there is at least one
+ FormParam for a resource method, JAX-RS implementations MUST support a Form
+ entity parameter for the same method. Support for other entity parameter types is OPTIONAL.
+
+
+
+ Note that, whilst the annotation target permits use on fields and methods, this annotation is only required to be
+ supported on resource method parameters.
+
Defines the name of the form parameter whose value will be used to initialize the value of the annotated method
+ argument. The name is specified in decoded form, any percent encoded literals within the value will not be decoded
+ and will instead be treated as literal text. E.g. if the parameter name is "a b" then the value of the annotation is
+ "a b", not "a+b" or "a%20b".
Binds the value(s) of a HTTP header to a resource method parameter, resource class field, or resource class bean
+ property. A default value can be specified using the DefaultValue annotation.
+
+ The type T of the annotated parameter, field or property must either:
+
+
Be a primitive type
+
Have a constructor that accepts a single String argument
+
Have a static method named valueOf or fromString that accepts a single String argument
+ (see, for example, Integer.valueOf(String))
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
Be List<T>, Set<T>, SortedSet<T> or T[] array, where T satisfies 2, 3 or
+ 4 above. The resulting collection is read-only.
+
+
+
+ If the type is not one of the collection types listed in 5 above and the header parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Defines the name of the HTTP header whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. Case insensitive.
Associates the name of a HTTP method with an annotation. A Java method annotated with a runtime annotation that is
+ itself annotated with this annotation will be used to handle HTTP requests of the indicated HTTP method. It is an
+ error for a method to be annotated with more than one annotation that is annotated with HttpMethod.
Binds the value(s) of a URI matrix parameter to a resource method parameter, resource class field, or resource class
+ bean property. Values are URL decoded unless this is disabled using the Encoded annotation. A default value
+ can be specified using the DefaultValue annotation.
+
+ Note that the @MatrixParamannotation value refers to a name of a matrix parameter that
+ resides in the last matched path segment of the Path-annotated Java structure that injects the value of the
+ matrix parameter.
+
+
+ The type T of the annotated parameter, field or property must either:
+
+
+
Be a primitive type
+
Have a constructor that accepts a single String argument
+
Have a static method named valueOf or fromString that accepts a single String argument
+ (see, for example, Integer.valueOf(String))
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
Be List<T>, Set<T>, SortedSet<T> or T[] array, where T satisfies 2, 3 or
+ 4 above. The resulting collection is read-only.
+
+
+
+ If the type is not one of the collection types listed in 5 above and the matrix parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.
Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within
+ the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then
+ the value of the annotation is "a b", not "a+b" or "a%20b".
Meta-annotation used to create name binding annotations for filters and interceptors.
+
+ Name binding via annotations is only supported as part of the Server API. In name binding, a name-binding
+ annotation is first defined using the @NameBinding meta-annotation:
+
+
+
+ The defined name-binding annotation is then used to decorate a filter or interceptor class (more than one filter or
+ interceptor may be decorated with the same name-binding annotation):
+
+
+ @Logged
+ public class LoggingFilter
+ implements ContainerRequestFilter, ContainerResponseFilter {
+ ...
+ }
+
+
+ At last, the name-binding annotation is applied to the resource method(s) to which the name-bound JAX-RS provider(s)
+ should be bound to:
+
+
+
+ A name-binding annotation may also be attached to a custom JAX-RS Application subclass. In
+ such case a name-bound JAX-RS provider bound by the annotation will be applied to all resource and
+ sub-resource methods in the JAX-RS application:
+
+
+ @Logged
+ @ApplicationPath("myApp")
+ public class MyApplication extends jakarta.ws.rs.core.Application {
+ ...
+ }
+
+ Note that this constructor does not validate the presence of HTTP Allow header. I.e. it is possible to use
+ the constructor to create a client-side exception instance even for an invalid HTTP 405 response content
+ returned from a server.
+
+ Note that this constructor does not validate the presence of HTTP Allow header. I.e. it is possible to use
+ the constructor to create a client-side exception instance even for an invalid HTTP 405 response content
+ returned from a server.
+
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+
a client did not send the required authorization credentials to access the requested resource, i.e.
+ Authorization HTTP header is missing in the request,
+
or - in case the request already contains the HTTP Authorization header - then the exception indicates
+ that authorization has been refused for the credentials contained in the request header.
Identifies the URI path that a resource class or class method will serve requests for.
+
+
+ Paths are relative. For an annotated class the base URI is the application path, see ApplicationPath. For an
+ annotated method the base URI is the effective URI of the containing class. For the purposes of absolutizing a path
+ against the base URI , a leading '/' in a path is ignored and base URIs are treated as if they ended in '/'. E.g.:
+
+ In the above, if the application path is catalogue and the application is deployed at
+ http://example.com/, then GET requests for http://example.com/catalogue/widgets will be
+ handled by the getList method while requests for http://example.com/catalogue/widgets/nnn
+ (where nnn is some value) will be handled by the getWidget method. The same would apply
+ if the value of either @Path annotation started with '/'.
+
+
+
+ Classes and methods may also be annotated with Consumes and Produces to filter the requests they will
+ receive.
+
Defines a URI template for the resource class or method, must not include matrix parameters.
+
+
+ Embedded template parameters are allowed and are of the form:
+
+
+
+ param = "{" *WSP name *WSP [ ":" *WSP regex *WSP ] "}"
+ name = (ALPHA / DIGIT / "_")*(ALPHA / DIGIT / "." / "_" / "-" ) ; \w[\w\.-]*
+ regex = *( nonbrace / "{" *nonbrace "}" ) ; where nonbrace is any char other than "{" and "}"
+
+
+
+ See RFC 5234 for a description of the syntax used above and the
+ expansions of WSP, ALPHA and DIGIT. In the above name is the template parameter name
+ and the optional regex specifies the contents of the capturing group for the parameter. If regex is
+ not supplied then a default value of [^/]+ which terminates at a path segment boundary, is used. Matching of
+ request URIs to URI templates is performed against encoded path values and implementations will not escape literal
+ characters in regex automatically, therefore any literals in regex should be escaped by the author according
+ to the rules of RFC 3986 section 3.3. Caution is
+ recommended in the use of regex, incorrect use can lead to a template parameter matching unexpected URI
+ paths. See Pattern for
+ further information on the syntax of regular expressions. Values of template parameters may be extracted using
+ PathParam.
+
+
+
+ The literal part of the supplied value (those characters that are not part of a template parameter) is automatically
+ percent encoded to conform to the path production of
+ RFC 3986 section 3.3. Note that percent encoded values
+ are allowed in the literal part of the value, an implementation will recognize such values and will not double encode
+ the '%' character.
+
Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property. The value is URL decoded unless this is disabled
+ using the @Encoded annotation. A default value can be specified using the @DefaultValue annotation.
+
+ The type of the annotated parameter, field or property must either:
+
+
Be PathSegment, the value will be the final segment of the matching part of the path.
+ See UriInfo for a means of retrieving all request path segments.
+
Be List<jakarta.ws.rs.core.PathSegment>, the value will be a list of PathSegment corresponding to
+ the path segment(s) that matched the named template parameter. See UriInfo for a means of
+ retrieving all request path segments.
+
Be a primitive type.
+
Have a constructor that accepts a single String argument.
+
Have a static method named valueOf or fromString that accepts a single String argument (see, for
+ example, Integer.valueOf(String)).
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
+
+
+ The injected value corresponds to the latest use (in terms of scope) of the path parameter. E.g. if a class and a
+ sub-resource method are both annotated with a @Path containing the same URI template parameter, use
+ of @PathParam on a sub-resource method parameter will bind the value matching URI template parameter in the
+ method's @Path annotation.
+
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property.
Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated
+ method parameter, class field or property. See Path.value() for a description of the syntax of template
+ parameters.
+
+
+ E.g. a class annotated with: @Path("widgets/{id}") can have methods annotated whose arguments are annotated
+ with @PathParam("id").
A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ jakarta.annotation.Priority class-level annotation value when used or applied by JAX-RS runtime.
+
+ For example, JAX-RS filters and interceptors are grouped in chains for each of the message processing extension
+ points: Pre, PreMatch, Post as well as ReadFrom and WriteTo. Each of these chains is sorted based on priorities which
+ are represented as integer numbers. All chains, except Post, are sorted in ascending order; the lower the number the
+ higher the priority. The Post filter chain is sorted in descending order to ensure that response filters are executed
+ in reverse order.
+
+
+ JAX-RS components that belong to the same priority class (same integer value) are executed in an
+ implementation-defined manner. By default, when the @Priority annotation is absent on a component, for which
+ a priority should be applied, the USER priority value is used.
+
A base JAX-RS runtime processing exception.
+
+ The exception of this type is thrown during HTTP request or response processing, to signal a runtime processing
+ failure. Typical classes of failures covered by ProcessingException include
+
+
failures in filter or interceptor chain execution,
+
errors caused by missing message body readers or writers for the particular Java type and media type
+ combinations,
+
propagated IO exceptions thrown by entity readers and writers during entity serialization and de-serialization.
+
+ as well as any other JAX-RS runtime processing errors. The exception message or nested Throwable cause SHOULD
+ contain additional information about the reason of the processing failure.
+
+ Note that the exception is used to indicate (internal) JAX-RS processing errors. It is not used to indicate HTTP
+ error response states. A HTTP error response is represented by a WebApplicationException class or
+ one of it's sub-classes.
+
Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause).
Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause). This constructor is useful for runtime exceptions that are little more than wrappers for other
+ throwables.
+
+
Parameters:
+
cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value
+ is permitted, and indicates that the cause is nonexistent or unknown.)
+ Constructs a new JAX-RS runtime processing exception with the specified detail message and cause.
+
+ Note that the detail message associated with cause is not automatically incorporated in this runtime
+ exception's detail message.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value
+ is permitted, and indicates that the cause is nonexistent or unknown.)
Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized,
+ and may subsequently be initialized by a call to Throwable.initCause(java.lang.Throwable).
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
Defines the media type(s) that the methods of a resource class or MessageBodyWriter can
+ produce. If not specified then a container will assume that any type can be produced. Method level annotations
+ override a class level annotation. A container is responsible for ensuring that the method invoked is capable of
+ producing one of the media types requested in the HTTP request. If no such method is available the container must
+ respond with a HTTP "406 Not Acceptable" as specified by RFC 2616.
+
+
+ A method for which there is a single-valued @Produces is not required to set the media type of
+ representations that it produces: the container will use the value of the @Produces when sending a response.
+
A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any
+ leading or trailing white-spaces in a single type entry being ignored. For example:
+
+
+ { "image/jpeg, image/gif ", " image/png" }
+
+
+ Use of the comma-separated form allows definition of a common string constant for use on multiple targets.
Binds the value(s) of a HTTP query parameter to a resource method parameter, resource class field, or resource class
+ bean property. Values are URL decoded unless this is disabled using the Encoded annotation. A default value
+ can be specified using the DefaultValue annotation.
+
+ The type T of the annotated parameter, field or property must either:
+
+
Be a primitive type
+
Have a constructor that accepts a single String argument
+
Have a static method named valueOf or fromString that accepts a single String argument
+ (see, for example, Integer.valueOf(String))
+
Have a registered implementation of ParamConverterProvider JAX-RS extension SPI that
+ returns a ParamConverter instance capable of a "from string" conversion for the type.
+
Be List<T>, Set<T>, SortedSet<T> or T[] array, where T satisfies 2, 3 or
+ 4 above. The resulting collection is read-only.
+
+
+
+ If the type is not one of the collection types listed in 5 above and the query parameter is represented by multiple
+ values then the first value (lexically) of the parameter is used.
+
+
+
+ Because injection occurs at object creation time, use of this annotation on resource class fields and bean properties
+ is only supported for the default per-request resource class lifecycle. Resource classes using other lifecycles
+ should only use this annotation on resource method parameters.
+
Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property.
Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method
+ argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within
+ the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then
+ the value of the annotation is "a b", not "a+b" or "a%20b".
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Convenience method for bulk-loading configuration from a property supplier.
+
+ Implementations ask the passed provider function for the actual values of all their supported properties, before
+ returning from this configuration method. For each single request the implementation provides the name of the
+ property and the expected data type of the value. If no such property exists (i. e. either the name is unknown or
+ misspelled, or the type does not exactly match), the Optional is empty.
+
+
+
Type Parameters:
+
T - Type of the requested property value.
+
Parameters:
+
propertiesProvider - Retrieval function of externally managed properties. MUST NOT return null.
Optional convenience method to bulk-load external configuration.
+
+ Implementations are free to support any external configuration mechanics, or none at all. It is completely up to the
+ implementation what set of properties is effectively loaded from the provided external configuration, possibly none
+ at all.
+
+
+ If the passed external configuration mechanics is unsupported, this method MUST simply do nothing.
+
+
+ Portable applications should not call this method, as the outcome is completely implementation-specific.
+
+
+
Parameters:
+
externalConfig - source of externally managed properties
+ This policy is used in secure socket handshake to control whether the server requests client authentication,
+ and whether successful client authentication is mandatory (i. e. connection attempt will fail for
+ invalid clients).
+
+
+
Since:
+
3.1
+
Author:
+
Markus KARG (markus@headcrashing.eu)
+
+
+
+
+
+
+
+
Nested Class Summary
+
+
Nested classes/interfaces inherited from class java.lang.Enum
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Provides information needed by the JAX-RS implementation for bootstrapping an application.
+
+ The configuration essentially consists of a set of parameters. While the set of actually effective keys is product
+ specific, the key constants defined by the SeBootstrap.Configuration interface MUST be effective on all compliant
+ products. Any unknown key MUST be silently ignored.
+
Configuration key for the hostname or IP address an application is bound to.
+
+ A compliant implementation at least MUST accept string values bearing hostnames, IP4 address text representations,
+ and IP6 address text representations. If a hostname string, the special IP4 address string "0.0.0.0" or
+ "::" for IP6 is provided, the application MUST be bound to all IP addresses assigned to that
+ hostname. If the hostname string is "localhost" the application MUST be bound to the local host's loopback
+ adapter only.
+
Configuration key for the TCP port an application is bound to.
+
+
+ A compliant implementation MUST accept java.lang.Integer values.
+
+
+ There is no default port mandated by this specification, but the default value of this property is
+ DEFAULT_PORT (i. e. -1). A compliant implementation MUST use its own default port when
+ the value-1 is provided, and MAY apply (but is not obligated to) auto-selection and
+ range-scanning algorithms.
+
Provides access to the configuration actually used by the implementation used to create this instance.
+
+ This may, or may not, be the same instance passed to SeBootstrap.start(Application, Configuration), not even an
+ equal instance, as implementations MAY create a new intance and MUST update at least the PORT property with
+ the actually used value. Portable applications should not make any assumptions but always explicitly read the actual
+ values from the configuration returned from this method.
+
+
+
Returns:
+
The configuration actually used to create this instance.
Bootstrap class used to startup a JAX-RS application in Java SE environments.
+
+ The SeBootstrap class is available in a Jakarta EE container environment as well; however, support for the Java SE
+ bootstrapping APIs is not required in container environments.
+
+
+ In a Java SE environment an application is getting started by the following command using default configuration
+ values (i. e. mounting application at http://localhost:80/or a different port (there is no
+ particular default port mandated by this specification). As the JAX-RS implementation is free to choose any port
+ by default, the caller will not know the actual port unless explicitly checking the actual configuration of the
+ instance started:
+
+
+ stopResult is not further defined but solely acts as a wrapper around a native result provided by the
+ particular JAX-RS implementation. Portable applications should not assume any particular data type or value.
+
+
+ Protocol, host address, port and root path can be overridden explicitly. As the JAX-RS implementation is bound to
+ that values, no querying of the actual configuration is needed in that case:
+
+ Bulk-loading allows to attach configuration storages easily without the need to write down all properties to be
+ transferred. Hence, even properties unknown to the application author will get channeled into the implementation.
+ This can be done both, explicitly (hence portable) and implicitly (hence not necessarily portable as no
+ particular configuration mechanics are required to be supported by compliant implementations):
+
+
+
+ // Explicit use of particular configuration mechanics is portable
+ SeBootstrap.Configuration.builder().from((name, type) -> externalConfigurationSystem.getValue(name, type)).build();
+
+ // Implicitly relying on the support of particular configuration mechanics by
+ // the actual JAX-RS implementation is not necessarily portable
+ SeBootstrap.Configuration.builder().from(externalConfigurationSystem).build();
+
Starts the provided application using the specified configuration. Creates application instance
+ from class using default constructor. Injection is not supported.
+
+
+ This method is intended to be used in Java SE environments only. The outcome of invocations in Jakarta EE container
+ environments is undefined.
+
+
+
Parameters:
+
clazz - The application class.
+
configuration - Provides information needed for bootstrapping the application.
+
Returns:
+
CompletionStage (possibly asynchronously) producing handle of the running application
+ instance.
Starts the provided application using a default configuration. Creates application instance
+ from class using default constructor. Injection is not supported.
+
+
+ This method is intended to be used in Java SE environments only. The outcome of invocations in Jakarta EE container
+ environments is undefined.
+
+
+
Parameters:
+
clazz - The application class.
+
Returns:
+
CompletionStage (possibly asynchronously) producing handle of the running application
+ instance.
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
+
+
Parameters:
+
retryAfter - a date/time after which the failed request may be retried.
+
cause - the underlying cause of the exception.
+
+
+
+
+
+
ServiceUnavailableException
+
publicServiceUnavailableException(String message,
+ Date retryAfter,
+ Throwable cause)
+
Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed
+ request and an underlying request failure cause.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
retryAfter - a date/time after which the failed request may be retried.
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
+
+
Parameters:
+
retryAfter - decimal interval in seconds after which the failed request may be retried.
+
cause - the underlying cause of the exception.
+
+
+
+
+
+
ServiceUnavailableException
+
publicServiceUnavailableException(String message,
+ Long retryAfter,
+ Throwable cause)
+
Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the
+ failed request and an underlying request failure cause.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
retryAfter - decimal interval in seconds after which the failed request may be retried.
requestTime - time of sending the original request that may be used to compute the retry time (in case the retry
+ time information specified as a decimal interval in seconds).
+
Returns:
+
time when the request may be retried or null if there is no retry information available.
+ This exception may be thrown by a resource method, provider or StreamingOutput
+ implementation if a specific HTTP error response needs to be produced. Only effective if thrown prior to the response
+ being committed.
Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.
Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.
+
+
Parameters:
+
response - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).
Construct a new instance using the supplied message and response.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
response - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).
+
Since:
+
2.0
+
+
+
+
+
+
WebApplicationException
+
publicWebApplicationException(int status)
+
Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code
+ and the associated HTTP status reason phrase.
+
+
Parameters:
+
status - the HTTP status code that will be returned to the client.
+
+
+
+
+
+
WebApplicationException
+
publicWebApplicationException(String message,
+ int status)
+
Construct a new instance with a supplied message and HTTP status code.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
status - the HTTP status code that will be returned to the client.
Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.
+
+
Parameters:
+
status - the HTTP status code that will be returned to the client.
Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message
+ generated from the HTTP status code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.
+
+
Parameters:
+
cause - the underlying cause of the exception.
+
response - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).
Construct a new instance with the supplied message, root cause and response.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
cause - the underlying cause of the exception.
+
response - the response that will be returned to the client, a value of null will be replaced with an internal
+ server error response (status code 500).
+
Since:
+
2.0
+
+
+
+
+
+
WebApplicationException
+
publicWebApplicationException(Throwable cause,
+ int status)
+
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
+
+
Parameters:
+
cause - the underlying cause of the exception.
+
status - the HTTP status code that will be returned to the client.
+
+
+
+
+
+
WebApplicationException
+
publicWebApplicationException(String message,
+ Throwable cause,
+ int status)
+
Construct a new instance with the supplied message, root cause and HTTP status code.
+
+
Parameters:
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
cause - the underlying cause of the exception.
+
status - the HTTP status code that will be returned to the client.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
+
+
Parameters:
+
cause - the underlying cause of the exception.
+
status - the HTTP status code that will be returned to the client.
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+ a client did not send the required authorization credentials to access the requested resource, i.e.
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+ a client did not send the required authorization credentials to access the requested resource, i.e.
Invoke HTTP GET method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. Note that in case a processing of a properly received response fails,
+ the wrapped processing exception will be of ResponseProcessingException type and will contain the
+ Response instance whose processing has failed.
Invoke HTTP GET method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
Invoke HTTP GET method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP GET method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
Invoke HTTP PUT method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
+
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
Invoke HTTP PUT method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
Invoke HTTP PUT method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP PUT method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
Invoke HTTP POST method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
+
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
Invoke HTTP POST method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
Invoke HTTP POST method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP POST method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
Invoke HTTP DELETE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke HTTP DELETE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
Invoke HTTP DELETE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP DELETE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
Invoke HTTP HEAD method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke HTTP HEAD method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke HTTP OPTIONS method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke HTTP OPTIONS method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
Invoke HTTP OPTIONS method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP OPTIONS method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
Invoke HTTP TRACE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke HTTP TRACE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
Invoke HTTP TRACE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke HTTP TRACE method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
name - method name.
+
responseType - Java type the response entity will be converted to.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
name - method name.
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown
+ in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped
+ processing exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed.
+
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the specified response type is not Response. In case a processing of a
+ properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
Invoke an arbitrary method for the current request asynchronously.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException
+ thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses
+ thrown in case the received response status code is not successful and the generic type of the supplied response callback is not Response. In case
+ a processing of a properly received response fails, the wrapped processing exception will be of
+ ResponseProcessingException type and will contain the Response instance whose processing has failed.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+ Client is the main entry point to the fluent API used to build and execute client requests in order to consume
+ responses returned.
+
+ Clients are heavy-weight objects that manage the client-side communication infrastructure. Initialization as well as
+ disposal of a Client instance may be a rather expensive operation. It is therefore advised to construct only
+ a small number of Client instances in the application. Client instances must be properly
+ closed before being disposed to avoid leaking resources.
+ Close client instance and all it's associated resources. Subsequent calls have no effect and are ignored. Once the
+ client is closed, invoking any other method on the client instance would result in an IllegalStateException
+ being thrown.
+
+ Calling this method effectively invalidates all resource targets produced by the client instance.
+ Invoking any method on such targets once the client is closed would result in an IllegalStateException being
+ thrown.
+ Build an invocation builder from a link. It uses the URI and the type of the link to initialize the invocation
+ builder. The type is used as the initial value for the HTTP Accept header, if present.
+
+
+
Parameters:
+
link - link to build invocation from. Must not be null.
Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ web targets created by the client instance that is using this SSL context.
Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ web targets created by the client instance that is using this SSL context. The SSL context is
+ expected to have all the security infrastructure initialized, including the key and trust managers.
+
+ Setting a SSL context instance resets any key store or
+ trust store values previously specified.
+
+
+
Parameters:
+
sslContext - secure socket protocol implementation which acts as a factory for secure socket factories or
+ SSL engines. Must not be null.
Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+
+ Setting a key store instance resets any SSL context instance value
+ previously specified.
+
+
+ Note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client
+ certificate authentication).
+
+
+
Parameters:
+
keyStore - client-side key store. Must not be null.
Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+
+ Setting a key store instance resets any SSL context instance value
+ previously specified.
+
+
+ Note that for improved security of working with password data and avoid storing passwords in Java string objects, the
+ keyStore(java.security.KeyStore, char[]) version of the method can be utilized. Also note that a custom key
+ store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate
+ authentication).
+
+
+
Parameters:
+
keyStore - client-side key store. Must not be null.
Set the client-side trust store. Trust store is expected to contain certificates from other parties the client is you
+ expect to communicate with, or from Certificate Authorities that are trusted to identify other parties.
+
+ Setting a trust store instance resets any SSL context instance value
+ previously specified.
+
+
+ In case a custom trust store or custom SSL context is not specified, the trust management will be configured to use
+ the default Java runtime settings.
+
+
+
Parameters:
+
trustStore - client-side trust store. Must not be null.
+ Provided executor service will be used for executing asynchronous tasks.
+
+ When running in a Jakarta EE container, implementations are required to use the container-managed executor service by
+ default. In Java SE, the default is implementation-specific. In either case, calling this method will override the
+ default.
+
+
Parameters:
+
executorService - executor service to be used for async invocations.
+ Provided executor service will be used for executing scheduled asynchronous tasks.
+
+ When running in a Jakarta EE container, implementations are required to use the container-managed scheduled executor
+ service by default. In Java SE the default is implementation-specific. In either case, calling this method will
+ override the default.
+
+
Parameters:
+
scheduledExecutorService - executor service to be used for scheduled async invocations.
+ The value is the timeout to read a response. If the server doesn't respond within the defined timeframe,
+ ProcessingException is thrown with TimeoutException as a cause.
+
+ Value 0 represents infinity. Negative values are not allowed.
Client request filter context.
+
+ A mutable class that provides request-specific information for the filter, such as request URI, message headers,
+ message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific
+ information.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Returns the property with the given name registered in the current request/response exchange context, or null
+ if there is no property by that name.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
Returns:
+
an Object containing the value of the property, or null if no property exists matching the
+ given name.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
+
Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+ If a null value is passed, the effect is the same as calling the removeProperty(String) method.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
object - an Object representing the property to be bound.
Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to getProperty(java.lang.String) to retrieve the property value will return null.
+
+
Parameters:
+
name - a String specifying the name of the property to be removed.
the message header value. If the message header is not present then null is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.
Checks whether a header with a specific name and value (or item of the token-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valueSeparatorRegex - Regular expression that separates the header value into single values.
+ null does not split.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
Get the annotations attached to the entity instance.
+
+ Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such
+ as the ones attached using
+ Entity(Object, jakarta.ws.rs.core.MediaType, java.lang.annotation.Annotation[]) method). The entity
+ instance annotations array does not include annotations declared on the entity implementation class or its ancestors.
+
Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided response back to the client. The provided
+ response goes through the chain of applicable response filters.
+
+
Parameters:
+
response - response to be sent back to the client.
An extension interface implemented by client request filters.
+
+ Filters implementing this interface MUST be annotated with @Provider to be
+ discovered by the JAX-RS runtime. This type of filters is supported only as part of the Client API.
Filter method called before a request has been dispatched to a client transport layer.
+
+ Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation
+ value.
Client response filter context.
+
+ A mutable class that provides response-specific information for the filter, such as message headers, message entity
+ or request-scoped properties. The exposed setters allow modification of the exposed response-specific information.
the message header value. If the message header is not present then null is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.
Checks whether a header with a specific name and value (or item of the token-separated value list) exists.
+
+
+ For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valueSeparatorRegex - Regular expression that separates the header value into single values.
+ null does not split.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+
+
+ For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
Convenience method that returns a Link.Builder for the relation.
+
+
Parameters:
+
relation - link relation.
+
Returns:
+
the link builder for the relation, otherwise null if not present.
+
+
+
+
+
+
hasEntity
+
booleanhasEntity()
+
Check if there is a non-empty entity input stream is available in the response message.
+
+ The method returns true if the entity is present, returns false otherwise.
+
+
Returns:
+
true if there is an entity present in the message, false otherwise.
An extension interface implemented by client response filters.
+
+ Filters implementing this interface MUST be annotated with @Provider to be
+ discovered by the JAX-RS runtime. This type of filters is supported only as part of the Client API.
Filter method called after a response has been provided for a request (either by a request
+ filter or when the HTTP invocation returns).
+
+ Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation
+ value.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
clazz - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
type - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
clazz - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
type - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type..
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
public static interface Invocation.Builder
+extends SyncInvoker
+
A client request invocation builder.
+
+ The builder, obtained via a call to one of the request(...) methods on a resource target,
+ provides methods for preparing a client request invocation. Once the request is prepared the invocation builder can
+ be either used to build an Invocation with a generic execution interface:
+
+
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build a HTTP GET request that accepts "text/plain" response type
+ // and contains a custom HTTP header entry "Foo: bar".
+ Invocation invocation = resourceTarget.request("text/plain")
+ .header("Foo", "bar").buildGet();
+
+ // Invoke the request using generic interface
+ String response = invocation.invoke(String.class);
+
+
+ Alternatively, one of the inherited synchronous invocation methods can be used to invoke the
+ prepared request and return the server response in a single step, e.g.:
+
+
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build and invoke the get request in a single step
+ String response = resourceTarget.request("text/plain")
+ .header("Foo", "bar").get(String.class);
+
+
+ Once the request is fully prepared for invoking, switching to an asynchronous invocation mode is
+ possible by calling the async() method on the builder, e.g.:
+
+
+ Client client = ClientBuilder.newClient();
+ WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+ // Build and invoke the get request asynchronously in a single step
+ Future<String> response = resourceTarget.request("text/plain")
+ .header("Foo", "bar").async().get(String.class);
+
Build a request invocation using an arbitrary request method name and request entity.
+
+
Parameters:
+
method - request method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
value - the value of the header, the header will be serialized using a
+ RuntimeDelegate.HeaderDelegate if one is available via
+ RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the class of value or using
+ its toString method if a header delegate is not available. If value is null then all current
+ headers of the same name will be removed.
Set a new property in the context of a request represented by this invocation builder.
+
+ The property is available for a later retrieval via ClientRequestContext.getProperty(String) or
+ InterceptorContext.getProperty(String). If a property with a given name is already set in the
+ request context, the existing value of the property will be updated. Setting a null value into a property
+ effectively removes the property from the request property bag.
+
+
+
Parameters:
+
name - property name.
+
value - (new) property value. null value removes the property with the given name.
Access a reactive invoker based on a RxInvoker subclass provider. Note that corresponding
+ RxInvokerProvider must be registered in the client runtime.
+
+ This method is an extension point for JAX-RS implementations to support other types representing asynchronous
+ computations.
A client request invocation.
+
+ An invocation is a request that has been prepared and is ready for execution. Invocations provide a generic (command)
+ interface that enables a separation of concerns between the creator and the submitter. In particular, the submitter
+ does not need to know how the invocation was prepared, but only how it should be executed (synchronously or
+ asynchronously) and when.
Set a new property in the context of a request represented by this invocation.
+
+ The property is available for a later retrieval via ClientRequestContext.getProperty(String) or
+ InterceptorContext.getProperty(String). If a property with a given name is already set in the
+ request context, the existing value of the property will be updated. Setting a null value into a property
+ effectively removes the property from the request property bag.
+
+
+
Parameters:
+
name - property name.
+
value - (new) property value. null value removes the property with the given name.
Synchronously invoke the request and receive a response back.
+
+
Returns:
+
response object as a result of the request invocation.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Synchronously invoke the request and receive a response of the specified type back.
+
+
Type Parameters:
+
T - response type
+
Parameters:
+
responseType - Java type the response should be converted into.
+
Returns:
+
response object of the specified type as a result of the request invocation.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Synchronously invoke the request and receive a response of the specified generic type back.
+
+
Type Parameters:
+
T - generic response type
+
Parameters:
+
responseType - type literal representing a generic Java type the response should be converted into.
+
Returns:
+
response object of the specified generic type as a result of the request invocation.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Submit the request for an asynchronous invocation and receive a future response back.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps a ProcessingException thrown in case of
+ an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing
+ exception will be of ResponseProcessingException type and will contain the Response instance whose
+ processing has failed.
+
+
+
Returns:
+
future response object as a result of the request invocation.
Submit the request for an asynchronous invocation and receive a future response of the specified type back.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException thrown in
+ case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case
+ the received response status code is not successful and
+ the specified response type is not Response. In case a processing of a properly received
+ response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain
+ the Response instance whose processing has failed.
+
+
+
Type Parameters:
+
T - response type
+
Parameters:
+
responseType - Java type the response should be converted into.
+
Returns:
+
future response object of the specified type as a result of the request invocation.
Submit the request for an asynchronous invocation and receive a future response of the specified generic type back.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException thrown in
+ case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case
+ the received response status code is not successful and
+ the specified response type is not Response. In case a processing of a properly received
+ response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain
+ the Response instance whose processing has failed.
+
+
+
Type Parameters:
+
T - generic response type
+
Parameters:
+
responseType - type literal representing a generic Java type the response should be converted into.
+
Returns:
+
future response object of the specified generic type as a result of the request invocation.
Submit the request for an asynchronous invocation and register an InvocationCallback to process the future
+ result of the invocation.
+
+ Note that calling the Future.get() method on the returned Future instance may
+ throw an ExecutionException that wraps either a ProcessingException thrown in
+ case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case
+ the received response status code is not successful and
+ the generic type of the supplied response callback is not Response. In case a processing of
+ a properly received response fails, the wrapped processing exception will be of ResponseProcessingException
+ type and will contain the Response instance whose processing has failed.
+
+
+
Type Parameters:
+
T - response type
+
Parameters:
+
callback - invocation callback for asynchronous processing of the request invocation result.
+
Returns:
+
future response object of the specified type as a result of the request invocation.
Called when the invocation was successfully completed. Note that this does not necessarily mean the response has bean
+ fully read, which depends on the parameterized invocation callback response type.
+
+ Once this invocation callback method returns, the underlying Response instance will be
+ automatically closed by the runtime.
+
Called when the invocation has failed for any reason.
+
+ Note that the provided Throwable may be a ProcessingException in case the invocation
+ processing failure has been caused by a client-side runtime component error. The Throwable may also be a
+ WebApplicationException or one of its subclasses in case the response status code is not
+ successful and the generic callback type is not
+ Response. In case a processing of a properly received response fails, the wrapped processing
+ exception will be of ResponseProcessingException type and will contain the Response
+ instance whose processing has failed. A CancellationException would be indicate that the
+ invocation has been cancelled. An InterruptedException would indicate that the thread executing the
+ invocation has been interrupted.
+
+
+ Once this invocation callback method returns, the underlying Response instance will be
+ automatically closed by the runtime.
+
JAX-RS client-side runtime processing exception thrown to indicate that response processing has failed (e.g. in a
+ filter chain or during message entity de-serialization). The exception contains the nested Response instance
+ for which the runtime response processing failed.
Constructs a new JAX-RS runtime response processing exception for a specific response with the
+ specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the
+ class and detail message of cause).
Constructs a new JAX-RS runtime response processing exception for a specific response with the
+ specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the
+ class and detail message of cause). This constructor is useful for runtime exceptions that are little more
+ than wrappers for other throwables.
+
+
Parameters:
+
response - the response instance for which the processing failed.
+
cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value
+ is permitted, and indicates that the cause is nonexistent or unknown.)
+ Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause.
+
+ Note that the detail message associated with cause is not automatically incorporated in this runtime
+ exception's detail message.
+
+
Parameters:
+
response - the response instance for which the processing failed.
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value
+ is permitted, and indicates that the cause is nonexistent or unknown.)
Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized,
+ and may subsequently be initialized by a call to Throwable.initCause(java.lang.Throwable).
+
+
Parameters:
+
response - the response instance for which the processing failed.
+
message - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
Uniform interface for reactive invocation of HTTP methods. All reactive invokers in JAX-RS must implement this
+ interface. The type parameter T represents the Java type of an asynchronous computation. All JAX-RS
+ implementations MUST support the default reactive invoker based on CompletionStage.
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke HTTP DELETE method for the current request.
+
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP DELETE method for the current request.
+
+
Type Parameters:
+
R - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke HTTP DELETE method for the current request.
+
+
Type Parameters:
+
R - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP OPTIONS method for the current request.
+
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP OPTIONS method for the current request.
+
+
Type Parameters:
+
R - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke HTTP OPTIONS method for the current request.
+
+
Type Parameters:
+
R - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request.
+
+
Parameters:
+
name - method name.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke an arbitrary method for the current request.
+
+
Type Parameters:
+
R - response entity type.
+
Parameters:
+
name - method name.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request.
+
+
Type Parameters:
+
R - generic response entity type.
+
Parameters:
+
name - method name.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request.
+
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke an arbitrary method for the current request.
+
+
Type Parameters:
+
R - response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request.
+
+
Type Parameters:
+
R - generic response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response wrapped in the completion aware type..
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in
+ a filter or during conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server
+ is not successful and the specified response type is not
+ Response.
syncInvoker - SyncInvoker used to execute current request.
+
executorService - executor service, which should be used for executing reactive callbacks invocations. It can be
+ null; in that case it's up to the implementation to choose the best ExecutorService in given
+ environment.
Invoke HTTP GET method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP GET method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response
Invoke HTTP PUT method for the current request synchronously.
+
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP PUT method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP PUT method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke HTTP POST method for the current request synchronously.
+
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP POST method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP POST method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke HTTP DELETE method for the current request synchronously.
+
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP DELETE method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP DELETE method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke HTTP HEAD method for the current request synchronously.
+
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP OPTIONS method for the current request synchronously.
+
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP OPTIONS method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP OPTIONS method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke HTTP TRACE method for the current request synchronously.
+
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke HTTP TRACE method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke HTTP TRACE method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke an arbitrary method for the current request synchronously.
+
+
Parameters:
+
name - method name.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke an arbitrary method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
name - method name.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
name - method name.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Invoke an arbitrary method for the current request synchronously.
+
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
Invoke an arbitrary method for the current request synchronously.
+
+
Type Parameters:
+
T - response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified response type is not
+ Response.
Invoke an arbitrary method for the current request synchronously.
+
+
Type Parameters:
+
T - generic response entity type.
+
Parameters:
+
name - method name.
+
entity - request entity, including it's full Variant information. Any variant-related
+ HTTP headers previously set (namely Content-Type, Content-Language and Content-Encoding) will
+ be overwritten using the entity variant information.
+
responseType - representation of a generic Java type the response entity will be converted to.
+
Returns:
+
invocation response.
+
Throws:
+
ResponseProcessingException - in case processing of a received HTTP response fails (e.g. in a filter or during
+ conversion of the response entity data to an instance of a particular Java type).
+
ProcessingException - in case the request processing or subsequent I/O operation fails.
+
WebApplicationException - in case the response status code of the response returned by the server is not
+ successful and the specified generic response type does
+ not represent Response.
Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied encoded value.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.
+
+
+
+
+
+
Methods inherited from interface jakarta.ws.rs.core.Configurable
Get the URI builder initialized with the URI of the current resource target. The returned URI builder is
+ detached from the target, i.e. any updates in the URI builder MUST NOT have any effects on the URI of the originating
+ target.
Create a new WebTarget instance by appending path to the URI of the current target instance.
+
+ When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if
+ necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.
+
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
path - the path, may contain URI template parameters.
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied value.
+
+ In case a null template name or value is entered a NullPointerException is thrown.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied value.
+
+ In case a null template name or value is entered a NullPointerException is thrown.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
name - name of the URI template.
+
value - value to be used to resolve the template.
+
encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value. Value is converted to String using
+ its toString() method and is then encoded to match the rules of the URI component to which they pertain. All
+ % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a null template name or value is entered a NullPointerException is thrown.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
name - name of the URI template.
+
value - encoded value to be used to resolve the template.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
templateValues - a map of URI template names and their values.
+
Returns:
+
a new target instance or the same target instance in case the input name-value map is empty.
+
Throws:
+
NullPointerException - if the name-value map or any of the names or values in the map is null.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
templateValues - a map of URI template names and their values.
+
encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
+
Returns:
+
a new target instance or the same target instance in case the input name-value map is empty.
+
Throws:
+
NullPointerException - if the name-value map or any of the names or values in the map is null.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.
+
+ All templates with their name matching one of the keys in the supplied map will be replaced by the value in the
+ supplied map. Values are converted to String using their toString() method and are then encoded to
+ match the rules of the URI component to which they pertain. All % characters in the stringified values that are not
+ followed by two hexadecimal numbers will be encoded.
+
+ A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
templateValues - a map of URI template names and their encoded values.
+
Returns:
+
a new target instance or the same target instance in case the input name-value map is empty.
+
Throws:
+
NullPointerException - if the name-value map or any of the names or encoded values in the map is null.
Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single null value is
+ entered, all parameters with that name in the current final path segment are removed (if present) from the collection
+ of last segment matrix parameters inherited from the current target.
+
+ Note that the matrix parameters are tied to a particular path segment; appending a value to an existing matrix
+ parameter name will not affect the position of the matrix parameter in the URI path.
+
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
name - the matrix parameter name, may contain URI template parameters.
+
values - the matrix parameter value(s), each object will be converted to a String using its
+ toString() method. Stringified values may contain URI template parameters.
+
Returns:
+
a new target instance.
+
Throws:
+
NullPointerException - if the parameter name is null or if there are multiple values present and any of
+ those values is null.
Create a new WebTarget instance by configuring a query parameter on the URI of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single null value is
+ entered, all parameters with that name are removed (if present) from the collection of query parameters inherited
+ from the current target.
+
+ A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the
+ newly constructed (child) target instance.
+
+
+
Parameters:
+
name - the query parameter name, may contain URI template parameters
+
values - the query parameter value(s), each object will be converted to a String using its
+ toString() method. Stringified values may contain URI template parameters.
+
Returns:
+
a new target instance.
+
Throws:
+
NullPointerException - if the parameter name is null or if there are multiple values present and any of
+ those values is null.
Set the SSL context that will be used when creating secured transport connections to server endpoints from
+ web targets created by the client instance that is using this SSL context.
Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI of the current target instance.
Create a new WebTarget instance by resolving a URI template with a given name in the URI of the
+ current target instance using a supplied encoded value.
Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target
+ instance using supplied name-encoded value pairs.
Create a new event source builder that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.
+ The JAX-RS client API is a Java based API used to access Web resources. It is not restricted to resources implemented
+ using JAX-RS. It provides a higher-level abstraction compared to a plain HTTP
+ communication API as well as integration with the JAX-RS extension providers, in order to enable concise and
+ efficient implementation of reusable client-side solutions that leverage existing and well established client-side
+ implementations of HTTP-based communication.
+
+ The JAX-RS Client API encapsulates the Uniform Interface Constraint – a key constraint of the REST
+ architectural style – and associated data elements as client-side Java artifacts and supports a pluggable
+ architecture by defining multiple extension points.
+
+
Client API Bootstrapping and Configuration
The main entry point to the API is a
+ ClientBuilder that is used to bootstrap Client instances -
+ configurable, heavy-weight objects that manage the underlying communication
+ infrastructure and serve as the root objects for accessing any Web resource. The following example illustrates the
+ bootstrapping and configuration of a Client instance:
+
+
A Web resource can be accessed using a fluent API in which method invocations are
+ chained to configure and ultimately submit an HTTP request. The following example gets a text/plain
+ representation of the resource identified by "http://example.org/hello":
+
+
submit a request to directly retrieve a response or get a prepared Invocation for
+ later submission
+
+
+ As illustrated above, individual Web resources are in the JAX-RS Client API represented as resource targets. Each
+ WebTarget instance is bound to a concrete URI, e.g. "http://example.org/messages/123", or a URI
+ template, e.g. "http://example.org/messages/{id}". That way a single target can either point at a particular
+ resource or represent a larger group of resources (that e.g. share a common configuration) from which concrete
+ resources can be later derived:
+
+
+ // Parent target for all messages
+ WebTarget messages = client.target("http://example.org/messages/{id}");
+
+ // New target for http://example.org/messages/123
+ WebTarget msg123 = messages.resolveTemplate("id", 123);
+
+ // New target for http://example.org/messages/456
+ WebTarget msg456 = messages.resolveTemplate("id", 456);
+
+
+
Generic Invocations
An Invocation is a request that has been prepared and is
+ ready for execution. Invocations provide a generic interface that enables a separation of concerns between the
+ creator and the submitter. In particular, the submitter does not need to know how the invocation was prepared, but
+ only whether it should be executed synchronously or asynchronously.
+
+
+ Each asynchronous response instance is bound to the running request and can be used to asynchronously provide the
+ request processing result or otherwise manipulate the suspended client connection. The available operations include:
+
+
updating suspended state data (time-out value, response ...)
+
resuming the suspended request processing
+
canceling the suspended request processing
+
+
+ Following example demonstrates the use of the AsyncResponse for asynchronous HTTP request processing:
+
+
+
+ @Path("/messages/next")
+ public class MessagingResource {
+ private static final BlockingQueue<AsyncResponse> suspended = new ArrayBlockingQueue<AsyncResponse>(5);
+
+ @GET
+ public void readMessage(@Suspended AsyncResponse ar) throws InterruptedException {
+ suspended.put(ar);
+ }
+
+ @POST
+ public String postMessage(final String message) throws InterruptedException {
+ final AsyncResponse ar = suspended.take();
+ ar.resume(message); // resumes the processing of one GET request
+ return "Message sent";
+ }
+ }
+
+
+ If the asynchronous response was suspended with a positive timeout value, and has not been explicitly resumed before
+ the timeout has expired, the processing will be resumed once the specified timeout threshold is reached, provided a
+ positive timeout value was set on the response.
+
Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.
Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
Resume the suspended request processing using the provided response data.
+
+ The provided response data can be of any Java type that can be returned from a JAX-RS
+ resource method.
+
+ The asynchronous response must be still in a suspended state for this method to succeed.
+
+
+ By executing this method, the request is guaranteed to complete either successfully or with an error. The data
+ processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a
+ JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O
+ container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific
+ callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an
+ error status being sent to the client and/or the connection being closed.
+
+
+
Parameters:
+
response - data to be sent back in response to the suspended request.
+
Returns:
+
true if the request processing has been resumed, returns false in case the request processing
+ is not suspended and could not be resumed.
Resume the suspended request processing using the provided throwable.
+
+ For the provided throwable same rules apply as for an exception thrown by a JAX-RS
+ resource method.
+
+ By executing this method, the request is guaranteed to complete either successfully or with an error. The throwable
+ processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a
+ JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O
+ container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific
+ callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an
+ error status being sent to the client and/or the connection being closed.
+
+
+
Parameters:
+
response - an exception to be raised in response to the suspended request.
+
Returns:
+
true if the response has been resumed, returns false in case the response is not
+ suspended and could not be resumed.
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ HTTP 503 (Service unavailable) error response.
+
+
+ Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning true, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ resume(...) method) or resumed due to a time-out, method returns false.
+
+
+
Returns:
+
true if the request processing has been cancelled, returns false in case the request
+ processing is not suspended and could not be cancelled and is not cancelled already.
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ HTTP 503 (Service unavailable) error response with a
+ Retry-After header set to the value provided by the method parameter.
+
+
+ Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning true, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ resume(...) method) or resumed due to a time-out, method returns false.
+
+
+
Parameters:
+
retryAfter - a decimal integer number of seconds after the response is sent to the client that indicates how
+ long the service is expected to be unavailable to the requesting client.
+
Returns:
+
true if the request processing has been cancelled, returns false in case the request
+ processing is not suspended and could not be cancelled and is not cancelled already.
+ When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that
+ the request processing has been cancelled by sending back a
+ HTTP 503 (Service unavailable) error response with a
+ Retry-After header set to the value provided by the method parameter.
+
+
+ Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling
+ the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has
+ already been cancelled or resumed has no effect and the method call is ignored while returning true, in case
+ the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a
+ resume(...) method) or resumed due to a time-out, method returns false.
+
+
+
Parameters:
+
retryAfter - a date that indicates how long the service is expected to be unavailable to the requesting client.
+
Returns:
+
true if the request processing has been cancelled, returns false in case the request
+ processing is not suspended and could not be cancelled and is not cancelled already.
Check if the asynchronous response instance is in a suspended state.
+
+ Method returns true if this asynchronous response is still suspended and has not finished processing yet
+ (either by resuming or canceling the response).
+
+
Returns:
+
true if this asynchronous response is in a suspend state, false otherwise.
Check if the asynchronous response instance has been cancelled.
+
+ Method returns true if this asynchronous response has been canceled before completion.
Check if the processing of a request this asynchronous response instance belongs to has finished.
+
+ Method returns true if the processing of a request this asynchronous response is bound to is finished.
+
+ The request processing may be finished due to a normal termination, a suspend timeout, or cancellation -- in all of
+ these cases, this method will return true.
+
+
+
Returns:
+
true if this execution context has finished processing.
+ The new suspend timeout values override any timeout value previously specified. The asynchronous response must be
+ still in a suspended state for this method to succeed.
+
+
+
Parameters:
+
time - suspend timeout value in the give time unit. Value lower or equal to 0 causes the context to
+ suspend indefinitely.
+
unit - suspend timeout value time unit.
+
Returns:
+
true if the suspend time out has been set, returns false in case the request processing is
+ not in the suspended state.
Set/replace a time-out handler for the suspended asynchronous response.
+
+ The time-out handler will be invoked when the suspend period of this asynchronous response times out. The job of the
+ time-out handler is to resolve the time-out situation by either
+
+
+
resuming the suspended response
+
cancelling the suspended response
+
extending the suspend period by setting a new suspend time-out
+
+
+ Note that in case the response is suspended indefinitely, the time-out handler may never be
+ invoked.
+
Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
+
+
Parameters:
+
callback - callback class.
+
Returns:
+
collection of registered callback interfaces. If the callback class does not implement any recognized
+ callback interfaces, the returned collection will be empty.
Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response
+ based on the implemented callback interfaces.
+
+
Parameters:
+
callback - callback class.
+
callbacks - additional callback classes.
+
Returns:
+
map of registered classes and the callback interfaces registered for each class. If a callback class does not
+ implement any recognized callback interfaces, the associated collection of registered interfaces for the class will
+ be empty.
Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
+
+
Parameters:
+
callback - callback instance implementing one or more of the recognized callback interfaces.
+
Returns:
+
collection of registered callback interfaces. If the callback class does not implement any recognized
+ callback interfaces, the returned collection will be empty.
Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous
+ response based on the implemented callback interfaces.
+
+
Parameters:
+
callback - callback instance.
+
callbacks - additional callback instances.
+
Returns:
+
map of registered classes and the callback interfaces registered for each class. If a callback class does not
+ implement any recognized callback interfaces, the associated collection of registered interfaces for the class will
+ be empty.
A request processing callback that receives request processing completion events.
+
+ A completion callback is always invoked when the whole request processing is over, i.e. once a response for the request has
+ been processed and sent back to the client (including processing by a custom exception mapper) or when an unmapped
+ exception or error is being propagated to the default exception mapper.
+
An unmapped throwable is propagated to the default exception mapper in case no exception mapper has been found for a request processing failure. In this case a non-null unmapped throwable
+ instance is passed to the method. Note that the throwable instance represents the actual unmapped exception thrown during
+ the request processing before it has been mapped to the response by the default exception mapper.
+
+
Parameters:
+
throwable - is null, if the request processing has completed with a response that has been sent to the
+ client (including processing by a custom exception mapper). In case the request processing resulted in an unmapped
+ exception or error that has yet to be propagated to the default exception mapper, this parameter contains the unmapped
+ exception instance.
This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.
This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.
+
+
Parameters:
+
disconnected - asynchronous response for which the remote client connection has been lost.
Container request filter context.
+
+ A mutable class that provides request-specific information for the filter, such as request URI, message headers,
+ message entity or request-scoped properties. The exposed setters allow modification of the exposed request-specific
+ information.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Returns the property with the given name registered in the current request/response exchange context, or null
+ if there is no property by that name.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+ In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes
+ available in the ServletRequest. Any modifications of the properties are also reflected in the set of
+ properties of the associated ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
Returns:
+
an Object containing the value of the property, or null if no property exists matching the
+ given name.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
+
+ In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes
+ available in the ServletRequest. Any modifications of the properties are also reflected in the set of
+ properties of the associated ServletRequest.
+
Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+ If a null value is passed, the effect is the same as calling the removeProperty(String) method.
+
+
+ In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes
+ available in the ServletRequest. Any modifications of the properties are also reflected in the set of
+ properties of the associated ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
object - an Object representing the property to be bound.
Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to getProperty(java.lang.String) to retrieve the property value will return null.
+
+ In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes
+ available in the ServletRequest. Any modifications of the properties are also reflected in the set of
+ properties of the associated ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property to be removed.
Get request URI information.
+
+ The returned object contains "live" view of the request URI information in a sense that any changes made to the
+ request URI using one of the setRequestUri(...) methods will be reflected in the previously returned
+ UriInfo instance.
Set a new request URI using the current base URI of the application to resolve the application-specific request URI
+ part.
+
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an IllegalStateException being thrown.
+
Set a new request URI using a new base URI to resolve the application-specific request URI part.
+
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an IllegalStateException being thrown.
+
+
+
Parameters:
+
baseUri - base URI that will be used to resolve the application-specific part of the request URI.
+ Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke
+ the method in a filter bound to a resource method results in an IllegalStateException being thrown.
+
the message header value. If the message header is not present then null is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.
Checks whether a header with a specific name and value (or item of the token-separated value list) exists.
+
+
+ For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valueSeparatorRegex - Regular expression that separates the header value into single values. null does not split.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+
+
+ For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
a read-only map of cookie name (String) to Cookie.
+
+
+
+
+
+
hasEntity
+
booleanhasEntity()
+
Check if there is a non-empty entity input stream available in the request message.
+
+ The method returns true if the entity is present, returns false otherwise.
+
+
Returns:
+
true if there is an entity present in the message, false otherwise.
Get the injectable security context information for the current request.
+
+ The SecurityContext.getUserPrincipal() must return null if the current request has not been
+ authenticated.
Set a new injectable security context information for the current request.
+
+ The SecurityContext.getUserPrincipal() must return null if the current request has not been
+ authenticated.
+
+
Parameters:
+
context - new injectable request security context information.
Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided response back to the client. The provided
+ response goes through the chain of applicable response filters.
+
+
Parameters:
+
response - response to be sent back to the client.
An extension interface implemented by container request filters.
+
+ By default, i.e. if no name binding is applied to the filter implementation class,
+ the filter instance is applied globally, however only after the incoming request has been matched to a particular
+ resource by JAX-RS runtime. If there is a @NameBinding annotation applied to the
+ filter, the filter will also be executed at the post-match request extension point, but only in case the
+ matched resource or sub-resource method is bound to the same name-binding annotation.
+
+
+ In case the filter should be applied at the pre-match extension point, i.e. before any request matching has
+ been performed by JAX-RS runtime, the filter MUST be annotated with a @PreMatching
+ annotation.
+
+
+ Use a pre-match request filter to update the input to the JAX-RS matching algorithm, e.g., the HTTP method, Accept
+ header, return cached responses etc. Otherwise, the use of a request filter invoked at the post-match request
+ extension point (after a successful resource method matching) is recommended.
+
+
+ Filters implementing this interface must be annotated with @Provider to be
+ discovered by the JAX-RS runtime. Container request filter instances may also be discovered and bound
+ dynamically to particular resource methods.
+
Filter method called before a request has been dispatched to a resource.
+
+
+ Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation
+ value. If a request filter produces a response by calling ContainerRequestContext.abortWith(jakarta.ws.rs.core.Response) method, the
+ execution of the (either pre-match or post-match) request filter chain is stopped and the response is passed to the
+ corresponding response filter chain (either pre-match or post-match). For example, a pre-match caching filter may
+ produce a response in this way, which would effectively skip any post-match request filters as well as post-match
+ response filters. Note however that a responses produced in this manner would still be processed by the pre-match
+ response filter chain.
+
Container response filter context.
+
+ A mutable class that provides response-specific information for the filter, such as message headers, message entity
+ or request-scoped properties. The exposed setters allow modification of the exposed response-specific information.
the message header value. If the message header is not present then null is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.
Checks whether a header with a specific name and value (or item of the token-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valueSeparatorRegex - Regular expression that separates the header value into single values. null does not split.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
Get the annotations attached to the entity instance.
+
+ Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such
+ as the ones attached using
+ Response.ResponseBuilder.entity(Object, java.lang.annotation.Annotation[]) method as well as
+ the ones attached to the resource method that has returned the response). The entity instance annotations array does
+ not include annotations declared on the entity implementation class or its ancestors.
+
+
+ Note that container response filters invoked earlier in the filter chain may modify the entity annotations value, in
+ which case this getter method would return the last annotations value set by a container response filter invoked
+ earlier in the filter chain.
+
+
+ For example:
+
+
+
+ @Path("my-resource")
+ public class MyResource {
+ private final Annotations[] extras = ... ;
+
+ @GET
+ @Custom
+ public String getAnnotatedMe() {
+ return Response.ok().entity("Annotated me", extras).build();
+ }
+ ...
+ }
+
+
+ The container response context for a response returned from the getMe() method above would contain all the
+ annotations declared on the getAnnotatedMe() method (@GET, @Custom) as well as all the
+ annotations from the extras field, provided this value has not been replaced by any container response filter
+ invoked earlier.
+
+
+ Similarly:
+
+
+
+ @Custom
+ public class AnnotatedMe { ... }
+
+ @Path("my-resource")
+ public class MyResource {
+ private final Annotations[] extras = ... ;
+
+ @GET
+ public AnnotatedMe getMe() {
+ return Response.ok().entity(new AnnotatedMe(), extras).build();
+ }
+ ...
+ }
+
+
+ Provided that the value has not been replaced by any container response filter invoked earlier, the container
+ response context for a response returned from the getMe() method above would contain all the annotations on
+ the getMe() method (@GET) as well as all the annotations from the extras field. It would
+ however not contain any annotations declared on the AnnotatedMe class.
+
An extension interface implemented by container response filters.
+
+ By default, i.e. if no name binding is applied to the filter implementation class,
+ the filter instance is applied globally to any outgoing response. If there is a @NameBinding annotation
+ applied to the filter, the filter will only be executed for a response for which the request has been matched to a
+ resource or sub-resource method AND the method or the whole custom
+ JAX-RS Application class is bound to the same name-binding annotation.
+
+
+ Implement a name-bound response filter in cases when you want limit the filter functionality to a matched resource or
+ resource method. In other cases, when the filter should be applied globally to any outgoing response, implement an
+ unbound, global response filter.
+
+
+ Filters implementing this interface must be annotated with @Provider to be
+ discovered by the JAX-RS runtime. Container response filter instances may also be discovered and bound
+ dynamically to particular resource methods.
+
A JAX-RS meta-provider for dynamic registration of post-matching providers during a JAX-RS application setup
+ at deployment time.
+
+ Dynamic feature is used by JAX-RS runtime to register providers that shall be applied to a particular resource class
+ and method and overrides any annotation-based binding definitions defined on any registered resource filter or
+ interceptor instance.
+
+ Providers implementing this interface MAY be annotated with @Provider annotation
+ in order to be discovered by JAX-RS runtime when scanning for resources and providers. This provider types is
+ supported only as part of the Server API.
+
+
+
Since:
+
2.0
+
Author:
+
Santiago Pericas-Geertsen, Bill Burke, Marek Potociar
A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a runtime configuration scope of a particular
+ resource or sub-resource method; i.e.
A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a runtime configuration scope of a particular
+ resource or sub-resource method; i.e. the providers that should be dynamically bound
+ to the method.
+
+ The registered provider instances or classes are expected to be implementing one or more of the following interfaces:
+
+ A provider instance or class that does not implement any of the interfaces above may be ignored by the JAX-RS
+ implementation. In such case a warning message must be logged. JAX-RS
+ implementations may support additional provider contracts that can be registered using a dynamic feature concept.
+
+
+ Conceptually, this callback method is called during a resource or sub-resource method
+ discovery phase (typically once per each discovered resource or sub-resource method) to register provider instances
+ or classes in a configuration scope of each particular method identified by the supplied resource information. The responsibility of the feature is to properly update the supplied configuration
+ context.
+
+
+
Parameters:
+
resourceInfo - resource class and method information.
+
context - configurable resource or sub-resource method-level runtime context associated with the
+ resourceInfo in which the feature
Global binding annotation that can be applied to a container request filter to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.
+
+ The JAX-RS runtime will apply the filters marked with the @PreMatching annotation globally to all resources,
+ before the incoming request has been matched to a particular resource method. Any named binding annotations will be ignored on a component annotated with the @PreMatching annotation.
+
The resource context provides access to instances of resource classes.
+
+ This interface can be injected using the Context annotation.
+
+
+ The resource context can be utilized when instances of managed resource classes are to be returned by sub-resource
+ locator methods. Such instances will be injected and managed within the declared scope just like instances of root
+ resource classes.
+
Get a resolved instance of a resource or sub-resource class.
+
+ The resolved resource instance is properly initialized in the context of the current request processing scope. The
+ scope of the resolved resource instance depends on the managing container. For resources managed by JAX-RS container
+ the default scope is per-request.
+
+
+
Type Parameters:
+
T - the type of the resource class.
+
Parameters:
+
resourceClass - the resource class.
+
Returns:
+
an instance if it could be resolved, otherwise null.
+
+
+
+
+
+
initResource
+
<T>TinitResource(T resource)
+
Initialize the resource or sub-resource instance.
+
+ All JAX-RS injectable fields in the resource instance will be properly initialized in the context of the current
+ request processing scope.
An injectable class to access the resource class and resource method matched by the current request. Methods in this
+ class MAY return null if a resource class and method have not been matched, e.g. in a standalone,
+ pre-matching ContainerRequestFilter that was not provided by a post-matching PreMatching.
Inject a suspended AsyncResponse into a parameter of an invoked JAX-RS resource
+ or sub-resource method.
+
+ The injected AsyncResponse instance is bound to the processing of the active request and can be used to
+ resume the request processing when a response is available.
+
+ @Stateless
+ @Path("/")
+ public class MyEjbResource {
+ …
+ @GET
+ @Asynchronous
+ public void longRunningOperation(@Suspended AsyncResponse ar) {
+ ar.setTimeoutHandler(customHandler);
+ ar.setTimeout(10, TimeUnit.SECONDS);
+ final String result = executeLongRunningOperation();
+ ar.resume(result);
+ }
+
+ private String executeLongRunningOperation() { … }
+ }
+
+
+ A resource or sub-resource method that injects a suspended instance of an AsyncResponse using the
+ @Suspended annotation is expected be declared to return void type. Methods that inject asynchronous
+ response instance using the @Suspended annotation and declare a return type other than void MUST be
+ detected by the JAX-RS runtime and a warning message MUST be logged. Any response value returned from such resource
+ or sub-resource method MUST be ignored by the framework:
+
+
+
+ @Path("/messages/next")
+ public class MessagingResource {
+ …
+ @GET
+ public String readMessage(@Suspended AsyncResponse ar) {
+ suspended.put(ar);
+ return "This response will be ignored.";
+ }
+ …
+ }
+
Asynchronous response suspend time-out handler.
+
+ JAX-RS users may utilize this callback interface to provide custom resolution of time-out events.
+
+ By default, JAX-RS runtime generates a WebApplicationException with a
+ HTTP 503 (Service unavailable) error response status
+ code. A custom time-out handler may be set on an asynchronous
+ response instance to provide custom time-out event resolution.
+
+
+ In case of a suspend time-out event, a custom time-out handler takes typically one of the following actions:
+
+ If the registered time-out handler does not take any of the actions above, the default time-out event processing
+ continues and the response is resumed with a generated WebApplicationException containing the HTTP 503 status
+ code.
+
+
+ Following example illustrates the use of a custom TimeoutHandler:
+
+
+
+ public class MyTimeoutHandler implements TimeoutHandler {
+ …
+ public void handleTimeout(AsyncResponse ar) {
+ if (keepSuspended) {
+ ar.setTimeout(10, SECONDS);
+ } else if (cancel) {
+ ar.cancel(retryPeriod);
+ } else {
+ ar.resume(defaultResponse);
+ }
+ }
+ …
+ }
+
+ @Path("/messages/next")
+ public class MessagingResource {
+ …
+ @GET
+ public void readMessage(@Suspended AsyncResponse ar) {
+ ar.setTimeoutHandler(new MyTimeoutHandler());
+ suspended.put(ar);
+ }
+ …
+ }
+
Invoked when the suspended asynchronous response is about to time out.
+
+ Implementing time-out handlers may use the callback method to change the default time-out strategy defined by JAX-RS
+ specification (see AsyncResponse API documentation).
+
+ A custom time-out handler may decide to either
+
+
+
resume the suspended response using one of it's resume(...) methods,
+
cancel the suspended response using one of it's cancel(...) methods, or
This callback notification method is invoked in case the container detects that the remote client connection
+ associated with the asynchronous response has been disconnected.
A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a runtime configuration scope of a particular
+ resource or sub-resource method; i.e.
Global binding annotation that can be applied to a container request filter to
+ indicate that such filter should be applied globally on all resources in the application before the actual resource
+ matching occurs.
+ Set the value for the key to be a one item list consisting of the supplied value. Any existing values will be
+ replaced.
+
+ NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to
+ the purged value list. As a result of such operation, empty value list would be registered for the supplied key.
+ Overriding implementations may modify this behavior by redefining the addNull(java.util.List) method.
+ Define the behavior for adding a null values to the value list.
+
+ Default implementation is a no-op, i.e. the null values are ignored. Overriding implementations may modify
+ this behavior by providing their own definitions of this method.
+
+
Parameters:
+
values - value list where the null value addition is being requested.
+ Define the behavior for adding a null values to the first position in the value list.
+
+ Default implementation is a no-op, i.e. the null values are ignored. Overriding implementations may modify
+ this behavior by providing their own definitions of this method.
+
+
Parameters:
+
values - value list where the null value addition is being requested.
+ Add a value to the current list of values for the supplied key.
+
+ NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to
+ the value list. Overriding implementations may modify this behavior by redefining the
+ addNull(java.util.List) method.
+ Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty,
+ method returns immediately. Method throws a NullPointerException if the supplied array of values is
+ null.
+
+ NOTE: This implementation ignores null values; Any of the supplied values of null is ignored and not
+ added to the value list. Overriding implementations may modify this behavior by redefining the
+ addNull(java.util.List) method.
public finalvoidaddAll(K key,
+ List<V> valueList)
+
+ Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied
+ value list is empty, method returns immediately. Method throws a NullPointerException if the supplied array
+ of values is null.
+
+ NOTE: This implementation ignores null values; Any null value in the supplied value list is ignored
+ and not added to the value list. Overriding implementations may modify this behavior by redefining the
+ addNull(java.util.List) method.
+ Add a value to the first position in the current list of values for the supplied key.
+
+ NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to
+ the purged value list. Overriding implementations may modify this behavior by redefining the
+ addFirstNull(java.util.List) method.
+ Return a non-null list of values for a given key. The returned list may be empty.
+
+ If there is no entry for the key in the map, a new empty List instance is created, registered within the map
+ to hold the values of the key and returned from the method.
+
+
Parameters:
+
key - the key.
+
Returns:
+
value list registered with the key. The method is guaranteed to never return null.
Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the
+ values associated with each key are compared as if they were ordered lists.
Defines the components of a JAX-RS application and supplies additional meta-data. A JAX-RS application or
+ implementation supplies a concrete subclass of this abstract class.
+
+ The implementation-created instance of an Application subclass may be injected into resource classes and providers
+ using Context.
+
+
+ In case any of the Application subclass methods or it's constructor throws a RuntimeException, the
+ deployment of the application SHOULD be aborted with a failure.
+
Get a set of root resource, provider and feature classes.
+
+ The default life-cycle for resource class instances is per-request. The default life-cycle for providers (registered
+ directly or via a feature) is singleton.
+
+ Implementations should warn about and ignore classes that do not conform to the requirements of root resource or
+ provider/feature classes. Implementations should warn about and ignore classes for which getSingletons()
+ returns an instance. Implementations MUST NOT modify the returned set.
+
+
+ The default implementation returns an empty set.
+
+
+
Returns:
+
a set of root resource and provider classes. Returning null is equivalent to returning an empty set.
Automatic discovery of resources and providers or the getClasses method is preferred over
+ getSingletons.
+
+
Get a set of root resource, provider and feature instances.
+
+ Fields and properties of returned instances are injected with their declared dependencies (see Context) by
+ the runtime prior to use.
+
+ Implementations should warn about and ignore classes that do not conform to the requirements of root resource or
+ provider classes. Implementations should flag an error if the returned set includes more than one instance of the
+ same class. Implementations MUST NOT modify the returned set.
+
+
+ The default implementation returns an empty set.
+
+
+
Returns:
+
a set of root resource and provider instances. Returning null is equivalent to returning an empty
+ set.
Get a map of custom application-wide properties.
+
+ The returned properties are reflected in the application configuration passed to the
+ server-side features or injected into server-side JAX-RS components.
+
+
+ The set of returned properties may be further extended or customized at deployment time using container-specific
+ features and deployment descriptors. For example, in a Servlet-based deployment scenario, web application's
+ <context-param> and Servlet <init-param> values may be used to extend or override values of the
+ properties programmatically returned by this method.
+
+
+ The default implementation returns an empty set.
+
+
+
Returns:
+
a map of custom application-wide properties. Returning null is equivalent to returning an empty set.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).fromString(value) instead.
+
+
Creates a new instance of CacheControl by parsing the supplied string.
Corresponds to a set of extension cache control directives.
+
+
Returns:
+
a mutable map of cache control extension names and their values. If a key has a null value, it will appear as
+ a bare directive. If a key has a value that contains no whitespace then the directive will appear as a simple
+ name=value pair. If a key has a value that contains whitespace then the directive will appear as a quoted
+ name="value" pair.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(CacheControl.class).toString(value) instead if you rely on the
+ format of this method.
+
+
Convert the cache control to a string suitable for use as the value of the corresponding HTTP header.
public interface Configurable<C extends Configurable>
+
Represents a client or server-side configurable context in JAX-RS.
+
+ A configurable context can be used to define the JAX-RS components as well as additional meta-data that should be
+ used in the scope of the configured context. The modification of the context typically involves setting properties or
+ registering custom JAX-RS components, such as providers and/or features. All modifications of a Configurable
+ context are reflected in the associated Configuration state which is exposed via getConfiguration()
+ method.
+
+ A configurable context can be either indirectly associated with a particular JAX-RS component (such as application or
+ resource method configurable context passed to a Feature or DynamicFeature
+ meta-providers) or can be directly represented by a concrete JAX-RS component implementing the Configurable
+ interface (such as Client or WebTarget). As such, the exact
+ scope of a configuration context is typically determined by a use case scenario in which the context is accessed.
+
+
Setting properties.
+
+ New properties can be set using the property(java.lang.String, java.lang.Object) method. Similarly, updating a value of an existing property can
+ be achieved using the same method. Information about the configured set of properties is available via the underlying
+ Configuration object. An existing property can be removed by assigning a null value to the property.
+
+
Registering JAX-RS components.
+
+ Registered custom JAX-RS component classes and instances are important part of the contextual configuration
+ information as these are the main factors that determine the capabilities of a configured runtime. Implementations
+ SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS components in
+ a given configurable context.
+
+
+ In most cases, when registering a JAX-RS component, the simplest form of methods (register(Class) or
+ register(Object)) of the available registration API is sufficient.
+
+ In some situations a JAX-RS component class or instance may implement multiple provider contracts recognized by a
+ JAX-RS implementation (e.g. filter, interceptor or entity provider). By default, the JAX-RS implementation MUST
+ register the new component class or instance as a provider for all the recognized provider contracts implemented by
+ the component class.
+
+
+ For example:
+
+
+
+ @Priority(ENTITY_CODER)
+ public class GzipInterceptor
+ implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register GzipInterceptor as a ReaderInterceptor
+ // as well as a WriterInterceptor
+ config.register(GzipInterceptor.class);
+
+
+ There are however situations when the default registration of a JAX-RS component to all the recognized provider
+ contracts is not desirable. In such cases users may use other versions of the register(...) method to
+ explicitly specify the collection of the provider contracts for which the JAX-RS component should be registered
+ and/or the priority of each registered provider contract.
+
+
+ For example:
+
+
+
+ @Priority(USER)
+ public class ClientLoggingFilter
+ implements ClientRequestFilter, ClientResponseFilter { ... }
+
+ @Priority(ENTITY_CODER)
+ public class GzipInterceptor
+ implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register ClientLoggingFilter as a ClientResponseFilter only
+ config.register(ClientLoggingFilter.class, ClientResponseFilter.class);
+
+ // override the priority of registered GzipInterceptor
+ // and both of it's provider contracts
+ config.register(GzipInterceptor.class, 6500);
+
+
+ As a general rule, for each JAX-RS component class there can be at most one registration — class-based or
+ instance-based — configured at any given moment. Implementations MUST reject any attempts to configure a new
+ registration for a provider class that has been already registered in the given configurable context earlier.
+ Implementations SHOULD also raise a warning to inform the user about the rejected component registration.
+
+
+ For example:
+
+
+
+ config.register(GzipInterceptor.class, WriterInterceptor.class);
+ config.register(GzipInterceptor.class); // Rejected by runtime.
+ config.register(new GzipInterceptor()); // Rejected by runtime.
+ config.register(GzipInterceptor.class, 6500); // Rejected by runtime.
+
+ config.register(new ClientLoggingFilter());
+ config.register(ClientLoggingFilter.class); // rejected by runtime.
+ config.register(ClientLoggingFilter.class,
+ ClientResponseFilter.class); // Rejected by runtime.
+
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
Get a live view of an internal configuration state of this configurable instance.
+
+ Any changes made using methods of this Configurable instance will be reflected in the returned
+ Configuration instance.
+
+ The returned Configuration instance and the collection data it provides are not thread-safe wrt. modification
+ made using methods on the parent configurable object.
+
+
+
Returns:
+
configuration live view of the internal configuration state.
Set the new configuration property, if already set, the existing value of the property will be updated. Setting a
+ null value into a property effectively removes the property from the property bag.
+
+
Parameters:
+
name - property name.
+
value - (new) property value. null value removes the property with the given name.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported
+ JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type,
+ for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS
+ implementation and a warning SHOULD be raised to inform the user about the rejected registration.
+
+ The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or
+ implementation-specific extension contracts including meta-provider contracts, such as Feature or
+ DynamicFeature.
+
+ As opposed to component instances registered via register(Object) method, the lifecycle of components
+ registered using this class-based register(...) method is fully managed by the JAX-RS implementation or any
+ underlying IoC container supported by the implementation.
+
+
+
Parameters:
+
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
+
Returns:
+
the updated configurable context.
+
+
+
+
+
+
register
+
Cregister(Class<?> componentClass,
+ int priority)
+
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides the same functionality as register(Class) except that any priority
+ specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden
+ with the supplied priority value.
+
+
+ Note that in case the priority is not applicable to a particular provider contract implemented by the class of the
+ registered component, the supplied priority value will be ignored for that contract.
+
+
+
Parameters:
+
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
+
priority - the overriding priority for the registered component and all the provider contracts the component
+ implements.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides the same functionality as register(Class) except the JAX-RS component
+ class is only registered as a provider of the listed extension provider or meta-provider contracts. All
+ explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered
+ component. Contracts that are not assignable from the registered component
+ class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
+
+
+
Parameters:
+
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
+
contracts - the specific extension provider or meta-provider contracts implemented by the component for which
+ the component should be registered. Implementations MUST ignore attempts to register a component class for an empty
+ or null collection of contracts via this method and SHOULD raise a warning about such event.
Register a class of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides same functionality as register(Class, Class[]) except that any priority
+ specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for
+ each extension provider contract type separately with an integer priority value specified as a value in the supplied
+ map of [contract type, priority] pairs.
+
+
+ Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the
+ supplied priority value is ignored for such contract.
+
+
+
Parameters:
+
componentClass - JAX-RS component class to be configured in the scope of this configurable context.
+
contracts - map of the specific extension provider and meta-provider contracts and their associated priorities
+ for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface
+ implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform
+ users about the ignored contract(s).
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported
+ JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type,
+ for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS
+ implementation and a warning SHOULD be raised to inform the user about the rejected registration.
+
+ The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or
+ implementation-specific extension contracts including meta-provider contracts, such as Feature or
+ DynamicFeature.
+
+ As opposed to components registered via register(Class) method, the lifecycle of providers registered using
+ this instance-based register(...) is not managed by JAX-RS runtime. The same registered component instance is
+ used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component
+ instances are injected with their declared dependencies (see Context) by the JAX-RS runtime prior to use.
+
+
+
Parameters:
+
component - JAX-RS component instance to be configured in the scope of this configurable context.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides the same functionality as register(Object) except that any priority
+ specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden
+ with the supplied priority value.
+
+
+ Note that in case the priority is not applicable to a particular provider contract implemented by the class of the
+ registered component, the supplied priority value will be ignored for that contract.
+
+
+
Parameters:
+
component - JAX-RS component instance to be configured in the scope of this configurable context.
+
priority - the overriding priority for the registered component and all the provider contracts the component
+ implements.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides the same functionality as register(Object) except the JAX-RS component
+ class is only registered as a provider of the listed extension provider or meta-provider contracts. All
+ explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered
+ component. Contracts that are not assignable from the registered component
+ class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).
+
+
+
Parameters:
+
component - JAX-RS component instance to be configured in the scope of this configurable context.
+
contracts - the specific extension provider or meta-provider contracts implemented by the component for which
+ the component should be registered. Implementations MUST ignore attempts to register a component class for an empty
+ or null collection of contracts via this method and SHOULD raise a warning about such event.
Register an instance of a custom JAX-RS component (such as an extension provider or a feature meta-provider) to be instantiated and used in the scope of this configurable context.
+
+ This registration method provides same functionality as register(Object, Class[]) except that any priority
+ specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for
+ each extension provider contract type separately with an integer priority value specified as a value in the supplied
+ map of [contract type, priority] pairs.
+
+
+ Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the
+ supplied priority value is ignored for such contract.
+
+
+
Parameters:
+
component - JAX-RS component instance to be configured in the scope of this configurable context.
+
contracts - map of the specific extension provider and meta-provider contracts and their associated priorities
+ for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface
+ implemented or extended by the JAX-RS component. Contracts that are not assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform
+ users about the ignored contract(s).
A configuration state associated with a configurable JAX-RS context. Defines the components as
+ well as additional meta-data for the configured context.
+
+ A configuration state may be used to retrieve configuration information about of the associated JAX-RS context (e.g.
+ application, resource method, etc.) or component (e.g. Client,
+ WebTarget, etc.). Configuration information consists of properties, registered JAX-RS
+ component classes and/or instances.
+
+
+ This interface can be injected using the Context annotation.
+
Get the immutable set of registered JAX-RS component (such as provider, root resource or feature)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance.
Check if a particular feature instance has been previously enabled in the runtime configuration
+ context.
+
+ Method returns true only in case an instance equal to the feature instance is already present among
+ the features previously successfully enabled in the configuration context.
+
+
+
Parameters:
+
feature - a feature instance to test for.
+
Returns:
+
true if the feature instance has been previously enabled in this configuration context, false
+ otherwise.
Check if a feature instance of featureClass class has been previously enabled in the runtime
+ configuration context.
+
+ Method returns true in case any instance of the featureClass class is already present among the
+ features previously successfully enabled in the configuration context.
+
+
+
Parameters:
+
featureClass - a feature class to test for.
+
Returns:
+
true if a feature of a given class has been previously enabled in this configuration context,
+ false otherwise.
Check if a particular JAX-RS component instance (such as providers or features) has been
+ previously registered in the runtime configuration context.
+
+ Method returns true only in case an instance equal to the component instance is already present among
+ the components previously registered in the configuration context.
+
+
+
Parameters:
+
component - a component instance to test for.
+
Returns:
+
true if the component instance has been previously registered in this configuration context,
+ false otherwise.
Check if a JAX-RS component of the supplied componentClass class has been previously registered in the
+ runtime configuration context.
+
+ Method returns true in case a component of the supplied componentClass class is already present among
+ the previously registered component classes or instances in the configuration context.
+
+
+
Parameters:
+
componentClass - a component class to test for.
+
Returns:
+
true if a component of a given class has been previously registered in this configuration context,
+ false otherwise.
Get the extension contract registration information for a component of a given class.
+
+ For component classes that are not configured in this configuration context the method returns an empty Map.
+ Method does not return null.
+
+
Parameters:
+
componentClass - a component class for which to get contracts.
+
Returns:
+
map of extension contracts and their priorities for which the component class is registered. May return an
+ empty map in case the component has not been registered for any extension contract supported by the implementation.
Get the immutable set of registered JAX-RS component (such as provider, root resource or feature)
+ classes to be instantiated, injected and utilized in the scope of the configurable instance. In contrast to
+ Application.getClasses() this method returns a complete runtime view and therefore also includes
+ auto-discovered components.
+
+ For each component type, there can be only a single class-based or instance-based registration present in the
+ configuration context at any given time.
+
+
+
Returns:
+
the immutable set of registered JAX-RS component classes. The returned value may be empty but will never be
+ null.
Get the immutable set of registered JAX-RS component (such as provider or feature) instances to be
+ utilized by the configurable instance. Fields and properties of returned instances are injected with their declared
+ dependencies (see Context) by the runtime prior to use.
+
+ For each component type, there can be only a single class-based or instance-based registration present in the
+ configuration context at any given time.
+
+
+
Returns:
+
the immutable set of registered JAX-RS component instances. The returned value may be empty but will never be
+ null.
Represents the value of a HTTP cookie, transferred in a request. RFC 2109 specifies the legal characters for name,
+ value, path and domain. The default version of 1 corresponds to RFC 2109.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).fromString(value) instead.
+
+
Creates a new instance of Cookie by parsing the supplied string.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(Cookie.class).toString(value) instead if you rely on the format of
+ this method.
+
+
Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.
Convenience method for setting the media type for the EntityPart. This will
+ also set the Content-Type header for this part. This call is
+ effectively the same as
+ mediaType(MediaType.valueOf(mediaTypeString)).
+
+
Parameters:
+
mediaTypeString - the media type for the part to be built
Adds new headers or replaces previously added headers. The behavior of this
+ method would be the same as if iterating over the entry set and invoking the
+ header(String, String...) method.
+
+
Parameters:
+
newHeaders - the multivalued map of headers to add to this part
Sets the file name for this part. The file name will be specified as an
+ attribute in the Content-Disposition header of this part. When this
+ method is called, the default media type used for the built part will be
+ "application/octet-stream" if not otherwise specified.
Sets the content for this part. The content of this builder must be specified
+ before invoking the build() method.
+
+ The InputStream will be closed by the implementation code after
+ sending the multipart data. Closing the stream before it is sent could result
+ in unexpected behavior.
+
A EntityPart is one part of a multipart entity. As defined in
+ RFC 7578, a multipart
+ request or response must have a content type of "multipart/form-data" with a
+ boundary parameter indicating where one part ends the next may begin.
+
+ Multipart entities may be received in a resource method as a collection of
+ parts (e.g. List<EntityPart>) or as a form parameter (ex:
+ @FormParam("part1Name") EntityPart part1).
+
+
+ Likewise, a client may receive a multipart response by reading the returned
+ entity as a collection of EntityParts (ex: response.readEntity(new
+ GenericType<List<EntityPart>>() {})).
+
+
+ In order to send a multipart entity either as a client request or a response
+ from a resource method, you may create the Lists using
+ EntityPart.Builder. For example:
+
+
+
+ Client c = ClientBuilder.newClient();
+WebTarget target = c.target(someURL);
+List<EntityPart> parts = Arrays.asList(
+ EntityPart.withName("name1").fileName("file1.doc").content(stream1).build(),
+ EntityPart.withName("name2").fileName("file2.doc").content(stream2).build(),
+ EntityPart.withName("name3").fileName("file3.xml").content(myObject, MyClass.class).mediaType("application/xml").build());
+GenericEntity<List<EntityPart>> genericEntity = new GenericEntity<>(parts){};
+Entity entity = Entity.entity(genericEntity, MediaType.MULTIPART_FORM_DATA);
+Response r = target.request().post(entity);
+
+
+ Note that when building a EntityPart, the name and content are required.
+ Other properties such as headers, file name, and media type are optional.
+
+ It is the responsibility of the implementation code to close the content
+ input streams when sending the multipart content. Closing the stream before
+ the implementation has sent it could result in unexpected exceptions. It is
+ the responsibility of the calling code to close the stream when receiving the
+ multipart content.
Returns the filename of this part. This will be the "filename" attribute of
+ the Content-Disposition header for this part. A filename is not
+ required in a part, so if a filename is not present it will return
+ Optional.empty().
+
+
Returns:
+
an Optional<String> indicating the filename if present
Returns the input stream for this part. This is the content body of the part
+ and is accessed as a stream to avoid loading potentially large amounts of
+ data into the heap.
+
+ It is the responsibility of the calling code to close this stream after
+ receiving it.
+
+
Returns:
+
an InputStream representing the content of this part
Converts the content stream for this part to the specified class and returns
+ it. The implementation must convert the stream by finding a
+ MessageBodyReader that handles the specified type
+ as well as the MediaType of the part. If no
+ MessageBodyReader can be found to perform the
+ conversion, this method will throw an IllegalArgumentException.
+
+ The implementation is required to close the content stream when this method
+ is invoked, so it may only be invoked once. Subsequent invocations will
+ result in an IllegalStateException. Likewise this method will throw
+ an IllegalStateException if it is called after calling
+ getContent() or getContent(GenericType).
+
+
Type Parameters:
+
T - the entity type
+
Parameters:
+
type - the Class that the implementation should convert this
+ part to
+
Returns:
+
an instance of the specified Class representing the content
+ of this part
Converts the content stream for this part to the specified type and returns
+ it. The implementation must convert the stream by finding a
+ MessageBodyReader that handles the specified type
+ as well as the MediaType of the part. If no
+ MessageBodyReader can be found to perform the
+ conversion, this method will throw an IllegalArgumentException.
+
+ The implementation is required to close the content stream when this method
+ is invoked, so it may only be invoked once. Subsequent invocations will
+ result in an IllegalStateException. Likewise this method will throw
+ an IllegalStateException if it is called after calling
+ getContent() or getContent(Class).
+
+
Type Parameters:
+
T - the entity type
+
Parameters:
+
type - the generic type that the implementation should convert this part
+ to
+
Returns:
+
an instance of the specified generic type representing the content of
+ this part
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).fromString(value) instead.
+
+
Creates a new instance of EntityTag by parsing the supplied string.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(EntityTag.class).toString(value) instead if you rely on the format
+ of this method.
+
+
Convert the entity tag to a string suitable for use as the value of the corresponding HTTP header.
A feature extension contract.
+
+ Typically encapsulates a concept or facility that involves configuration of multiple providers (e.g. filters or
+ interceptors) and/or properties.
+
+ A Feature is a special type of JAX-RS configuration meta-provider. Once a feature is registered, its
+ configure(FeatureContext) method is invoked during JAX-RS runtime configuration and bootstrapping phase
+ allowing the feature to further configure the runtime context in which it has been registered. From within the
+ invoked configure(...) method a feature may provide additional runtime configuration for the facility or
+ conceptual domain it represents, such as registering additional contract providers, including nested features and/or
+ specifying domain-specific properties.
+
+
+ Features implementing this interface MAY be annotated with the @Provider
+ annotation in order to be discovered by the JAX-RS runtime when scanning for resources and providers. Please note
+ that this will only work for server side features. Features for the JAX-RS client must be registered
+ programmatically.
+
A call-back method called when the feature is to be enabled in a given runtime configuration scope.
+
+ The responsibility of the feature is to properly update the supplied runtime configuration context and return
+ true if the feature was successfully enabled or false otherwise.
+
+ Note that under some circumstances the feature may decide not to enable itself, which is indicated by returning
+ false. In such case the configuration context does not add the feature to the collection of enabled features
+ and a subsequent call to Configuration.isEnabled(Feature) or Configuration.isEnabled(Class) method
+ would return false.
+
+
+
Parameters:
+
context - configurable context in which the feature should be enabled.
+
Returns:
+
true if the feature was successfully enabled, false otherwise.
+ The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters
+ can be iterated in the same order as they were inserted into the Form.
+
Create a new form data instance with a single parameter entry.
+
+ The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters
+ can be iterated in the same order as they were inserted into the Form.
+
Create a new form data instance and register a custom underlying parameter store.
+
+ This method is useful in situations when a custom parameter store is needed in order to change the default parameter
+ iteration order, improve performance or facilitate other custom requirements placed on the parameter store.
+
+
+
Parameters:
+
store - form data store used by the created form instance.
Represents a message entity of a generic type T.
+
+ Normally type erasure removes generic type information such that a Response instance that contains, e.g., an
+ entity of type List<String> appears to contain a raw List<?> at runtime. When the generic type is
+ required to select a suitable MessageBodyWriter, this class may be used to wrap the entity
+ and capture its generic type.
+
+
+ There are two ways to create an instance:
+
+
+
Create a (typically anonymous) subclass of this class which enables retrieval of the type information at runtime
+ despite type erasure. For example, the following code shows how to create a Response containing an entity of
+ type List<String> whose generic type will be available at runtime for selection of a suitable
+ MessageBodyWriter:
+
+
+ List<String> list = new ArrayList<String>();
+ GenericEntity<List<String>> entity = new GenericEntity<List<String>>(list) {
+ };
+ Response response = Response.ok(entity).build();
+
+
+
+ where list is the instance of List<String> that will form the response body and entity is an instance
+ of an anonymous subclass of GenericEntity.
+
+
+
Create an instance directly by supplying the generic type information with the entity. For example the following
+ code shows how to create a response containing the result of a method invoked via reflection:
+
+
Constructs a new generic entity. Derives represented class from type parameter. Note that this constructor is
+ protected, users should create a (usually anonymous) subclass as shown above.
Create a new instance of GenericEntity, supplying the generic type information. The entity must be assignable to a
+ variable of the supplied generic type, e.g. if entity is an instance of ArrayList<String> then
+ genericType could be the same or a superclass of ArrayList with the same generic type like
+ List<String>.
+
+
Parameters:
+
entity - the entity instance, must not be null.
+
genericType - the generic type, must not be null.
+
Throws:
+
IllegalArgumentException - if the entity is not assignable to a variable of the supplied generic type or if
+ entity or genericType is null.
Gets the raw type of the enclosed entity. Note that this is the raw type of the instance, not the raw type of the
+ type parameter. I.e. in the example in the introduction, the raw type is ArrayList not List.
Gets underlying Type instance. Note that this is derived from the type parameter, not the enclosed instance.
+ I.e. in the example in the introduction, the type is List<String> not ArrayList<String>.
Represents a generic message entity type T.
+
+ Supports in-line instantiation of objects that represent generic types with actual type parameters. An object that
+ represents any parameterized type may be obtained by sub-classing GenericType. Alternatively, an object
+ representing a concrete parameterized type can be created using a GenericType(java.lang.reflect.Type) and
+ manually specifying the actual (parameterized) type.
+
+ For example:
+
+
+
+ GenericType<List<String>> stringListType = new GenericType<List<String>>() {
+ };
+
+
+ Or:
+
+
+
+ public class MyGenericType extends GenericType<List<String>> { ... }
+
+ ...
+
+ MyGenericType stringListType = new MyGenericType();
+
+
+ Note that due to the Java type erasure limitations the parameterized type information must be specified on a
+ subclass, not just during the instance creation. For example, the following case would throw an
+ IllegalArgumentException:
+
+
+
+ public class MyGenericType<T> extends GenericType<T> { ... }
+
+ ...
+
+ // The type is only specified on instance, not in a sub-class
+ MyGenericType<List<String>> stringListType =
+ new MyGenericType<List<String>>();
+
Constructs a new generic type, deriving the generic type and class from type parameter. Note that this constructor is
+ protected, users should create a (usually anonymous) subclass as shown above.
+
+
Throws:
+
IllegalArgumentException - in case the generic type parameter value is not provided by any of the subclasses.
+ If the supplied instance is a GenericEntity, the generic type will be computed using the
+ GenericEntity.getType(). Otherwise instance.getClass() will be used.
+
+
+
Parameters:
+
instance - Java instance for which the GenericType description should be created.
An injectable interface that provides access to HTTP header information. All methods throw
+ IllegalStateException if called outside the scope of a request (e.g. from a provider constructor).
Get the values of a HTTP request header if the header exists on the current request. The returned value will be
+ a read-only List if the specified header exists or null if it does not. This is a shortcut for
+ getRequestHeaders().get(name).
+
+
Parameters:
+
name - the header name, case insensitive.
+
Returns:
+
a read-only list of header values if the specified header exists, otherwise null.
the HTTP header value. If the HTTP header is not present then null is returned. If the HTTP header is
+ present but has no value then the empty string is returned. If the HTTP header is present more than once then the
+ values of joined together and separated by a ',' character.
Checks whether a header with a specific name and value (or item of the token-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valueSeparatorRegex - Regular expression that separates the header value into single values.
+ null does not split.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+
+ Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one
+ is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value
+ class or using its toString method if a header delegate is not available.
+
+
+ For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if
+ a Cache-Control header exists that has the value no-store, the value No-Store or the value
+ Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform
+ (missing comma), or the value no - store (whitespace within value).
+
+
Parameters:
+
name - the message header.
+
valuePredicate - value must fulfil this predicate.
+
Returns:
+
true if and only if a header with the given name exists, having either a whitespace-trimmed value
+ matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
+ Get a list of languages that are acceptable for the response.
+
+ If no acceptable languages are specified, a read-only list containing a single wildcard Locale
+ instance (with language field set to "*") is returned.
+
+
Returns:
+
a read-only list of acceptable languages sorted according to their q-value, with highest preference first.
Convenience method to set a link relation. More than one rel value can be specified by using one or more
+ whitespace characters as delimiters according to RFC 5988. The effect of calling this method is cumulative; relations
+ are appended using a single space character as separator.
Set an arbitrary parameter on this link. Note that link parameters are those defined in RFC 5988 and should not be
+ confused with URI parameters which can be specified when calling build(Object...).
Finish building this link using the supplied values as URI parameters.
+
+ The state of the builder is unaffected; this method may be called multiple times on the same builder instance.
+
+
Parameters:
+
values - parameters used to build underlying URI.
+
Returns:
+
newly built link.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a value is
+ null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the underlying URI builder.
Finish building this link using the supplied values as URI parameters and relativize the result with respect to the
+ supplied URI.
+
+ If the underlying link is already relative or if it is absolute but does not share a prefix with the supplied URI,
+ this method is equivalent to calling build(java.lang.Object[]). Note that a base URI can be set
+ on a relative link using baseUri(java.net.URI). The state of the builder is unaffected; this
+ method may be called multiple times on the same builder instance.
+
+
Parameters:
+
uri - URI used for relativization.
+
values - parameters used to build underlying URI.
+
Returns:
+
newly built link.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a value is
+ null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the underlying URI builder.
+ Class representing hypermedia links. A hypermedia link may include additional parameters beyond its underlying URI.
+ Parameters such as rel or type provide additional meta-data. Links in responses can be
+ followed by creating an Invocation.Builder or a
+ WebTarget.
+
Returns an immutable map that includes all the link parameters defined on this link. If defined, this map will
+ include entries for rel, title and type.
Returns a string representation as a link header (RFC 5988). All link params are serialized as link-param="value"
+ where value is a quoted-string. For example,
+
+ <http://foo.bar/employee/john>; title="employee"; rel="manager friend"
Convenience method to build a link from a resource. Equivalent to
+ Link.fromUriBuilder({@link UriBuilder#fromResource UriBuilder.fromResource(resource)}). Note that the link
+ URI passed to the Link.Builder instance returned by this method is relative. Should the link be built as
+ absolute, a base URI has to be specified in the builder prior to building the new
+ link instance. For example, on a server side a UriInfo.getBaseUri() may be typically used to define the base
+ URI of a link created using this method.
+
+
Parameters:
+
resource - a root resource whose Path value will be used to initialize the builder.
Convenience method to build a link from a resource. Equivalent to
+ Link.fromUriBuilder({@link UriBuilder#fromMethod(Class, String) UriBuilder.fromMethod(resource, method)}).
+ Note that the link URI passed to the Link.Builder instance returned by this method is relative. Should the
+ link be built as absolute, a base URI has to be specified in the builder prior to
+ building the new link instance. For example, on a server side a UriInfo.getBaseUri() may be typically used to
+ define the base URI of a link created using this method.
+
+
Parameters:
+
resource - the resource containing the method.
+
method - the name of the method whose Path value will be used to obtain the path to append.
+
Returns:
+
the updated Link.Builder.
+
Throws:
+
IllegalArgumentException - if resource or method is null, or there is more than or less than one
+ variant of the method annotated with Path.
Check if this media type is compatible with another media type.
+ Two media types are considered to be compatible if and only if their types are equal,
+ or one of them has a wildcard type, and their subtypes are equal or one of them has a wildcard subtype.
+
+ Media type parameters are ignored. The function is commutative.
+
+
Parameters:
+
other - the media type to compare with.
+
Returns:
+
true if the types are compatible, false otherwise.
+ Compares obj to this media type to see if they are the same by comparing type, subtype and parameters. Note
+ that the case-sensitivity of parameter values is dependent on the semantics of the parameter name, see
+ HTTP/1.1. This method assumes that values
+ are case-sensitive.
+
+ Note that the equals(...) implementation does not perform a class equality check
+ (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs
+ to override one of the equals(...) and hashCode() methods must always override both methods to
+ ensure the contract between Object.equals(java.lang.Object) and Object.hashCode() does not break.
true if the two media types are the same, false otherwise.
+
+
+
+
+
+
hashCode
+
publicinthashCode()
+
+ Generate a hash code from the type, subtype and parameters.
+
+ Note that the equals(java.lang.Object) implementation does not perform a class equality check
+ (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs
+ to override one of the equals(Object) and hashCode() methods must always override both methods to
+ ensure the contract between Object.equals(java.lang.Object) and Object.hashCode() does not break.
A hash table based implementation of MultivaluedMap interface.
+
+
+ This implementation provides all of the optional map operations. This class makes no guarantees as to the order of
+ the map; in particular, it does not guarantee that the order will remain constant over time. The implementation
+ permits null key. By default the implementation does also permit null values, but ignores them. This
+ behavior can be customized by overriding the protected addNull(...) and
+ addFirstNull(...) methods.
+
+
+ This implementation provides constant-time performance for the basic operations (get and put),
+ assuming the hash function disperses the elements properly among the buckets. Iteration over collection views
+ requires time proportional to the "capacity" of the map instance (the number of buckets) plus its size (the number of
+ key-value mappings). Thus, it's very important not to set the initial capacity too high (or the load factor too low)
+ if iteration performance is important.
+
+
+ An instance of MultivaluedHashMap has two parameters that affect its performance: initial capacity
+ and load factor. The capacity is the number of buckets in the hash table, and the initial capacity is
+ simply the capacity at the time the hash table is created. The load factor is a measure of how full the hash
+ table is allowed to get before its capacity is automatically increased. When the number of entries in the hash table
+ exceeds the product of the load factor and the current capacity, the hash table is rehashed (that is, internal
+ data structures are rebuilt) so that the hash table has approximately twice the number of buckets.
+
+
+ As a general rule, the default load factor (.75) offers a good tradeoff between time and space costs. Higher values
+ decrease the space overhead but increase the lookup cost (reflected in most of the operations of the HashMap
+ class, including get and put). The expected number of entries in the map and its load factor should
+ be taken into account when setting its initial capacity, so as to minimize the number of rehash operations. If the
+ initial capacity is greater than the maximum number of entries divided by the load factor, no rehash operations will
+ ever occur.
+
+
+ If many mappings are to be stored in a MultivaluedHashMap instance, creating it with a sufficiently large
+ capacity will allow the mappings to be stored more efficiently than letting it perform automatic rehashing as needed
+ to grow the table.
+
+
+ Note that this implementation is not guaranteed to be synchronized. If multiple threads access a
+ hash map concurrently, and at least one of the threads modifies the map structurally, it must be synchronized
+ externally. (A structural modification is any operation that adds or deletes one or more mappings; merely changing
+ the value associated with a key that an instance already contains is not a structural modification.) This is
+ typically accomplished by synchronizing on some object that naturally encapsulates the map.
+
+
+ The iterators returned by all of this class's "collection view methods" are fail-fast: if the map is
+ structurally modified at any time after the iterator is created, in any way except through the iterator's own
+ remove method, the iterator will throw a ConcurrentModificationException. Thus, in the face of
+ concurrent modification, the iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic
+ behavior at an undetermined time in the future.
+
+ Note that the fail-fast behavior of an iterator cannot be guaranteed as it is, generally speaking, impossible to make
+ any hard guarantees in the presence of unsynchronized concurrent modification. Fail-fast iterators throw
+ ConcurrentModificationException on a best-effort basis. Therefore, it would be wrong to write a program that
+ depended on this exception for its correctness: the fail-fast behavior of iterators should be used only to detect
+ bugs.
Constructs a new multivalued hash map with the same mappings as the specified MultivaluedMap. The
+ List instances holding the values of each key are created anew instead of being reused.
+
+
Parameters:
+
map - the multivalued map whose mappings are to be placed in this multivalued map.
Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty,
+ method returns immediately. Method throws a NullPointerException if the supplied array of values is
+ null.
Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied
+ value list is empty, method returns immediately. Method throws a NullPointerException if the supplied array
+ of values is null.
Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the
+ values associated with each key are compared as if they were ordered lists.
Set the maximum age of the the cookie in seconds. Cookies older than the maximum age are discarded. A cookie can be
+ unset by sending a new cookie with maximum age of 0 since it will overwrite any existing cookie and then be
+ immediately discarded. The default value of -1 indicates that the cookie will be discarded at the end of the
+ browser/application session.
Set the cookie expiry date. Cookies whose expiry date has passed are discarded. A cookie can be unset by setting a
+ new cookie with an expiry date in the past, typically the lowest possible date that can be set.
+
+ Note that it is recommended to use Max-Age to control cookie expiration, however some browsers
+ do not understand Max-Age, in which case setting Expires parameter may be necessary.
+
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
This method will be removed in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).fromString(value) instead.
+
+
Creates a new instance of NewCookie by parsing the supplied string.
Get the maximum age of the the cookie in seconds. Cookies older than the maximum age are discarded. A cookie can be
+ unset by sending a new cookie with maximum age of 0 since it will overwrite any existing cookie and then be
+ immediately discarded. The default value of -1 indicates that the cookie will be discarded at the end of the
+ browser/application session.
+
+ Note that it is recommended to use Max-Age to control cookie expiration, however some browsers do not
+ understand Max-Age, in which case setting getExpiry() Expires} parameter may be necessary.
+
Get the cookie expiry date. Cookies whose expiry date has passed are discarded. A cookie can be unset by setting a
+ new cookie with an expiry date in the past, typically the lowest possible date that can be set.
+
+ Note that it is recommended to use Max-Age to control cookie expiration, however some browsers
+ do not understand Max-Age, in which case setting Expires parameter may be necessary.
+
+
+
Returns:
+
cookie expiry date or null if no expiry date was set.
Whether the cookie will only be sent over a secure connection. Defaults to false.
+
+
Returns:
+
true if the cookie will only be sent over a secure connection, false otherwise.
+
+
+
+
+
+
isHttpOnly
+
publicbooleanisHttpOnly()
+
Returns true if this cookie contains the HttpOnly attribute. This means that the cookie should not be
+ accessible to scripting engines, like javascript.
+
+
Returns:
+
true if this cookie should be considered http only, false otherwise.
Returns the value of the SameSite attribute for this cookie or null if the attribute is not set.
+ This attributes controls whether the cookie is sent with cross-origin requests, providing protection against
+ cross-site request forgery.
+
+
Returns:
+
the value of the SameSite cookie attribute or null.
Obtain a new instance of a Cookie with the same name, value, path, domain and version as this
+ NewCookie. This method can be used to obtain an object that can be compared for equality with another
+ Cookie; since a Cookie will never compare equal to a NewCookie.
The format of the toString() method is subject to change in a future version. Please use
+ RuntimeDelegate.getInstance().createHeaderDelegate(NewCookie.class).toString(value) instead if you rely on the format
+ of this method.
+
+
Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.
public class NoContentException
+extends IOException
+
An I/O exception thrown by MessageBodyReader implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.
+
+ This exception, when thrown while reading a server request entity, is automatically translated by JAX-RS server
+ runtime into a BadRequestException wrapping the original NoContentException and rethrown
+ for a standard processing by the registered exception mappers.
+
Represents a URI path segment and any associated matrix parameters. When an instance of this type is injected with
+ PathParam, the value of the annotation identifies which path segment is selected and the presence
+ of an Encoded annotation will result in an instance that supplies the path and matrix parameter
+ values in URI encoded form.
Get a map of the matrix parameters associated with the path segment. The map keys are the names of the matrix
+ parameters with any percent-escaped octets decoded.
An injectable helper for request processing, all methods throw an IllegalStateException if called outside the
+ scope of a request (e.g. from a provider constructor).
+
+ Precondition processing (see the evaluatePreconditions methods) can result in either a null return
+ value to indicate that preconditions have been met and that the request should continue, or a non-null return
+ value to indicate that preconditions were not met. In the event that preconditions were not met, the returned
+ ResponseBuilder instance will have an appropriate status and will also include a Vary header if the
+ selectVariant(List) method was called prior to to calling evaluatePreconditions. It is the
+ responsibility of the caller to check the status and add additional metadata if required. E.g., see
+ HTTP/1.1, section 10.3.5 for details
+ of the headers that are expected to accompany a 304 Not Modified response.
Select the representation variant that best matches the request. Returns null in case there is no matching
+ variant in the list.
+
+ More explicit variants are chosen ahead of less explicit ones. A vary header is computed from the supplied list and
+ automatically added to the response.
+
+
+
Parameters:
+
variants - a list of Variant that describe all of the available representation variants.
+
Returns:
+
the variant that best matches the request or null if there's no match.
Evaluate request preconditions based on the passed in value.
+
+
Parameters:
+
eTag - an ETag for the current state of the resource
+
Returns:
+
null if the preconditions are met or a ResponseBuilder set with the appropriate status if the
+ preconditions are not met. A returned ResponseBuilder will include an ETag header set with the value of eTag,
+ provided none of the precondition evaluation has failed, in which case the ETag header would not be included and the
+ status code of the returned ResponseBuilder would be set to Response.Status.PRECONDITION_FAILED.
Evaluate request preconditions based on the passed in value.
+
+
Parameters:
+
lastModified - a date that specifies the modification date of the resource
+
eTag - an ETag for the current state of the resource
+
Returns:
+
null if the preconditions are met or a ResponseBuilder set with the appropriate status if the
+ preconditions are not met. A returned ResponseBuilder will include an ETag header set with the value of eTag,
+ provided none of the precondition evaluation has failed, in which case the ETag header would not be included and the
+ status code of the returned ResponseBuilder would be set to Response.Status.PRECONDITION_FAILED.
Evaluate request preconditions for a resource that does not currently exist. The primary use of this method is to
+ support the If-Match: * and
+ If-None-Match: * preconditions.
+
+
+ Note that precondition If-None-Match: something will never be
+ considered to have been met, and it is the application's responsibility to enforce any additional method-specific
+ semantics. E.g. a PUT on a resource that does not exist might succeed whereas a GET on a resource
+ that does not exist would likely result in a 404 response. It would be the responsibility of the application to
+ generate the 404 response.
+
+
+
Returns:
+
null if the preconditions are met or a ResponseBuilder set with the appropriate status if the
+ preconditions are not met.
public abstract static class Response.ResponseBuilder
+extends Object
+
A class used to build Response instances that contain metadata instead of or in addition to an entity. An initial
+ instance may be obtained via static methods of the Response class, instance methods provide the ability to set
+ metadata. E.g. to create a response that indicates the creation of a new resource:
+
+
+ Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers
+ responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.
+ Note that the entity can be also set as an input stream.
+
+ A specific entity media type can be set using one of the type(...) methods.
+ Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers
+ responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.
+ Note that the entity can be also set as an input stream.
+
+ A specific entity media type can be set using one of the type(...) methods.
+
+
Parameters:
+
entity - the request entity.
+
annotations - annotations that will be passed to the MessageBodyWriter, (in addition to any annotations
+ declared directly on a resource method that returns the built response).
value - the value of the header, the header will be serialized using a
+ RuntimeDelegate.HeaderDelegate if one is available via
+ RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the class of value or using
+ its toString method if a header delegate is not available. If value is null then all current
+ headers of the same name will be removed.
location - the content location. Relative or absolute URIs may be used for the value of content location. If
+ null any existing value for content location will be removed.
cookies - new cookies that will accompany the response. A null value will remove all cookies, including
+ those added via the header(java.lang.String, java.lang.Object) method.
location - the location. If a relative URI is supplied it will be converted into an absolute URI by resolving it
+ relative to the base URI of the application (see UriInfo.getBaseUri()). If null any existing value for
+ location will be removed.
+ This is a shortcut for tag(new EntityTag(value)).
+
+
Parameters:
+
tag - the string content of a strong entity tag. The JAX-RS runtime will quote the supplied value when creating
+ the header. If null any existing entity tag value will be removed.
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Commonly used status codes defined by HTTP, see
+ HTTP/1.1 documentation for the complete
+ list. Additional status codes can be added by applications by creating an implementation of Response.StatusType.
Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+
Parameters:
+
name - the name of the enum constant to be returned.
Defines the contract between a returned instance and the runtime when an application needs to provide meta-data to
+ the runtime.
+
+ An application class should not extend this class directly. Response class is reserved for an extension by a
+ JAX-RS implementation providers. An application should use one of the static methods to create a Response
+ instance using a ResponseBuilder.
+
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
public abstract<T>TreadEntity(Class<T> entityType)
+
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
+
+ Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the
+ requested type and IllegalStateException in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without buffering the entity data
+ prior consuming.
+
+
+ A message instance returned from this method will be cached for subsequent retrievals via getEntity().
+ Unless the supplied entity type is an input stream, this method automatically
+ closes the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ readEntity(...) methods on this response.
+
+
+
Type Parameters:
+
T - entity instance Java type.
+
Parameters:
+
entityType - the type of entity.
+
Returns:
+
the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException
+ wrapping the underlying NoContentException is thrown.
+
Throws:
+
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
+
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.
public abstract<T>TreadEntity(GenericType<T> entityType)
+
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
+
+ Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the
+ requested type and IllegalStateException in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without buffering the entity data
+ prior consuming.
+
+
+ A message instance returned from this method will be cached for subsequent retrievals via getEntity().
+ Unless the supplied entity type is an input stream, this method automatically
+ closes the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ readEntity(...) methods on this response.
+
+
+
Type Parameters:
+
T - entity instance Java type.
+
Parameters:
+
entityType - the type of entity; may be generic.
+
Returns:
+
the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException
+ wrapping the underlying NoContentException is thrown.
+
Throws:
+
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
+
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.
public abstract<T>TreadEntity(Class<T> entityType,
+ Annotation[] annotations)
+
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
+
+ Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the
+ requested type and IllegalStateException in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without buffering the entity data
+ prior consuming.
+
+
+ A message instance returned from this method will be cached for subsequent retrievals via getEntity().
+ Unless the supplied entity type is an input stream, this method automatically
+ closes the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ readEntity(...) methods on this response.
+
+
+
Type Parameters:
+
T - entity instance Java type.
+
Parameters:
+
entityType - the type of entity.
+
annotations - annotations that will be passed to the MessageBodyReader.
+
Returns:
+
the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException
+ wrapping the underlying NoContentException is thrown.
+
Throws:
+
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
+
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.
public abstract<T>TreadEntity(GenericType<T> entityType,
+ Annotation[] annotations)
+
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
+
+ Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the
+ requested type and IllegalStateException in case the entity is not backed by an input stream or if the
+ original entity input stream has already been consumed without buffering the entity data
+ prior consuming.
+
+
+ A message instance returned from this method will be cached for subsequent retrievals via getEntity().
+ Unless the supplied entity type is an input stream, this method automatically
+ closes the an unconsumed original response entity data stream if open. In case the entity data has
+ been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of
+ readEntity(...) methods on this response.
+
+
+
Type Parameters:
+
T - entity instance Java type.
+
Parameters:
+
entityType - the type of entity; may be generic.
+
annotations - annotations that will be passed to the MessageBodyReader.
+
Returns:
+
the message entity; for a zero-length response entities returns a corresponding Java object that represents
+ zero-length data. In case no zero-length representation is defined for the Java type, a ProcessingException
+ wrapping the underlying NoContentException is thrown.
+
Throws:
+
ProcessingException - if the content of the message cannot be mapped to an entity of the requested type.
+
IllegalStateException - if the entity is not backed by an input stream, the response has been closed already, or if the entity input stream has been fully consumed already and has not been buffered prior
+ consuming.
Check if there is an entity available in the response. The method returns true if the entity is present,
+ returns false otherwise.
+
+ Note that the method may return true also for response messages with a zero-length content, in case the
+ "Content-Length" and
+ "Content-Type" headers are specified in the message. In such case, an
+ attempt to read the entity using one of the readEntity(...) methods will return a corresponding instance
+ representing a zero-length entity for a given Java type or produce a ProcessingException in case no such
+ instance is available for the Java type.
+
+
+
Returns:
+
true if there is an entity present in the message, false otherwise.
+ In case the message entity is backed by an unconsumed entity input stream, all the bytes of the original entity input
+ stream are read and stored in a local buffer. The original entity input stream is consumed and automatically closed
+ as part of the operation and the method returns true.
+
+
+ In case the response entity instance is not backed by an unconsumed input stream an invocation of
+ bufferEntity method is ignored and the method returns false.
+
+
+ This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
+ calling the bufferEntity() method on an already buffered (and thus closed) message instance is legal and has
+ no further effect. Also, the result returned by the bufferEntity() method is consistent across all
+ invocations of the method on the same Response instance.
+
+
+ Buffering the message entity data allows for multiple invocations of readEntity(...) methods on the response
+ instance. Note however, that once the response instance itself is closed, the implementations are
+ expected to release the buffered message entity data too. Therefore any subsequent attempts to read a message entity
+ stream on such closed response will result in an IllegalStateException being thrown.
+
+
+
Returns:
+
true if the message entity input stream was available and was buffered successfully, returns
+ false if the entity stream was not available.
+
Throws:
+
ProcessingException - if there was an error while buffering the entity input stream.
Close the underlying message entity input stream (if available and open) as well as releases any other resources
+ associated with the response (e.g. buffered message entity data).
+
+ This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that
+ calling the close() method on an already closed message instance is legal and has no further effect.
+
+
+ The close() method should be invoked on all instances that contain an un-consumed entity input stream to
+ ensure the resources associated with the instance are properly cleaned-up and prevent potential memory leaks. This is
+ typical for client-side scenarios where application layer code processes only the response headers and ignores the
+ response entity.
+
+
+ Any attempts to manipulate (read, get, buffer) a message entity on a closed response will result in an
+ IllegalStateException being thrown.
+
Get the links attached to the message as headers. Any links in the message that are relative must be resolved with
+ respect to the actual request URI that produced this response. Note that request URIs may be updated by filters, so
+ the actual request URI may differ from that in the original invocation.
+
+
Returns:
+
links, may return empty Set if no links are present. Does not return null.
Get the link for the relation. A relative link is resolved with respect to the actual request URI that produced this
+ response. Note that request URIs may be updated by filters, so the actual request URI may differ from that in the
+ original invocation.
+
+
Parameters:
+
relation - link relation.
+
Returns:
+
the link for the relation, otherwise null if not present.
See getHeaders().
+
+ This method is considered deprecated. Users are encouraged to switch their code to use the getHeaders()
+ method instead. The method may be annotated as @Deprecated in a future release of JAX-RS API.
Get view of the response headers and their object values.
+
+ The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the
+ underlying header data are reflected in this view.
+
Get view of the response headers and their string values.
+
+ The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the
+ underlying header data are reflected in this view.
+
+
Returns:
+
response headers as a string view of header values.
the message header value. If the message header is not present then null is returned. If the message
+ header is present but has no value then the empty string is returned. If the message header is present more than once
+ then the values of joined together and separated by a ',' character.
Create a new ResponseBuilder by performing a shallow copy of an existing Response.
+
+ The returned builder has its own response headers but the header values are shared with the
+ original Response instance. The original response entity instance reference is set in the new response
+ builder.
+
+
+ Note that if the entity is backed by an un-consumed input stream, the reference to the stream is copied. In such case
+ make sure to buffer the entity stream of the original response instance before passing it to
+ this method.
+
+
+
Parameters:
+
response - a Response from which the status code, entity and response headers will be
+ copied.
Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with GenericEntity if preservation of its generic type is required.
Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with GenericEntity if preservation of its generic type is required.
Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with GenericEntity if preservation of its generic type is required.
Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual
+ entity with GenericEntity if preservation of its generic type is required.
Create a new ResponseBuilder for a created resource, set the location header using the supplied value.
+
+
Parameters:
+
location - the URI of the new resource. If a relative URI is supplied it will be converted into an absolute URI
+ by resolving it relative to the base URI (see UriInfo.getRequestUri()).
Create a new ResponseBuilder with an ACCEPTED status that contains a representation. It is the callers responsibility
+ to wrap the actual entity with GenericEntity if preservation of its generic type is required.
Create a new ResponseBuilder for a redirection. Used in the redirect-after-POST (aka POST/redirect/GET) pattern.
+
+
Parameters:
+
location - the redirection URI. If a relative URI is supplied it will be converted into an absolute URI by
+ resolving it relative to the base URI of the application (see UriInfo.getBaseUri()).
Create a new ResponseBuilder for a temporary redirection.
+
+
Parameters:
+
location - the redirection URI. If a relative URI is supplied it will be converted into an absolute URI by
+ resolving it relative to the base URI of the application (see UriInfo.getBaseUri()).
Returns a java.security.Principal object containing the name of the current authenticated user. If the
+ user has not been authenticated, the method returns null.
+
+
Returns:
+
a java.security.Principal containing the name of the user making this request; null if the user
+ has not been authenticated
Returns a boolean indicating whether the authenticated user is included in the specified logical "role". If the user
+ has not been authenticated, the method returns false.
+
+
Parameters:
+
role - a String specifying the name of the role
+
Returns:
+
a boolean indicating whether the user making the request belongs to a given role;
+ false if the user has not been authenticated
Returns the string value of the authentication scheme used to protect the resource. If the resource is not
+ authenticated, null is returned.
+
+ Values are the same as the CGI variable AUTH_TYPE
+
+
Returns:
+
one of the static members BASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH (suitable for == comparison)
+ or the container-specific string indicating the authentication scheme, or null if the request was not authenticated.
A type that may be used as a resource method return value or as the entity in a Response when the application
+ wishes to stream the output. This is a lightweight alternative to a MessageBodyWriter.
WebApplicationException - if a specific HTTP error response needs to be produced. Only effective if
+ thrown prior to any bytes being written to output.
URI template-aware utility class for building URIs from their components. See Path.value() for an
+ explanation of URI templates.
+
+
+ Builder methods perform contextual encoding of characters not permitted in the corresponding URI component following
+ the rules of the
+ application/x-www-form-urlencoded media type
+ for query parameters and RFC 3986 for all other components. Note that
+ only characters not permitted in a particular component are subject to encoding so, e.g., a path supplied to one of
+ the path methods may contain matrix parameters or multiple path segments since the separators are legal
+ characters and will not be encoded. Percent encoded values are also recognized where allowed and will not be double
+ encoded.
+
+
+
+ URI templates are allowed in most components of a URI but their value is restricted to a particular component. E.g.
+
UriBuilder.fromPath("{arg1}").build("foo#bar");
would result in encoding of the
+ '#' such that the resulting URI is "foo%23bar". To create a URI "foo#bar" use
+
instead.
+ URI template names and delimiters are never encoded but their values are encoded when a URI is built. Template
+ parameter regular expressions are ignored when building a URI, i.e. no validation is performed.
Parses the uriTemplate string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.
Create a new instance representing a relative URI initialized from a Path-annotated method.
+
+ This method can only be used in cases where there is a single method with the specified name that is annotated with
+ Path.
+
+
Parameters:
+
resource - the resource containing the method.
+
method - the name of the method whose Path value will be used to obtain the path to append.
+
Returns:
+
the updated UriBuilder.
+
Throws:
+
IllegalArgumentException - if resource or method is null, or there is more than or less than one
+ variant of the method annotated with Path.
Create a copy of the UriBuilder preserving its state. This is a more efficient means of creating a copy than
+ constructing a new UriBuilder from a URI returned by the build(Object...) method.
Parses the uriTemplate string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.
+
+
Parameters:
+
uriTemplate - a URI template that will be used to initialize the UriBuilder, may contain URI parameters.
scheme - the URI scheme, may contain URI template parameters. A null value will unset the URI scheme,
+ but will not unset the any scheme-specific-part components.
host - the URI host, may contain URI template parameters. A null value will unset the host component of
+ the URI, but will not unset other authority component parts (user info or port).
Set the URI path. This method will overwrite any existing path and associated matrix parameters. Existing '/'
+ characters are preserved thus a single value can represent multiple URI path segments.
+
+
Parameters:
+
path - the path, may contain URI template parameters. A null value will unset the path component of the
+ URI.
Append path to the existing path. When constructing the final path, a '/' separator will be inserted between the
+ existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can
+ represent multiple URI path segments.
+
+
Parameters:
+
path - the path, may contain URI template parameters.
Append the path from a Path-annotated class to the existing path. When constructing the final path, a '/' separator
+ will be inserted between the existing path and the supplied path if necessary.
+
+
Parameters:
+
resource - a resource whose Path value will be used to obtain the path to append.
Append the path from a Path-annotated method to the existing path. When constructing the final path, a '/' separator
+ will be inserted between the existing path and the supplied path if necessary. This method is a convenience shortcut
+ to path(Method), it can only be used in cases where there is a single method with the specified name that is
+ annotated with Path.
+
+
Parameters:
+
resource - the resource containing the method.
+
method - the name of the method whose Path value will be used to obtain the path to append.
+
Returns:
+
the updated UriBuilder.
+
Throws:
+
IllegalArgumentException - if resource or method is null, or there is more than or less than one
+ variant of the method annotated with Path.
Append the path from a Path-annotated method to the existing path. When constructing the final
+ path, a '/' separator will be inserted between the existing path and the supplied path if necessary.
+
+
Parameters:
+
method - a method whose Path value will be used to obtain the path to append to the existing
+ path.
Append path segments to the existing path. When constructing the final path, a '/' separator will be inserted between
+ the existing path and the first path segment if necessary and each supplied segment will also be separated by '/'.
+ Existing '/' characters are encoded thus a single value can only represent a single URI path segment.
+
+
Parameters:
+
segments - the path segment values, each may contain URI template parameters.
Set the matrix parameters of the current final segment of the current URI path. This method will overwrite any
+ existing matrix parameters on the current final segment of the current URI path. Note that the matrix parameters are
+ tied to a particular path segment; subsequent addition of path segments will not affect their position in the URI
+ path.
+
+
Parameters:
+
matrix - the matrix parameters, may contain URI template parameters. A null value will remove all matrix
+ parameters of the current final segment of the current URI path.
Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path. If
+ multiple values are supplied the parameter will be added once per value. Note that the matrix parameters are tied to
+ a particular path segment; subsequent addition of path segments will not affect their position in the URI path.
+
+
Parameters:
+
name - the matrix parameter name, may contain URI template parameters.
+
values - the matrix parameter value(s), each object will be converted. to a String using its
+ toString() method. Stringified values may contain URI template parameters.
Replace the existing value(s) of a matrix parameter on the current final segment of the URI path. If multiple values
+ are supplied the parameter will be added once per value. Note that the matrix parameters are tied to a particular
+ path segment; subsequent addition of path segments will not affect their position in the URI path.
+
+
Parameters:
+
name - the matrix parameter name, may contain URI template parameters.
+
values - the matrix parameter value(s), each object will be converted. to a String using its
+ toString() method. Stringified values may contain URI template parameters. If values is empty or
+ null then all current values of the parameter are removed.
Append a query parameter to the existing set of query parameters. If multiple values are supplied the parameter will
+ be added once per value.
+
+
Parameters:
+
name - the query parameter name, may contain URI template parameters.
+
values - the query parameter value(s), each object will be converted to a String using its
+ toString() method. Stringified values may contain URI template parameters.
Replace the existing value(s) of a query parameter. If multiple values are supplied the parameter will be added once
+ per value.
+
+
Parameters:
+
name - the query parameter name, may contain URI template parameters.
+
values - the query parameter value(s), each object will be converted to a String using its
+ toString() method. Stringified values may contain URI template parameters. If values is empty or
+ null then all current values of the parameter are removed.
Resolve a URI template with a given name in this UriBuilder instance using a supplied value.
+
+ In case a null template name or value is entered a IllegalArgumentException is thrown.
public abstractUriBuilderresolveTemplate(String name,
+ Object value,
+ boolean encodeSlashInPath)
+
Resolve a URI template with a given name in this UriBuilder instance using a supplied value.
+
+ In case a null template name or value is entered a IllegalArgumentException is thrown.
+
+
Parameters:
+
name - name of the URI template.
+
value - value to be used to resolve the template.
+
encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
Resolve a URI template with a given name in this UriBuilder instance using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value. Value is converted to String using
+ its toString() method and is then encoded to match the rules of the URI component to which they pertain. All
+ % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a null template name or encoded value is entered a IllegalArgumentException is thrown.
+
+
Parameters:
+
name - name of the URI template.
+
value - encoded value to be used to resolve the template.
Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.
+
+
Parameters:
+
templateValues - a map of URI template names and their values.
+
Returns:
+
the updated UriBuilder.
+
Throws:
+
IllegalArgumentException - if the name-value map or any of the names or values in the map is null.
Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.
+
+
Parameters:
+
templateValues - a map of URI template names and their values.
+
encodeSlashInPath - if true, the slash ('/') characters in template values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
+
Returns:
+
the updated UriBuilder.
+
Throws:
+
IllegalArgumentException - if the name-value map or any of the names or values in the map is null.
Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs.
+
+ All templates with their name matching one of the keys in the supplied map will be replaced by the value in the
+ supplied map. Values are converted to String using their toString() method and are then encoded to
+ match the rules of the URI component to which they pertain. All % characters in the stringified values that are not
+ followed by two hexadecimal numbers will be encoded.
+
+ A call to the method with an empty parameter map is ignored.
+
+
Parameters:
+
templateValues - a map of URI template names and their values.
+
Returns:
+
the updated UriBuilder.
+
Throws:
+
IllegalArgumentException - if the name-value map or any of the names or values in the map is null.
+
Since:
+
2.0
+
+
+
+
+
+
buildFromMap
+
public abstractURIbuildFromMap(Map<String,?> values)
+
Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String
+ using their toString() method and are then encoded to match the rules of the URI component to which they
+ pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+
+ NOTE: By default all '/' characters in the stringified values will be encoded in path templates, i.e. the
+ result is identical to invoking buildFromMap(valueMap, true). To
+ override this behavior use buildFromMap(valueMap, false) instead.
+
+
+
Parameters:
+
values - a map of URI template parameter names and values.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String
+ using their toString() method and are then encoded to match the rules of the URI component to which they
+ pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+
+ The encodeSlashInPath parameter may be used to override the default encoding of '/' characters in the
+ stringified template values in cases when the template is part of the URI path component when using the
+ buildFromMap(java.util.Map) method. If the encodeSlashInPath parameter is set to true
+ (default), the slash ('/') characters in parameter values will be encoded if the template is placed in the
+ URI path component. If set to false the default encoding behavior is overridden an slash characters in
+ template values will not be encoded when used to substitute path templates.
+
+
+
Parameters:
+
values - a map of URI template parameter names and values.
+
encodeSlashInPath - if true, the slash ('/') characters in parameter values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Build a URI.
+
+ Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String
+ using their toString() method and are then encoded to match the rules of the URI component to which they
+ pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded.
+ The state of the builder is unaffected; this method may be called multiple times on the same builder instance.
+
+
Parameters:
+
values - a map of URI template parameter names and values.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a template
+ parameter value is null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to
+ String using their toString() method and are then encoded to match the rules of the URI component to
+ which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", not "x/y/z".
+
+
+ NOTE: By default all '/' characters in the stringified values will be encoded in path templates, i.e. the
+ result is identical to invoking build(Object[], boolean) build(values, true)}. To override this behavior use
+ build(values, false) instead.
+
+
+
Parameters:
+
values - a list of URI template parameter values.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a value is
+ null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to
+ String using their toString() method and are then encoded to match the rules of the URI component to
+ which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is
+ unaffected; this method may be called multiple times on the same builder instance.
+
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", not "x/y/z".
+
+
+ The encodeSlashInPath parameter may be used to override the default encoding of '/' characters in the
+ stringified template values in cases when the template is part of the URI path component when using the
+ build(Object[]) method. If the encodeSlashInPath parameter is set to true (default), the
+ slash ('/') characters in parameter values will be encoded if the template is placed in the URI path
+ component. If set to false the default encoding behavior is overridden an slash characters in template values
+ will not be encoded when used to substitute path templates.
+
+
+
Parameters:
+
values - a list of URI template parameter values.
+
encodeSlashInPath - if true, the slash ('/') characters in parameter values will be encoded if
+ the template is placed in the URI path component, otherwise the slash characters will not be encoded in path
+ templates.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a value is
+ null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Build a URI. Any URI templates parameters will be replaced with the supplied values in order. Values are converted to
+ String using their toString() method and are then encoded to match the rules of the URI component to
+ which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will
+ be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder
+ instance.
+
+ All instances of the same template parameter will be replaced by the same value that corresponds to the position of
+ the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result
+ in the the URI "x/y/x", not "x/y/z".
+
+
Parameters:
+
values - a list of URI template parameter values.
+
Returns:
+
the URI built from the UriBuilder.
+
Throws:
+
IllegalArgumentException - if there are any URI template parameters without a supplied value, or if a value is
+ null.
+
UriBuilderException - if a URI cannot be constructed based on the current state of the builder.
Constructs a new exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause).
Constructs an instance of UriBuilderException with the specified detail message and cause.
+
+ Note that the detail message associated with cause is not automatically incorporated in this exception's detail
+ message.
+
+
Parameters:
+
msg - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).
+
cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value is
+ permitted, and indicates that the cause is nonexistent or unknown.)
Constructs a new exception with the specified cause and a detail message of
+ (cause==null ? null : cause.toString()) (which typically contains the class and detail message of
+ cause). This constructor is useful for exceptions that are little more than wrappers for other throwables.
An injectable interface that provides access to application and request URI information. Relative URIs are relative
+ to the base URI of the application, see getBaseUri().
+
+
+ All methods throw java.lang.IllegalStateException if called outside the scope of a request (e.g. from a
+ provider constructor).
+
Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful
+ when the path needs to be parsed, particularly when matrix parameters may be present in the path. All sequences of
+ escaped octets in path segments and matrix parameter values are decoded, equivalent to getPathSegments(true).
+
+
Returns:
+
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also
+ unmodifiable.
Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful
+ when the path needs to be parsed, particularly when matrix parameters may be present in the path.
+
+
Parameters:
+
decode - controls whether sequences of escaped octets in path segments and matrix parameter values are decoded
+ (true) or not (false).
+
Returns:
+
an unmodifiable list of PathSegment. The matrix parameter map of each path segment is also
+ unmodifiable.
Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query
+ parameters. This is a shortcut for uriInfo.getBaseUri().resolve(uriInfo.getPath(false)).
Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host,
+ port etc) but excludes query parameters.
+
+
Returns:
+
a UriBuilder initialized with the absolute path of the request.
Get the URI query parameters of the current request. The map keys are the names of the query parameters with any
+ escaped characters decoded. All sequences of escaped octets in parameter names and values are decoded, equivalent to
+ getQueryParameters(true).
+
+
Returns:
+
an unmodifiable map of query parameter names and values.
Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All
+ sequences of escaped octets are decoded, equivalent to getMatchedURIs(true). Entries do not include query
+ parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI
+ matching order, with the current resource URI first. E.g. given the following resource classes:
+
+
+ @Path("foo")
+ public class FooResource {
+ @GET
+ public String getFoo() {...}
+
+ @Path("bar")
+ public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+ @GET
+ public String getBar() {...}
+ }
+
+
+
+ The values returned by this method based on request uri and where the method is called from are:
+
+
+
+
Matched URIs from requests
+
+
Request
+
Called from
+
Value(s)
+
+
+
GET /foo
+
FooResource.getFoo
+
foo
+
+
+
GET /foo/bar
+
FooResource.getBarResource
+
foo/bar, foo
+
+
+
GET /foo/bar
+
BarResource.getBar
+
foo/bar, foo
+
+
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.
+
+
Returns:
+
a read-only list of URI paths for matched resources.
+ Get a URI template that includes all Paths (including ApplicationPath)
+ matched by the current request's URI.
+
+
+ Each Path value used to match a resource class, a sub-resource method or a sub-resource locator is concatenated
+ into a single String value. The template does not include query parameters but does include matrix parameters
+ if present in the request URI. The concatenation is ordered in the request URI matching order, with the
+ ApplicationPath value first and current resource URI last. E.g. given the following resource classes:
+
+
+
+ @Path("foo")
+ public class FooResource {
+ @GET
+ @Path("{foo:[f-z][a-z]*}")
+ public String getFoo() {...}
+
+ @Path("{bar:[b-e][a-z]*}")
+ public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+ @GET
+ @Path("{id}{id:[0-9]}")
+ public String getBar() {...}
+ }
+
+
+
+ The values returned by this method based on request uri and where the method is called from are:
+
+
+
+
Matched URIs from requests
+
+
Request
+
Called from
+
Value(s)
+
+
+
GET /foo
+
FooResource.getFoo
+
/foo/{foo:[f-z][a-z]*}
+
+
+
GET /foo/bar
+
FooResource.getBarResource
+
/foo/{bar:[b-e][a-z]*}
+
+
+
GET /foo/bar/id0
+
BarResource.getBar
+
/foo/{bar:[b-e][a-z]*}/{id}{id:[0-9]}
+
+
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty string.
Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. Entries
+ do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered
+ in reverse request URI matching order, with the current resource URI first. See getMatchedURIs() for an
+ example.
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.
+
+
Parameters:
+
decode - controls whether sequences of escaped octets are decoded (true) or not (false).
+
Returns:
+
a read-only list of URI paths for matched resources.
Get a read-only list of the currently matched resource class instances.
+
+ Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or
+ a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current
+ resource first. E.g. given the following resource classes:
+
+
+ @Path("foo")
+ public class FooResource {
+ @GET
+ public String getFoo() {...}
+
+ @Path("bar")
+ public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+ @GET
+ public String getBar() {...}
+ }
+
+
+
+ The values returned by this method based on request uri and where the method is called from are:
+
+
+
+
Matched resources from requests
+
+
Request
+
Called from
+
Value(s)
+
+
+
GET /foo
+
FooResource.getFoo
+
FooResource
+
+
+
GET /foo/bar
+
FooResource.getBarResource
+
FooResource
+
+
+
GET /foo/bar
+
BarResource.getBar
+
BarResource, FooResource
+
+
+
+ In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an
+ empty list.
+
+
Returns:
+
a read-only list of matched resource class instances.
Resolve a relative URI with respect to the base URI of the application. The resolved URI returned by this method is
+ normalized. If the supplied URI is already resolved, it is just returned.
+
+
Parameters:
+
uri - URI to resolve against the base URI of the application.
+
Returns:
+
newly resolved URI or supplied URI if already resolved.
Relativize a URI with respect to the current request URI. Relativization works as follows:
+
+
If the URI to relativize is already relative, it is first resolved using resolve(java.net.URI).
+
The resulting URI is relativized with respect to the current request URI. If the two URIs do not share a prefix,
+ the URI computed in step 1 is returned.
+
+
+
+ Examples (for base URI http://example.com:8080/app/root/):
+
+ Request URI:http://example.com:8080/app/root/a/b/c/resource.html
+ Supplied URI:a/b/c/d/file.txt
+ Returned URI:d/file.txt
+
+ Request URI:http://example.com:8080/app/root/a/b/c/resource.html
+ Supplied URI:http://example2.com:9090/app2/root2/a/d/file.txt
+ Returned URI:http://example2.com:9090/app2/root2/a/d/file.txt
+
+
+
+ In the second example, the supplied URI is returned given that it is absolute and there is no common prefix between
+ it and the request URI.
+
Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.
Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.
Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder. After this
+ method is called the builder is reset to an empty state.
Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.
+
+ If more than one value is supplied for one or more of the variant properties then a variant will be generated for
+ each possible combination. E.g. in the following list would have five (4 + 1) members:
+
+ Note that it is not necessary to call the add() method immediately before the build method is called. E.g.
+ the resulting list produced in the example above would be identical to the list produced by the following code:
+
mediaType - the media type of the variant - may be null.
+
language - the language of the variant (two-letter ISO-639 code); may be null.
+
country - uppercase two-letter ISO-3166 language code of the variant; may be null provided
+ language is null too.
+
languageVariant - vendor and browser specific language code of the variant (see also Locale class
+ description); may be null provided language and country are null too.
+
encoding - the content encoding of the variant - may be null.
A callback method called by the JAX-RS runtime during the application deployment to register provider instances or
+ classes in a runtime configuration scope of a particular
+ resource or sub-resource method; i.e.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Read the message entity input stream as an instance of specified Java type using a
+ MessageBodyReader that supports mapping the message entity stream onto the requested type.
Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and
+ the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP
+ status code and the associated HTTP status reason phrase.
Construct a new instance using the supplied response and a default message generated from the response's HTTP status
+ code and the associated HTTP status reason phrase.
Construct a new instance with the supplied root cause, response and a default message generated from the response's
+ HTTP status code and the associated HTTP status reason phrase.
Constructs a new JAX-RS runtime response processing exception for a specific response with the
+ specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the
+ class and detail message of cause).
Parses the uriTemplate string and copies the parsed components of the supplied URI to the UriBuilder
+ replacing any existing values for those components.
Add the current combination of metadata to the list of supported variants, after this method is called the current
+ combination of metadata is emptied.
Add the current combination of metadata to the list of supported variants (provided the current combination of
+ metadata is not empty) and build a list of representation variants from the current state of the builder.
An I/O exception thrown by MessageBodyReader implementations when reading a zero-length
+ message content to indicate that the message body reader is not able to produce an instance representing an
+ zero-length message content.
Contract for a provider that supplies context information to resource classes and other providers.
+
+ A ContextResolver implementation may be annotated with Produces to restrict the media
+ types for which it will be considered suitable.
+
+ Providers implementing ContextResolver contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+
public interface ExceptionMapper<E extends Throwable>
+
Contract for a provider that maps Java exceptions to Response.
+
+ Providers implementing ExceptionMapper contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
Returns the property with the given name registered in the current request/response exchange context, or null
+ if there is no property by that name.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+ In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all
+ the attributes available in the ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
Returns:
+
an Object containing the value of the property, or null if no property exists matching the
+ given name.
Returns true if the property with the given name is registered in the current request/response exchange
+ context, or false if there is no property by that name.
+
+ In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes
+ available in the ServletRequest. Any modifications of the properties are also reflected in the set of
+ properties of the associated ServletRequest.
+
Binds an object to a given property name in the current request/response exchange context. If the name specified is
+ already used for a property, this method will replace the value of the property with the new value.
+
+ A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by
+ this interface.
+
+
+ A list of supported properties can be retrieved using getPropertyNames(). Custom property names should
+ follow the same convention as package names.
+
+
+ If a null value is passed, the effect is the same as calling the removeProperty(String) method.
+
+
+ In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all
+ the attributes available in the ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property.
+
object - an Object representing the property to be bound.
Removes a property with the given name from the current request/response exchange context. After removal, subsequent
+ calls to getProperty(java.lang.String) to retrieve the property value will return null.
+
+ In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all
+ the attributes available in the ServletRequest.
+
+
+
Parameters:
+
name - a String specifying the name of the property to be removed.
Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider
+ invocation.
+
+ E.g. if the message body is to be converted into a method parameter, this will be the annotations on that parameter
+ returned by Method.getParameterAnnotations(); if the
+ server-side response entity instance is to be converted into an output stream, this will be the annotations on the
+ matched resource method returned by Method.getAnnotations().
+
+ This method may return an empty array in case the interceptor is not invoked in a context of any particular resource
+ method (e.g. as part of the client API), but will never return null.
+
+
Returns:
+
annotations declared on the artifact that initiated the intercepted entity provider invocation.
Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider
+ invocation.
+
+ Calling this method has no effect in the client API.
+
+
Parameters:
+
annotations - updated annotations declarataion of the artifact that initiated the intercepted entity provider
+ invocation. Must not be null.
Contract for a provider that supports the conversion of a stream to a Java type.
+
+ A MessageBodyReader implementation may be annotated with Consumes to restrict the media
+ types for which it will be considered suitable. The MessageBodyReader pipeline is executed if the matching
+ resource method declares an entity parameter or uses at least one FormParam.
+
+ Providers implementing MessageBodyReader contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+
Ascertain if the MessageBodyReader can produce an instance of a particular type. The type parameter gives the
+ class of the instance that should be produced, the genericType parameter gives the
+ java.lang.reflect.Type of the instance that should be produced. E.g. if the instance
+ to be produced is List<String>, the type parameter will be java.util.List and the
+ genericType parameter will be java.lang.reflect.ParameterizedType.
+
+
Parameters:
+
type - the class of instance to be produced.
+
genericType - the type of instance to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ Method.getGenericParameterTypes.
+
annotations - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by Method.getParameterAnnotations.
+
mediaType - the media type of the HTTP entity, if one is not specified in the request then
+ application/octet-stream is used.
+ In case the entity input stream is empty, the reader is expected to either return a Java representation of a
+ zero-length entity or throw a NoContentException in case no zero-length entity
+ representation is defined for the supported Java type. A NoContentException, if thrown by a message body
+ reader while reading a server request entity, is automatically translated by JAX-RS server runtime into a
+ BadRequestException wrapping the original NoContentException and rethrown for a standard
+ processing by the registered exception mappers.
+
+
+
Parameters:
+
type - the type that is to be read from the entity stream.
+
genericType - the type of instance to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ Method.getGenericParameterTypes.
+
annotations - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by Method.getParameterAnnotations.
+
mediaType - the media type of the HTTP entity.
+
httpHeaders - the read-only HTTP headers associated with HTTP entity.
+
entityStream - the InputStream of the HTTP entity. The caller is responsible for ensuring that the input
+ stream ends when the entity has been consumed. The implementation should not close the input stream.
+
Returns:
+
the type that was read from the stream. In case the entity input stream is empty, the reader is expected to
+ either return an instance representing a zero-length entity or throw a NoContentException in
+ case no zero-length entity representation is defined for the supported Java type.
+
Throws:
+
IOException - if an IO error arises. In case the entity input stream is empty and the reader is not
+ able to produce a Java representation for a zero-length entity, NoContentException is expected to be thrown.
+
WebApplicationException - if a specific HTTP error response needs to be produced. Only effective if
+ thrown prior to the response being committed.
Contract for a provider that supports the conversion of a Java type to a stream.
+
+ A MessageBodyWriter implementation may be annotated with Produces to restrict the media
+ types for which it will be considered suitable. The MessageBodyWriter pipeline is only invoked if there is
+ a non-null response entity.
+
+ Providers implementing MessageBodyWriter contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+
Ascertain if the MessageBodyWriter supports a particular type.
+
+
Parameters:
+
type - the class of instance that is to be written.
+
genericType - the type of instance to be written, obtained either by reflection of a resource method return type
+ or via inspection of the returned instance. GenericEntity provides a way to specify this
+ information at runtime.
+
annotations - an array of the annotations attached to the message entity instance.
Originally, the method has been called before writeTo to ascertain the length in bytes of the serialized form
+ of t. A non-negative return value has been used in a HTTP Content-Length header.
+
+ As of JAX-RS 2.0, the method has been deprecated and the value returned by the method is ignored by a JAX-RS runtime.
+ All MessageBodyWriter implementations are advised to return -1 from the method. Responsibility to
+ compute the actual Content-Length header value has been delegated to JAX-RS runtime.
+
+
+
Parameters:
+
t - the instance to write
+
type - the class of instance that is to be written.
+
genericType - the type of instance to be written. GenericEntity provides a way to
+ specify this information at runtime.
+
annotations - an array of the annotations attached to the message entity instance.
+
mediaType - the media type of the HTTP entity.
+
Returns:
+
length in bytes or -1 if the length cannot be determined in advance.
Write a type to an HTTP message. The message header map is mutable but any changes must be made before writing to the
+ output stream since the headers will be flushed prior to writing the message body.
+
+
Parameters:
+
t - the instance to write.
+
type - the class of instance that is to be written.
+
genericType - the type of instance to be written. GenericEntity provides a way to
+ specify this information at runtime.
+
annotations - an array of the annotations attached to the message entity instance.
+
mediaType - the media type of the HTTP entity.
+
httpHeaders - a mutable map of the HTTP message headers.
+
entityStream - the OutputStream for the HTTP entity. The implementation must not close the output
+ stream.
Mandates that a conversion of any default value delegated to a parameter
+ converter annotated with @Lazy annotation SHOULD occur only once the value is actually required (e.g. to be
+ injected for the first time).
T - the supported Java type convertible to/from a String format.
+
+
+
public interface ParamConverter<T>
+
Defines a contract for a delegate responsible for converting between a String form of a message parameter
+ value and the corresponding custom Java type T.
+
+ Conversion of message parameter values injected via @PathParam,
+ @QueryParam, @MatrixParam,
+ @FormParam, @CookieParam and
+ @HeaderParam is supported.
+ JAX-RS implementations MUST support the ParamConverter mechanism for all Java types. If a
+ ParamConverter is available for a type, it MUST be preferred over all other conversion strategies mentioned
+ in section 3.2 (i.e. single String argument constructor, static valueOf or fromString
+ methods, etc.).
+
+ By default, when used for injection of parameter values, a selected ParamConverter instance MUST be used
+ eagerly by a JAX-RS runtime to convert any default value in the resource or provider model, that
+ is during the application deployment, before any value – default or otherwise – is actually required.
+ This conversion strategy ensures that any errors in the default values are reported as early as possible. This
+ default behavior may be overridden by annotating the ParamConverter implementation class with a @Lazy annotation. In such case any default value conversion delegated to the @Lazy-annotated converter
+ will be deferred to a latest possible moment (i.e. until the injection of such default value is required).
+
+
+ NOTE: A service implementing this contract is not recognized as a registrable JAX-RS extension provider. Instead, a
+ ParamConverterProvider instance responsible for providing ParamConverter instances has to be
+ registered as one of the JAX-RS extension providers.
+
Mandates that a conversion of any default value delegated to a parameter
+ converter annotated with @Lazy annotation SHOULD occur only once the value is actually required (e.g.
+ This method is reserved for future use. Proprietary JAX-RS extensions may leverage the method. Users should be aware
+ that any such support for the method comes at the expense of producing non-portable code.
+
+ Providers implementing ParamConverterProvider contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase.
+
Obtain a ParamConverter that can provide from/to string conversion for an instance of a particular Java type.
+
+
Type Parameters:
+
T - the supported Java type convertible to/from a String format.
+
Parameters:
+
rawType - the raw type of the object to be converted.
+
genericType - the type of object to be converted. E.g. if an String value representing the injected request
+ parameter is to be converted into a method parameter, this will be the formal type of the method parameter as
+ returned by Class.getGenericParameterTypes.
+
annotations - an array of the annotations associated with the convertible parameter instance. E.g. if a string
+ value is to be converted into a method parameter, this would be the annotations on that parameter as returned by
+ Method.getParameterAnnotations().
Get a message body reader that matches a set of criteria. The set of readers is first filtered by comparing the
+ supplied value of mediaType with the value of each reader's Consumes, ensuring the
+ supplied value of type is assignable to the generic type of the reader, and eliminating those that do not
+ match. The list of matching readers is then ordered with those with the best matching values of
+ Consumes (x/y > x/* > */*) sorted first. Finally, the
+ MessageBodyReader.isReadable(Class, Type, Annotation[], MediaType) method is called on each reader in order
+ using the supplied criteria and the first reader that returns true is selected and returned.
+
+
Type Parameters:
+
T - type of the the object that is to be read.
+
Parameters:
+
type - the class of the object that is to be read.
+
genericType - the type of object to be produced. E.g. if the message body is to be converted into a method
+ parameter, this will be the formal type of the method parameter as returned by
+ Class.getGenericParameterTypes.
+
annotations - an array of the annotations on the declaration of the artifact that will be initialized with the
+ produced instance. E.g. if the message body is to be converted into a method parameter, this will be the annotations
+ on that parameter returned by Class.getParameterAnnotations.
+
mediaType - the media type of the data that will be read.
+
Returns:
+
a MessageBodyReader that matches the supplied criteria or null if none is found.
Get a message body writer that matches a set of criteria. The set of writers is first filtered by comparing the
+ supplied value of mediaType with the value of each writer's Produces, ensuring the
+ supplied value of type is assignable to the generic type of the reader, and eliminating those that do not
+ match. The list of matching writers is then ordered with those with the best matching values of
+ Produces (x/y > x/* > */*) sorted first. Finally, the
+ MessageBodyWriter.isWriteable(Class, Type, Annotation[], MediaType) method is called on each writer in order
+ using the supplied criteria and the first writer that returns true is selected and returned.
+
+
Type Parameters:
+
T - type of the object that is to be written.
+
Parameters:
+
type - the class of the object that is to be written.
+
genericType - the type of object to be written. E.g. if the message body is to be produced from a field, this
+ will be the declared type of the field as returned by Field.getGenericType.
+
annotations - an array of the annotations on the declaration of the artifact that will be written. E.g. if the
+ message body is to be produced from a field, this will be the annotations on that field returned by
+ Field.getDeclaredAnnotations.
+
mediaType - the media type of the data that will be written.
+
Returns:
+
a MessageBodyReader that matches the supplied criteria or null if none is found.
Get a context resolver for a particular type of context and media type. The set of resolvers is first filtered by
+ comparing the supplied value of mediaType with the value of each resolver's Produces,
+ ensuring the generic type of the context resolver is assignable to the supplied value of contextType, and
+ eliminating those that do not match. If only one resolver matches the criteria then it is returned. If more than one
+ resolver matches then the list of matching resolvers is ordered with those with the best matching values of
+ Produces (x/y > x/* > */*) sorted first. A proxy is returned that delegates calls
+ to ContextResolver.getContext(java.lang.Class) to each matching context resolver in order and returns the
+ first non-null value it obtains or null if all matching context resolvers return null.
+
+
Type Parameters:
+
T - type of the context.
+
Parameters:
+
contextType - the class of context desired.
+
mediaType - the media type of data for which a context is required.
+
Returns:
+
a matching context resolver instance or null if no matching context providers are found.
+ Providers implementing ReaderInterceptor contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase. Message body interceptor instances may also be
+ discovered and bound dynamically to particular resource methods.
+
+
+
Since:
+
2.0
+
Author:
+
Santiago Pericas-Geertsen, Bill Burke, Marek Potociar
Context class used by ReaderInterceptor to intercept calls to (@link
+ jakarta.ws.rs.ext.MessageBodyReader#readFrom}. The getters and setters in this context class correspond to the
+ parameters of the intercepted method.
Set the input stream of the object to be read. For example, by wrapping it with another input stream. The JAX-RS
+ runtime is responsible for closing the input stream that is set.
+ Note that while the headers are mutable, a reader interceptor should typically roll-back
+ any header modifications once the call to context.proceed() returns, to avoid externally visible
+ side-effects of the interceptor invocation.
+
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.
Obtain a RuntimeDelegate instance. If an instance had not already been created and set via
+ setInstance(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.RuntimeDelegate exists, 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 is
+ jakarta.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.RuntimeDelegate is defined, then its value is used as
+ the name of the implementation class.
+
Finally, a default implementation class name is used.
Set the runtime delegate that will be used by JAX-RS classes. If this method is not called prior to
+ getInstance() then an implementation will be sought as described in getInstance().
+
+
Parameters:
+
rd - the runtime delegate instance
+
Throws:
+
SecurityException - if there is a security manager and the permission ReflectPermission("suppressAccessChecks")
+ has not been granted.
+ Providers implementing WriterInterceptor contract must be either programmatically registered in a JAX-RS
+ runtime or must be annotated with @Provider annotation to be automatically
+ discovered by the JAX-RS runtime during a provider scanning phase. Message body interceptor instances may also be
+ discovered and bound dynamically to particular resource methods.
+
+
+
Since:
+
2.0
+
Author:
+
Santiago Pericas-Geertsen, Bill Burke, Marek Potociar
Set a new output stream for the object to be written. For example, by wrapping it with another output stream. The
+ JAX-RS runtime is responsible for closing the output stream that is set.
+
+
Parameters:
+
os - new output stream for the object to be written.
Defines a contract for a delegate responsible for converting between a String form of a message parameter
+ value and the corresponding custom Java type T.
Mandates that a conversion of any default value delegated to a parameter
+ converter annotated with @Lazy annotation SHOULD occur only once the value is actually required (e.g.
Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.
Defines a contract for a delegate responsible for converting between a String form of a message parameter
+ value and the corresponding custom Java type T.
Implementations of JAX-RS provide a concrete subclass of RuntimeDelegate and various JAX-RS API methods defer to
+ methods of RuntimeDelegate for their functionality.
The annotation that may be used to inject custom JAX-RS "parameter aggregator" value object into a resource class
+ field, property or resource method parameter.
A runtime exception indicating request authorization failure caused by one of the following scenarios:
+
+ a client did not send the required authorization credentials to access the requested resource, i.e.
Binds the value of a URI template parameter or a path segment containing the template parameter to a resource method
+ parameter, resource class field, or resource class bean property.
A collection of built-in priority constants for the JAX-RS components that are supposed to be ordered based on their
+ jakarta.annotation.Priority class-level annotation value when used or applied by JAX-RS runtime.
Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.
Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.
+
+ Will be send as a value of the SSE "retry" field. This field is optional.
+
+ The comment will be serialized with the event, before event data are serialized. If the event does not contain any
+ data, a separate "event" that contains only the comment will be sent. This information is optional, provided the
+ event data are set.
+
+ Note that multiple invocations of this method result in a previous comment being replaced with a new one. To achieve
+ multi-line comments, a multi-line comment string has to be used.
+ This is a convenience method that derives the event data type information from the runtime type of the event data.
+ The supplied event data may be represented as GenericEntity.
+
+ Note that multiple invocations of this method result in previous even data being replaced with new one.
+ The event data, if specified, are serialized and sent as one or more SSE event "data" fields (depending on
+ the line breaks in the actual serialized data content). The data are serialized using an available
+ MessageBodyWriter that is selected based on the event type,
+ getGenericType() generic type} and getMediaType() media type}.
+
+
Returns:
+
event data. May return null, if the event does not contain any data.
+ Instance of this interface can be injected into a field or as a parameter of a method or a constructor. Also, the
+ instance is thread safe, meaning that it can be shared and its method invoked from different threads without causing
+ inconsistent internal state.
public interface SseBroadcaster
+extends AutoCloseable
+
Server-Sent events broadcasting facility.
+
+ Server broadcaster can be used to manage multiple server sinks. It enables sending events to all
+ registered event outputs and provides facility to effectively handle exceptions and closures of individual registered
+ event outputs.
+
+ Instance of this interface is thread safe, meaning that it can be shared and its method invoked from different
+ threads without causing inconsistent internal state.
Register a listener, which will be called when this SseBroadcaster closes a given event SseEventSink or
+ tries to write to a given SseEventSink that is already closed (either by client closing the connection
+ or by calling SseEventSink.close() on the server side.
Register a listener, which will be called when an exception is thrown by a given SseEventSink
+ when this SseBroadcaster tries to write to it or close it.
Register a listener, which will be called when an exception is thrown by a given SseEventSink
+ when this SseBroadcaster tries to write to it or close it.
+
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The
+ SseBroadcaster implementation is optimized to efficiently handle small amounts of concurrent listener
+ registrations and removals and large amounts of registered listener notifications.
+
+
Parameters:
+
onError - bi-consumer, taking two parameters: SseEventSink, which is the source of the error and the
+ actual Throwable instance.
Register a listener, which will be called when this SseBroadcaster closes a given event SseEventSink or
+ tries to write to a given SseEventSink that is already closed (either by client closing the connection
+ or by calling SseEventSink.close() on the server side.
+
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The
+ SseBroadcaster implementation is optimized to efficiently handle small amounts of concurrent listener
+ registrations and removals and large amounts of registered listener notifications.
+
+
Parameters:
+
onClose - consumer taking single parameter, a SseEventSink, which was closed.
Publish an SSE event to all registered SseEventSink instances.
+
+
Parameters:
+
event - SSE event to be published.
+
Returns:
+
completion stage that completes when the event has been broadcast to all registered event sinks.
+
+
+
+
+
+
close
+
voidclose()
+
Close the broadcaster and all registered SseEventSink instances. Any other resources associated with the
+ SseBroadcaster should be released. This method is equivalent to calling close(true).
+
+ Subsequent calls have no effect and are ignored. Once the SseBroadcaster is closed, invoking any other method
+ on the broadcaster instance would result in an IllegalStateException being thrown.
Close the broadcaster and release any resources associated with it. The closing of registered SseEventSink is
+ controlled by the cascading parameter.
+
+ Subsequent calls have no effect and are ignored. Once the SseBroadcaster is closed, invoking any other method
+ on the broadcaster instance would result in an IllegalStateException being thrown.
+
+
Parameters:
+
cascading - Boolean value that controls closing of registered SseEventSink instances.
+ This interface provides basic properties of the Server Sent Event, namely ID, Name, and Comment. It also provides
+ access to the Reconnect delay property.
+
+ SseEvent is extended by another two interfaces, InboundSseEvent and OutboundSseEvent. The
+ main difference is in how are instances created and how the stored data can be accessed (or provided).
Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.
Get a comment string that accompanies the event.
+
+ Contains value of the comment associated with SSE event. This field is optional. Method may return null, if
+ the event comment is not specified.
+
+
Returns:
+
comment associated with the event.
+
+
+
+
+
+
getReconnectDelay
+
longgetReconnectDelay()
+
Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a
+ connection to the SSE event source is lost.
+
+ Contains value of SSE "retry" field. This field is optional. Method returns RECONNECT_NOT_SET if no
+ value has been set.
+
+
Returns:
+
reconnection delay in milliseconds or RECONNECT_NOT_SET if no value has been set.
+
+
+
+
+
+
isReconnectDelaySet
+
booleanisReconnectDelaySet()
+
Check if the connection retry time has been set in the event.
+
+
Returns:
+
true if new reconnection delay has been set in the event, false otherwise.
+
+ The injected instance is then considered as a return type, so the resource method doesn't return anything, similarly
+ as in server-side async processing.
+
+ The underlying client connection is kept open and the application code is able to send events. A server-side instance
+ implementing the interface corresponds exactly to a single client HTTP connection.
+
+ Please note that the client connection represented by this SseServerSink can be closed by the client side
+ when a client decides to close connection and disconnect from the server.
Send an outbound Server-sent event to this sink.
+
+ Event will be serialized and sent to the client.
+
+
Parameters:
+
event - event to be written.
+
Returns:
+
completion stage that completes when the event has been sent. If there is a problem during sending of an
+ event, completion stage will be completed exceptionally.
Close the SseEventSink instance and release all associated resources.
+
+ Subsequent calls have no effect and are ignored. Once the SseEventSink is closed, invoking any method other
+ than this one and isClosed() would result in an IllegalStateException being thrown.
+ Event source builder provides methods that let you conveniently configure and subsequently build a new
+ SseEventSource instance. You can obtain a new event source builder instance using a static
+ SseEventSource.target(endpoint) factory method.
+
Set the initial reconnect delay to be used by the event source.
+
+ Note that this value may be later overridden by the SSE endpoint using either a retry SSE event field or
+ HTTP 503 + "Retry-After" mechanism as described in the
+ SseEventSource javadoc.
+
+
Parameters:
+
delay - the default time to wait before attempting to recover from a connection loss.
+
unit - time unit of the reconnect delay parameter.
Build new SSE event source pointing at a SSE streaming web target.
+
+ The returned event source is ready, but not connected to the SSE endpoint. It is
+ expected that you will manually invoke its SseEventSource.open() method once you are ready to start receiving SSE events.
+ In case you want to build an event source instance that is already connected to the SSE endpoint, use the event
+ source builder SseEventSource.open() method instead.
+
+ Once the event source is open, the incoming events are processed by the event source in an asynchronous task that
+ runs in an internal single-threaded scheduled executor service.
+
+
Returns:
+
new event source instance, ready to be connected to the SSE endpoint.
+ SSE event source instances of this class are thread safe. To build a new instance, you can use the
+ SseEventSource.target(endpoint) factory method to get a new event
+ source builder that can be further customised and eventually used to create a new SSE event source.
+
+ The SseEventSource supports automated recuperation from a connection loss, including
+ negotiation of delivery of any missed events based on the last received SSE event id field value, provided
+ this field is set by the server and the negotiation facility is supported by the server. In case of a connection loss,
+ the last received SSE event id field value is sent in the
+ "Last-Event-ID" HTTP
+ request header as part of a new connection request sent to the SSE endpoint. Upon a receipt of such reconnect request, the SSE
+ endpoint that supports this negotiation facility is expected to replay all missed events. Note however, that this is a
+ best-effort mechanism which does not provide any guaranty that all events would be delivered without a loss. You should
+ therefore not rely on receiving every single event and design your client application code accordingly.
+
+ By default, when a connection to the SSE endpoint is lost, the event source will wait 500 ms
+ before attempting to reconnect to the SSE endpoint. The SSE endpoint can however control the client-side retry delay
+ by including a special retry field value in any sent event. JAX-RS SseEventSource tracks any
+ received SSE event retry field values set by the endpoint and adjusts the reconnect delay accordingly,
+ using the last received retry field value as the reconnect delay.
+
+ In addition to handling the standard connection loss failures, JAX-RS SseEventSource behaves differently to various
+ HTTP response status codes and headers:
+
+
200 - with "Content-Type" header of "text/event-stream": This is normal
+ operation. onEvent is invoked for each event. onComplete is invoked when there are no more
+ events. onError is invoked only if an unrecoverable error occurs during processing.
+
200 - with unsupported or missing "Content-Type" header: This is an
+ error condition. onError is invoked.
+
204 - This indicates that server has no events to send. Only onComplete is invoked.
+
503 - with "Retry-After" header set to a valid value: This indicates
+ that the server is unavailable, but that the client should reconnect later. No consumers are invoked unless the client
+ event source is closed, prior to reconnecting (resulting in onComplete invocation). After the specified
+ delay, the client should automatically attempt to reconnect which will result in a new response.
+
503 - with invalid or missing "Retry-After" header: This is an error
+ condition. onError is invoked.
+
Any other status code: This is an error condition. onError is invoked.
+
+
+ In the case of an error condition response, the Throwable passed to the onError consumer
+ should be a WebApplicationException containing the invalid Response object.
+
+ Note that if, for any of the registered event consumers, an invocation of Consumer<InboundSseEvent>#accept(InboundSseEvent) method throws an exception, this is not an error condition.
+ Thus onError is not invoked and event processing is not stopped.
+ Users are encouraged to handle exceptions on their own as part of the event processing logic.
Create a new event source builder that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.
+ Event consumer is invoked once per each received event, Throwable consumer is invoked invoked upon a
+ unrecoverable error encountered by a SseEventSource.
+ Event consumer is invoked once per each received event, Throwable consumer is invoked invoked upon a
+ unrecoverable error encountered by a SseEventSource, onComplete callback is invoked after a successful
+ connection and when there are no further events to be received. Note that the onComplete callback will not be
+ invoked if the onError callback has been invoked.
Create a new event source builder that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.
+
+
Parameters:
+
endpoint - SSE streaming endpoint. Must not be null.
+
Returns:
+
a builder of a new event source instance pointing at the specified SSE streaming endpoint.
Close this event source and wait for the internal event processing task to complete for up to the specified amount of
+ wait time.
+
+ The method blocks until the event processing task has completed execution after a shutdown request, or until the
+ timeout occurs, or the current thread is interrupted, whichever happens first.
+
+ In case the waiting for the event processing task has been interrupted, this method restores the
+ interrupt flag on the thread before returning false.
+
+
Parameters:
+
timeout - the maximum time to wait.
+
unit - the time unit of the timeout argument.
+
Returns:
+
true if this executor terminated and false if the timeout elapsed before termination or the
+ termination was interrupted.
Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to
+ reconnect in case a connection to SSE event source is lost.
Register a listener, which will be called when this SseBroadcaster closes a given event SseEventSink or
+ tries to write to a given SseEventSink that is already closed (either by client closing the connection
+ or by calling close() on the server side.
Register a listener, which will be called when an exception is thrown by a given SseEventSink
+ when this SseBroadcaster tries to write to it or close it.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/restful-ws/4.0/apidocs/jakarta.ws.rs/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html b/restful-ws/4.0/apidocs/jakarta.ws.rs/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html
new file mode 100644
index 0000000000..b2c0f9451e
--- /dev/null
+++ b/restful-ws/4.0/apidocs/jakarta.ws.rs/jakarta/ws/rs/sse/class-use/SseEventSource.Builder.html
@@ -0,0 +1,104 @@
+
+
+
+
+Uses of Class jakarta.ws.rs.sse.SseEventSource.Builder (Jakarta RESTful WS API 4.0.0 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Uses of Class jakarta.ws.rs.sse.SseEventSource.Builder
Create a new event source builder that provides convenient way how to configure and
+ fine-tune various aspects of a newly prepared event source instance.
Server-Sent Events related API.
+
+ This package provides support for providing event streams from the server and also for processing then on the client
+ side.
+
+
diff --git a/restful-ws/4.0/apidocs/legal/ADDITIONAL_LICENSE_INFO b/restful-ws/4.0/apidocs/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000000..ff700cd09f
--- /dev/null
+++ b/restful-ws/4.0/apidocs/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1,37 @@
+ ADDITIONAL INFORMATION ABOUT LICENSING
+
+Certain files distributed by Oracle America, Inc. and/or its affiliates are
+subject to the following clarification and special exception to the GPLv2,
+based on the GNU Project exception for its Classpath libraries, known as the
+GNU Classpath Exception.
+
+Note that Oracle includes multiple, independent programs in this software
+package. Some of those programs are provided under licenses deemed
+incompatible with the GPLv2 by the Free Software Foundation and others.
+For example, the package includes programs licensed under the Apache
+License, Version 2.0 and may include FreeType. Such programs are licensed
+to you under their original licenses.
+
+Oracle facilitates your further distribution of this package by adding the
+Classpath Exception to the necessary parts of its GPLv2 code, which permits
+you to use that code in combination with other independent modules not
+licensed under the GPLv2. However, note that this would not permit you to
+commingle code under an incompatible license with Oracle's GPLv2 licensed
+code by, for example, cutting and pasting such code into a file also
+containing Oracle's GPLv2 licensed code and then distributing the result.
+
+Additionally, if you were to remove the Classpath Exception from any of the
+files to which it applies and distribute the result, you would likely be
+required to license some or all of the other code in that distribution under
+the GPLv2 as well, and since the GPLv2 is incompatible with the license terms
+of some items included in the distribution by Oracle, removing the Classpath
+Exception could therefore effectively compromise your ability to further
+distribute the package.
+
+Failing to distribute notices associated with some files may also create
+unexpected legal consequences.
+
+Proceed with caution and we recommend that you obtain the advice of a lawyer
+skilled in open source matters before removing the Classpath Exception or
+making modifications to this package which may subsequently be redistributed
+and/or involve the use of third party software.
diff --git a/restful-ws/4.0/apidocs/legal/ASSEMBLY_EXCEPTION b/restful-ws/4.0/apidocs/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000000..429666664e
--- /dev/null
+++ b/restful-ws/4.0/apidocs/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1,27 @@
+
+OPENJDK ASSEMBLY EXCEPTION
+
+The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
+openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU
+General Public License version 2
+only ("GPL2"), with the following clarification and special exception.
+
+ Linking this OpenJDK Code statically or dynamically with other code
+ is making a combined work based on this library. Thus, the terms
+ and conditions of GPL2 cover the whole combination.
+
+ As a special exception, Oracle gives you permission to link this
+ OpenJDK Code with certain code licensed by Oracle as indicated at
+ https://openjdk.org/legal/exception-modules-2007-05-08.html
+ ("Designated Exception Modules") to produce an executable,
+ regardless of the license terms of the Designated Exception Modules,
+ and to copy and distribute the resulting executable under GPL2,
+ provided that the Designated Exception Modules continue to be
+ governed by the licenses under which they were offered by Oracle.
+
+As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
+to build an executable that includes those portions of necessary code that
+Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
+with the Classpath exception). If you modify or add to the OpenJDK code,
+that new GPL2 code may still be combined with Designated Exception Modules
+if the new code is made subject to this exception by its copyright holder.
diff --git a/restful-ws/4.0/apidocs/legal/LICENSE b/restful-ws/4.0/apidocs/legal/LICENSE
new file mode 100644
index 0000000000..8b400c7ab8
--- /dev/null
+++ b/restful-ws/4.0/apidocs/legal/LICENSE
@@ -0,0 +1,347 @@
+The GNU General Public License (GPL)
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software--to make sure the
+software is free for all its users. This General Public License applies to
+most of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you
+can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must
+make sure that they, too, receive or can get the source code. And you must
+show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced
+by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program proprietary.
+To prevent this, we have made it clear that any patent must be licensed for
+everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms of
+this General Public License. The "Program", below, refers to any such program
+or work, and a "work based on the Program" means either the Program or any
+derivative work under copyright law: that is to say, a work containing the
+Program or a portion of it, either verbatim or with modifications and/or
+translated into another language. (Hereinafter, translation is included
+without limitation in the term "modification".) Each licensee is addressed as
+"you".
+
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as
+you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus
+forming a work based on the Program, and copy and distribute such modifications
+or work under the terms of Section 1 above, provided that you also meet all of
+these conditions:
+
+ a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in whole or
+ in part contains or is derived from the Program or any part thereof, to be
+ licensed as a whole at no charge to all third parties under the terms of
+ this License.
+
+ c) If the modified program normally reads commands interactively when run,
+ you must cause it, when started running for such interactive use in the
+ most ordinary way, to print or display an announcement including an
+ appropriate copyright notice and a notice that there is no warranty (or
+ else, saying that you provide a warranty) and that users may redistribute
+ the program under these conditions, and telling the user how to view a copy
+ of this License. (Exception: if the Program itself is interactive but does
+ not normally print such an announcement, your work based on the Program is
+ not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms
+of this License, whose permissions for other licensees extend to the entire
+whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on
+the Program.
+
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and
+2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2 above
+ on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three years, to
+ give any third party, for a charge no more than your cost of physically
+ performing source distribution, a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of Sections 1
+ and 2 above on a medium customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code
+distributed need not include anything that is normally distributed (in either
+source or binary form) with the major components (compiler, kernel, and so on)
+of the operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source
+code from the same place counts as distribution of the source code, even though
+third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Program
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Program (or
+any work based on the Program), you indicate your acceptance of this License to
+do so, and all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program),
+the recipient automatically receives a license from the original licensor to
+copy, distribute or modify the Program subject to these terms and conditions.
+You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by
+third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the
+General Public License from time to time. Such new versions will be similar in
+spirit to the present version, but may differ in detail to address new problems
+or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software Foundation.
+If the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
+OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found.
+
+ One line to give the program's name and a brief idea of what it does.
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+ with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
+ software, and you are welcome to redistribute it under certain conditions;
+ type 'show c' for details.
+
+The hypothetical commands 'show w' and 'show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than 'show w' and 'show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school,
+if any, to sign a "copyright disclaimer" for the program, if necessary. Here
+is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ 'Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ signature of Ty Coon, 1 April 1989
+
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
+
+
+"CLASSPATH" EXCEPTION TO THE GPL
+
+Certain source files distributed by Oracle America and/or its affiliates are
+subject to the following clarification and special exception to the GPL, but
+only where Oracle has expressly included in the particular source file's header
+the words "Oracle designates this particular file as subject to the "Classpath"
+exception as provided by Oracle in the LICENSE file that accompanied this code."
+
+ Linking this library statically or dynamically with other modules is making
+ a combined work based on this library. Thus, the terms and conditions of
+ the GNU General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,
+ and to copy and distribute the resulting executable under terms of your
+ choice, provided that you also meet, for each linked independent module,
+ the terms and conditions of the license of that module. An independent
+ module is a module which is not derived from or based on this library. If
+ you modify this library, you may extend this exception to your version of
+ the library, but you are not obligated to do so. If you do not wish to do
+ so, delete this exception statement from your version.
diff --git a/restful-ws/4.0/apidocs/legal/jquery.md b/restful-ws/4.0/apidocs/legal/jquery.md
new file mode 100644
index 0000000000..d468b3183a
--- /dev/null
+++ b/restful-ws/4.0/apidocs/legal/jquery.md
@@ -0,0 +1,72 @@
+## jQuery v3.6.1
+
+### jQuery License
+```
+jQuery v 3.6.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************
+
+The jQuery JavaScript Library v3.6.1 also includes Sizzle.js
+
+Sizzle.js includes the following license:
+
+Copyright JS Foundation and other contributors, https://js.foundation/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/sizzle
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+*********************
+
+```
diff --git a/restful-ws/4.0/apidocs/legal/jqueryUI.md b/restful-ws/4.0/apidocs/legal/jqueryUI.md
new file mode 100644
index 0000000000..8bda9d7a85
--- /dev/null
+++ b/restful-ws/4.0/apidocs/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.13.2
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/restful-ws/4.0/apidocs/link.svg b/restful-ws/4.0/apidocs/link.svg
new file mode 100644
index 0000000000..7ccc5ed08c
--- /dev/null
+++ b/restful-ws/4.0/apidocs/link.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
diff --git a/restful-ws/4.0/apidocs/member-search-index.js b/restful-ws/4.0/apidocs/member-search-index.js
new file mode 100644
index 0000000000..d6d036950e
--- /dev/null
+++ b/restful-ws/4.0/apidocs/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"abortWith(Response)","u":"abortWith(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"abortWith(Response)","u":"abortWith(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"AbstractCookieBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"AbstractMultivaluedMap(Map>)","u":"%3Cinit%3E(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"AbstractNewCookieBuilder(Cookie)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"AbstractNewCookieBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_CHARSET"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_ENCODING"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_LANGUAGE"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"accept(MediaType...)","u":"accept(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"accept(String...)","u":"accept(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"ACCEPTED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"accepted()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"accepted(Object)","u":"accepted(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptEncoding(String...)","u":"acceptEncoding(java.lang.String...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(Locale...)","u":"acceptLanguage(java.util.Locale...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(String...)","u":"acceptLanguage(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"add()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"add(K, V)","u":"add(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"add(K, V)","u":"add(K,V)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, List)","u":"addAll(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, List)","u":"addAll(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, V...)","u":"addAll(K,V...)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, V...)","u":"addAll(K,V...)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirst(K, V)","u":"addFirst(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"addFirst(K, V)","u":"addFirst(K,V)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirstNull(List)","u":"addFirstNull(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"addNull(List)","u":"addNull(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ALLOW"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(Set)","u":"allow(java.util.Set)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(String...)","u":"allow(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_MERGE_PATCH_JSON"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_MERGE_PATCH_JSON_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"APPLICATION_XML_TYPE"},{"p":"jakarta.ws.rs.core","c":"Application","l":"Application()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptor","l":"aroundReadFrom(ReaderInterceptorContext)","u":"aroundReadFrom(jakarta.ws.rs.ext.ReaderInterceptorContext)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptor","l":"aroundWriteTo(WriterInterceptorContext)","u":"aroundWriteTo(jakarta.ws.rs.ext.WriterInterceptorContext)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"asMap()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"async()"},{"p":"jakarta.ws.rs","c":"Priorities","l":"AUTHENTICATION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"AUTHORIZATION"},{"p":"jakarta.ws.rs","c":"Priorities","l":"AUTHORIZATION"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"BAD_GATEWAY"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"BAD_REQUEST"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"BadRequestException","l":"BadRequestException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"baseUri()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"baseUri(String)","u":"baseUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"baseUri(URI)","u":"baseUri(java.net.URI)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"baseUriBuilder()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"BASIC_AUTH"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"bootstrap(Application, SeBootstrap.Configuration)","u":"bootstrap(jakarta.ws.rs.core.Application,jakarta.ws.rs.SeBootstrap.Configuration)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"bootstrap(Class extends Application>, SeBootstrap.Configuration)","u":"bootstrap(java.lang.Class,jakarta.ws.rs.SeBootstrap.Configuration)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"broadcast(OutboundSseEvent)","u":"broadcast(jakarta.ws.rs.sse.OutboundSseEvent)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"bufferEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Cookie.Builder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"NewCookie.Builder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"build()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"build()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"build()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"build()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"build(Object...)","u":"build(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"build(Object...)","u":"build(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"build(Object[], boolean)","u":"build(java.lang.Object[],boolean)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"build(String)","u":"build(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"build(String, Entity>)","u":"build(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildDelete()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"builder()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"Builder()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"NewCookie.Builder","l":"Builder(Cookie)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"Cookie.Builder","l":"Builder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.Builder","l":"Builder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromEncoded(Object...)","u":"buildFromEncoded(java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromEncodedMap(Map)","u":"buildFromEncodedMap(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map)","u":"buildFromMap(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map, boolean)","u":"buildFromMap(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildGet()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildPost(Entity>)","u":"buildPost(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"buildPut(Entity>)","u":"buildPut(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"buildRelativized(URI, Object...)","u":"buildRelativized(java.net.URI,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CACHE_CONTROL"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"CacheControl()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cacheControl(CacheControl)","u":"cacheControl(jakarta.ws.rs.core.CacheControl)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"cacheControl(CacheControl)","u":"cacheControl(jakarta.ws.rs.core.CacheControl)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel()"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel(Date)","u":"cancel(java.util.Date)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"cancel(int)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"CHARSET_PARAMETER"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"clear()"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"CLIENT"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"CLIENT_CERT_AUTH"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"CLIENT_ERROR"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"ClientBuilder()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int)","u":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int, Throwable)","u":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int)","u":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int, Throwable)","u":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"clone()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"clone()"},{"p":"jakarta.ws.rs.client","c":"Client","l":"close()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"close()"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"close(boolean)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"close(long, TimeUnit)","u":"close(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"comment(String)","u":"comment(java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"comment(String)","u":"comment(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"InvocationCallback","l":"completed(RESPONSE)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Instance","l":"configuration()"},{"p":"jakarta.ws.rs.core","c":"Feature","l":"configure(FeatureContext)","u":"configure(jakarta.ws.rs.core.FeatureContext)"},{"p":"jakarta.ws.rs.container","c":"DynamicFeature","l":"configure(ResourceInfo, FeatureContext)","u":"configure(jakarta.ws.rs.container.ResourceInfo,jakarta.ws.rs.core.FeatureContext)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"CONFLICT"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"connectTimeout(long, TimeUnit)","u":"connectTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"containsHeaderString(String, Predicate)","u":"containsHeaderString(java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"containsHeaderString(String, Predicate)","u":"containsHeaderString(java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"containsHeaderString(String, Predicate)","u":"containsHeaderString(java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"containsHeaderString(String, Predicate)","u":"containsHeaderString(java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"containsHeaderString(String, Predicate)","u":"containsHeaderString(java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"containsHeaderString(String, String, Predicate)","u":"containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"containsHeaderString(String, String, Predicate)","u":"containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"containsHeaderString(String, String, Predicate)","u":"containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"containsHeaderString(String, String, Predicate)","u":"containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"containsHeaderString(String, String, Predicate)","u":"containsHeaderString(java.lang.String,java.lang.String,java.util.function.Predicate)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsKey(Object)","u":"containsKey(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsValue(Object)","u":"containsValue(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_DISPOSITION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ENCODING"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ID"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LANGUAGE"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LENGTH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LOCATION"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"CONTENT_TYPE"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"content(InputStream)","u":"content(java.io.InputStream)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"content(Object)","u":"content(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"content(String, InputStream)","u":"content(java.lang.String,java.io.InputStream)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"content(T, Class extends T>)","u":"content(T,java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"content(T, GenericType)","u":"content(T,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"contentLocation(URI)","u":"contentLocation(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"COOKIE"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cookie(Cookie)","u":"cookie(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(Cookie.AbstractCookieBuilder>)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie.AbstractCookieBuilder)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"cookie(NewCookie...)","u":"cookie(jakarta.ws.rs.core.NewCookie...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"cookie(String, String)","u":"cookie(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String, int)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createConfigurationBuilder()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"CREATED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"created(URI)","u":"created(java.net.URI)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createEndpoint(Application, Class)","u":"createEndpoint(jakarta.ws.rs.core.Application,java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createEntityPartBuilder(String)","u":"createEntityPartBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createHeaderDelegate(Class)","u":"createHeaderDelegate(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createLinkBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createResponseBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createUriBuilder()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"createVariantListBuilder()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Class, Object)","u":"data(java.lang.Class,java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(GenericType, Object)","u":"data(jakarta.ws.rs.core.GenericType,java.lang.Object)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Object)","u":"data(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"DATE"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"DEFAULT_MAX_AGE"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"DEFAULT_PORT"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"DEFAULT_VERSION"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"DELETE"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete(Class)","u":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(Class)","u":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(Class)","u":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete(Class)","u":"delete(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"delete(GenericType)","u":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(GenericType)","u":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(GenericType)","u":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"delete(GenericType)","u":"delete(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"delete(InvocationCallback)","u":"delete(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"DIGEST_AUTH"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"domain(String)","u":"domain(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"encoding(String)","u":"encoding(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"encodings(String...)","u":"encodings(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"encodings(String...)","u":"encodings(java.lang.String...)"},{"p":"jakarta.ws.rs","c":"Priorities","l":"ENTITY_CODER"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object)","u":"entity(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object, Annotation[])","u":"entity(java.lang.Object,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, MediaType)","u":"entity(T,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, MediaType, Annotation[])","u":"entity(T,jakarta.ws.rs.core.MediaType,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, String)","u":"entity(T,java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, Variant)","u":"entity(T,jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"entity(T, Variant, Annotation[])","u":"entity(T,jakarta.ws.rs.core.Variant,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"EntityTag(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"EntityTag(String, boolean)","u":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"entrySet()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap)","u":"equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap)","u":"equalsIgnoreValueOrder(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"ETAG"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions()"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date)","u":"evaluatePreconditions(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date, EntityTag)","u":"evaluatePreconditions(java.util.Date,jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"evaluatePreconditions(EntityTag)","u":"evaluatePreconditions(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"executorService(ExecutorService)","u":"executorService(java.util.concurrent.ExecutorService)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"EXPECT"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"EXPECTATION_FAILED"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"EXPIRES"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"expires(Date)","u":"expires(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"expiry(Date)","u":"expiry(java.util.Date)"},{"p":"jakarta.ws.rs.client","c":"InvocationCallback","l":"failed(Throwable)","u":"failed(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"familyOf(int)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"fileName(String)","u":"fileName(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestFilter","l":"filter(ClientRequestContext)","u":"filter(jakarta.ws.rs.client.ClientRequestContext)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseFilter","l":"filter(ClientRequestContext, ClientResponseContext)","u":"filter(jakarta.ws.rs.client.ClientRequestContext,jakarta.ws.rs.client.ClientResponseContext)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestFilter","l":"filter(ContainerRequestContext)","u":"filter(jakarta.ws.rs.container.ContainerRequestContext)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseFilter","l":"filter(ContainerRequestContext, ContainerResponseContext)","u":"filter(jakarta.ws.rs.container.ContainerRequestContext,jakarta.ws.rs.container.ContainerResponseContext)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"FORBIDDEN"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"forInstance(Object)","u":"forInstance(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"FORM_AUTH"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"form(Form)","u":"form(jakarta.ws.rs.core.Form)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"form(MultivaluedMap)","u":"form(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form(MultivaluedMap)","u":"%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"Form","l":"Form(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"FOUND"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fragment(String)","u":"fragment(java.lang.String)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"FREE_PORT"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"from(BiFunction, Optional>)","u":"from(java.util.function.BiFunction)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"from(Object)","u":"from(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromLink(Link)","u":"fromLink(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromLink(Link)","u":"fromLink(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromMethod(Class>, String)","u":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromMethod(Class>, String)","u":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromPath(String)","u":"fromPath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromPath(String)","u":"fromPath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromResource(Class>)","u":"fromResource(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromResource(Class>)","u":"fromResource(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"fromResponse(Response)","u":"fromResponse(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"fromStatusCode(int)"},{"p":"jakarta.ws.rs.ext","c":"ParamConverter","l":"fromString(String)","u":"fromString(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"fromString(String)","u":"fromString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUri(String)","u":"fromUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromUri(String)","u":"fromUri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUri(URI)","u":"fromUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"fromUri(URI)","u":"fromUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"fromUriBuilder(UriBuilder)","u":"fromUriBuilder(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"GATEWAY_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T)","u":"%3Cinit%3E(T)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T, Type)","u":"%3Cinit%3E(T,java.lang.reflect.Type)"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"GenericType()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"GenericType(Type)","u":"%3Cinit%3E(java.lang.reflect.Type)"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"GET"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"get(GenericType)","u":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(GenericType)","u":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(GenericType)","u":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"get(GenericType)","u":"get(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"get(InvocationCallback)","u":"get(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"get(Object)","u":"get(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getAbsolutePath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getAbsolutePathBuilder()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getAcceptableLanguages()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getAcceptableMediaTypes()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getAllowedMethods()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getAnnotations()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getAnnotations()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"getAuthenticationScheme()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getBaseUri()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getBaseUriBuilder()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getCacheExtension()"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"getChallenges()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getClasses()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getClasses()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getClient()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getComment()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getComment()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getConfiguration()"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"getConfiguration()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getContent()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getContent(Class)","u":"getContent(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getContent(GenericType)","u":"getContent(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.ext","c":"ContextResolver","l":"getContext(Class>)","u":"getContext(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getContextResolver(Class, MediaType)","u":"getContextResolver(java.lang.Class,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getContracts(Class>)","u":"getContracts(java.lang.Class)"},{"p":"jakarta.ws.rs.ext","c":"ParamConverterProvider","l":"getConverter(Class, Type, Annotation[])","u":"getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getCookies()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getCookies()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getCookies()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getCookies()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getCookies()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getCookies()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getData()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getDate()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getDate()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getDate()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getDate()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getDomain()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getEncoding()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getEncoding()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntity()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntity()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getEntity()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getEntity()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityAnnotations()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityAnnotations()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityClass()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityClass()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityStream()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getEntityTag()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityTag()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getEntityTag()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getEntityType()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getEntityType()"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getExceptionMapper(Class)","u":"getExceptionMapper(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getExpiry()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getFamily()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getFamily()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getFileName()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"getFirst(K)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"getFirst(K)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getGenericType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getGenericType()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getHeaders()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getHeaders()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getHeaders()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getHeaderString(String)","u":"getHeaderString(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"getHostnameVerifier()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getId()"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"getInputStream()"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"getInstance()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getInstances()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getLanguage()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getLanguage()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getLanguageString()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLastModified()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLastModified()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLastModified()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLength()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getLength()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLength()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getLength()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLength()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLink(String)","u":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLink(String)","u":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLink(String)","u":"getLink(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLinkBuilder(String)","u":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLinkBuilder(String)","u":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLinkBuilder(String)","u":"getLinkBuilder(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLinks()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLinks()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLinks()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getLocation()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getLocation()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getLocation()"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"getLocation()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedResources()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedResourceTemplate()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedURIs()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getMatchedURIs(boolean)"},{"p":"jakarta.ws.rs.core","c":"PathSegment","l":"getMatrixParameters()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getMaxAge()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getMaxAge()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getMediaType()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getMediaType()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"getMediaType()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getMediaType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getMediaType()"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getMessageBodyReader(Class, Type, Annotation[], MediaType)","u":"getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.ext","c":"Providers","l":"getMessageBodyWriter(Class, Type, Annotation[], MediaType)","u":"getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getMetadata()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getMethod()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getMethod()"},{"p":"jakarta.ws.rs.core","c":"Request","l":"getMethod()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getName()"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"getName()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getName()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getNoCacheFields()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"getOutputStream()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getParameters()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getParams()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"PathSegment","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPath()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPath(boolean)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathParameters()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathParameters(boolean)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathSegments()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getPathSegments(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getPrivateFields()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getProperties()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getProperties()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getProperty(String)","u":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getProperty(String)","u":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getProperty(String)","u":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getProperty(String)","u":"getProperty(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getPropertyNames()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getQueryParameters()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getQueryParameters(boolean)"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getRawType()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"getRawType()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getReasonPhrase()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getReasonPhrase()"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"getReconnectDelay()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getRel()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getRels()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getRequest()"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getRequestHeader(String)","u":"getRequestHeader(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"getRequestHeaders()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getRequestUri()"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"getRequestUriBuilder()"},{"p":"jakarta.ws.rs.container","c":"ResourceContext","l":"getResource(Class)","u":"getResource(java.lang.Class)"},{"p":"jakarta.ws.rs.container","c":"ResourceInfo","l":"getResourceClass()"},{"p":"jakarta.ws.rs.container","c":"ResourceInfo","l":"getResourceMethod()"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"getResponse()"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"getResponse()"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"getRetryTime(Date)","u":"getRetryTime(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"getRuntimeType()"},{"p":"jakarta.ws.rs.client","c":"RxInvokerProvider","l":"getRxInvoker(SyncInvoker, ExecutorService)","u":"getRxInvoker(jakarta.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"getSameSite()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getSecurityContext()"},{"p":"jakarta.ws.rs.core","c":"Application","l":"getSingletons()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"getSize(T, Class>, Type, Annotation[], MediaType)","u":"getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"getSMaxAge()"},{"p":"jakarta.ws.rs.client","c":"Client","l":"getSslContext()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getStatus()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStatus()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStatus()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"getStatusCode()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"getStatusCode()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStatusInfo()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"getStringHeaders()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getSubtype()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getTitle()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getType()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"getType()"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"getType()"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent","l":"getType()"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"getUri()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"getUri()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getUri()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"getUriBuilder()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"getUriBuilder()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"getUriInfo()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"getUserPrincipal()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getValue()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"getValue()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"getValues(K)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"getVariant()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"getVersion()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"GONE"},{"p":"jakarta.ws.rs.container","c":"TimeoutHandler","l":"handleTimeout(AsyncResponse)","u":"handleTimeout(jakarta.ws.rs.container.AsyncResponse)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"hasEntity()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"hasEntity()"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"hashCode()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"hashCode()"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"hasLink(String)","u":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"hasLink(String)","u":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"hasLink(String)","u":"hasLink(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"hasProperty(String)","u":"hasProperty(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"hasProperty(String)","u":"hasProperty(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"hasProperty(String)","u":"hasProperty(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"hasProperty(String)","u":"hasProperty(java.lang.String)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"hasProperty(String)","u":"hasProperty(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"hasRetryAfter()"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"HEAD"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"head()"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"head(InvocationCallback)","u":"head(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs","c":"Priorities","l":"HEADER_DECORATOR"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"header(String, Object)","u":"header(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"header(String, Object)","u":"header(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"header(String, String...)","u":"header(java.lang.String,java.lang.String...)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"headers(MultivaluedMap)","u":"headers(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"headers(MultivaluedMap)","u":"headers(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"HOST"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"HOST"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"host()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"host(String)","u":"host(java.lang.String)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"host(String)","u":"host(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"hostnameVerifier(HostnameVerifier)","u":"hostnameVerifier(javax.net.ssl.HostnameVerifier)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"html(T)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"HTTP_VERSION_NOT_SUPPORTED"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"httpOnly(boolean)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"id(String)","u":"id(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_MATCH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_MODIFIED_SINCE"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_NONE_MATCH"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"IF_UNMODIFIED_SINCE"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"INFORMATIONAL"},{"p":"jakarta.ws.rs.container","c":"ResourceContext","l":"initResource(T)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"INTERNAL_SERVER_ERROR"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"invocation(Link)","u":"invocation(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke()"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke(Class)","u":"invoke(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"invoke(GenericType)","u":"invoke(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isCancelled()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"isClosed()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"isClosed()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isCompatible(MediaType)","u":"isCompatible(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isDone()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"isEmpty()"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"isEmpty()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isEnabled(Class extends Feature>)","u":"isEnabled(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isEnabled(Feature)","u":"isEnabled(jakarta.ws.rs.core.Feature)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"isHttpOnly()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isMustRevalidate()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoCache()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoStore()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isNoTransform()"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"isOpen()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isPrivate()"},{"p":"jakarta.ws.rs.client","c":"RxInvokerProvider","l":"isProviderFor(Class>)","u":"isProviderFor(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"isProxyRevalidate()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyReader","l":"isReadable(Class>, Type, Annotation[], MediaType)","u":"isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"isReconnectDelaySet()"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isRegistered(Class>)","u":"isRegistered(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configuration","l":"isRegistered(Object)","u":"isRegistered(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"isSecure()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"isSecure()"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"isSuspended()"},{"p":"jakarta.ws.rs.core","c":"SecurityContext","l":"isUserInRole(String)","u":"isUserInRole(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"isWeak()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isWildcardSubtype()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"isWildcardType()"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"isWriteable(Class>, Type, Annotation[], MediaType)","u":"isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"JAXRS_DEFAULT_SSE_BUILDER_PROPERTY"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"JAXRS_RUNTIME_DELEGATE_PROPERTY"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"json(T)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"keySet()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, char[])","u":"keyStore(java.security.KeyStore,char[])"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, String)","u":"keyStore(java.security.KeyStore,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"language(Locale)","u":"language(java.util.Locale)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"language(String)","u":"language(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"languages(Locale...)","u":"languages(java.util.Locale...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"languages(Locale...)","u":"languages(java.util.Locale...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LAST_EVENT_ID_HEADER"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LAST_MODIFIED"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"lastModified(Date)","u":"lastModified(java.util.Date)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.SameSite","l":"LAX"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"LENGTH_REQUIRED"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LINK"},{"p":"jakarta.ws.rs.core","c":"Link","l":"Link()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"link(Link)","u":"link(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"link(String)","u":"link(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"link(String, String)","u":"link(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"link(URI, String)","u":"link(java.net.URI,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"links(Link...)","u":"links(jakarta.ws.rs.core.Link...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"LOCATION"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"location(URI)","u":"location(java.net.URI)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.SSLClientAuthentication","l":"MANDATORY"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"matrixParam(String, Object...)","u":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"matrixParam(String, Object...)","u":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"maxAge(int)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MEDIA_TYPE_WILDCARD"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"mediaType(MediaType)","u":"mediaType(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"mediaType(MediaType)","u":"mediaType(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"EntityPart.Builder","l":"mediaType(String)","u":"mediaType(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String, Map)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MediaType(String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"mediaTypes(MediaType...)","u":"mediaTypes(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"mediaTypes(MediaType...)","u":"mediaTypes(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"METHOD_NOT_ALLOWED"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String)","u":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String)","u":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String)","u":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String)","u":"method(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Class)","u":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Class)","u":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Class)","u":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Class)","u":"method(java.lang.String,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity>)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity>)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity>)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity>)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity>, Class)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity>, Class)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity>, Class)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity>, Class)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, Entity>, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity>, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity>, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity>, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity>, InvocationCallback)","u":"method(java.lang.String,jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"method(String, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"method(String, GenericType)","u":"method(java.lang.String,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"method(String, InvocationCallback)","u":"method(java.lang.String,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"MOVED_PERMANENTLY"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA_TYPE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"MULTIPLE_CHOICES"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int)","u":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int, float)","u":"%3Cinit%3E(int,float)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(Map extends K, ? extends V>)","u":"%3Cinit%3E(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(MultivaluedMap extends K, ? extends V>)","u":"%3Cinit%3E(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"name(String)","u":"name(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NETWORK_AUTHENTICATION_REQUIRED"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newBroadcaster()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newBuilder()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newClient()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"newClient(Configuration)","u":"newClient(jakarta.ws.rs.core.Configuration)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, boolean)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, Date, boolean, boolean)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, Date, boolean, boolean, NewCookie.SameSite)","u":"%3Cinit%3E(jakarta.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean,jakarta.ws.rs.core.NewCookie.SameSite)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(NewCookie.AbstractNewCookieBuilder>)","u":"%3Cinit%3E(jakarta.ws.rs.core.NewCookie.AbstractNewCookieBuilder)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean, NewCookie.SameSite)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean,jakarta.ws.rs.core.NewCookie.SameSite)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean, boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEvent(String)","u":"newEvent(java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEvent(String, String)","u":"newEvent(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.sse","c":"Sse","l":"newEventBuilder()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"newInstance()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NO_CONTENT"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"NO_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"Response","l":"noContent()"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"NoContentException","l":"NoContentException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.SameSite","l":"NONE"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.SSLClientAuthentication","l":"NONE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_ACCEPTABLE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_FOUND"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_IMPLEMENTED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"NOT_MODIFIED"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notAcceptable(List)","u":"notAcceptable(java.util.List)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String, String...)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String...)","u":"%3Cinit%3E(java.lang.String,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Throwable, String...)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Throwable, String...)","u":"%3Cinit%3E(java.lang.Throwable,java.lang.String...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Object, Object...)","u":"%3Cinit%3E(java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Object, Object...)","u":"%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Throwable, Object, Object...)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Throwable, Object, Object...)","u":"%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotFoundException","l":"NotFoundException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified(EntityTag)","u":"notModified(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"notModified(String)","u":"notModified(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"OK"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok()"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object)","u":"ok(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, MediaType)","u":"ok(java.lang.Object,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, String)","u":"ok(java.lang.Object,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"ok(Object, Variant)","u":"ok(java.lang.Object,jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"onClose(Consumer)","u":"onClose(java.util.function.Consumer)"},{"p":"jakarta.ws.rs.container","c":"CompletionCallback","l":"onComplete(Throwable)","u":"onComplete(java.lang.Throwable)"},{"p":"jakarta.ws.rs.container","c":"ConnectionCallback","l":"onDisconnect(AsyncResponse)","u":"onDisconnect(jakarta.ws.rs.container.AsyncResponse)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"onError(BiConsumer)","u":"onError(java.util.function.BiConsumer)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"open()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.SSLClientAuthentication","l":"OPTIONAL"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"OPTIONS"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options(Class)","u":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(Class)","u":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(Class)","u":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options(Class)","u":"options(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"options(GenericType)","u":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(GenericType)","u":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(GenericType)","u":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"options(GenericType)","u":"options(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"options(InvocationCallback)","u":"options(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"OTHER"},{"p":"jakarta.ws.rs.core","c":"Form","l":"param(String, String)","u":"param(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"param(String, String)","u":"param(java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PARTIAL_CONTENT"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"PATCH"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Class)","u":"path(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Class, String)","u":"path(java.lang.Class,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(Method)","u":"path(java.lang.reflect.Method)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"path(String)","u":"path(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"path(String)","u":"path(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"path(String)","u":"path(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PAYMENT_REQUIRED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PERMANENT_REDIRECT"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"PORT"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"port()"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"port(int)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"port(Integer)","u":"port(java.lang.Integer)"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"POST"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity>)","u":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity>)","u":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity>)","u":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity>)","u":"post(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity>, Class)","u":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity>, Class)","u":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity>, Class)","u":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity>, Class)","u":"post(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"post(Entity>, GenericType)","u":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity>, GenericType)","u":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity>, GenericType)","u":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"post(Entity>, GenericType)","u":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"post(Entity>, InvocationCallback)","u":"post(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PRECONDITION_FAILED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PRECONDITION_REQUIRED"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"proceed()"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"proceed()"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ProcessingException","l":"ProcessingException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"property(String)","u":"property(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"property(String, Object)","u":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"property(String, Object)","u":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"property(String, Object)","u":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"property(String, Object)","u":"property(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"PROTOCOL"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"protocol()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"protocol(String)","u":"protocol(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"PROXY_AUTHENTICATION_REQUIRED"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"PUT"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity>)","u":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity>)","u":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity>)","u":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity>)","u":"put(jakarta.ws.rs.client.Entity)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity>, Class)","u":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity>, Class)","u":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity>, Class)","u":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity>, Class)","u":"put(jakarta.ws.rs.client.Entity,java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"put(Entity>, GenericType)","u":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity>, GenericType)","u":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity>, GenericType)","u":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"put(Entity>, GenericType)","u":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"put(Entity>, InvocationCallback)","u":"put(jakarta.ws.rs.client.Entity,jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"put(K, List)","u":"put(K,java.util.List)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"putAll(Map extends K, ? extends List>)","u":"putAll(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"putSingle(K, V)","u":"putSingle(K,V)"},{"p":"jakarta.ws.rs.core","c":"MultivaluedMap","l":"putSingle(K, V)","u":"putSingle(K,V)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"queryParam(String, Object...)","u":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"queryParam(String, Object...)","u":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData()"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class)","u":"readData(java.lang.Class)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class, MediaType)","u":"readData(java.lang.Class,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType)","u":"readData(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType, MediaType)","u":"readData(jakarta.ws.rs.core.GenericType,jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(Class)","u":"readEntity(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(Class, Annotation[])","u":"readEntity(java.lang.Class,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(GenericType)","u":"readEntity(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"readEntity(GenericType, Annotation[])","u":"readEntity(jakarta.ws.rs.core.GenericType,java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyReader","l":"readFrom(Class, Type, Annotation[], MediaType, MultivaluedMap, InputStream)","u":"readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.InputStream)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"readTimeout(long, TimeUnit)","u":"readTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.sse","c":"SseEvent","l":"RECONNECT_NOT_SET"},{"p":"jakarta.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"reconnectDelay(long)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"reconnectingEvery(long, TimeUnit)","u":"reconnectingEvery(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"REDIRECTION"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(int, URI)","u":"%3Cinit%3E(int,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(Response.Status, URI)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, int, URI)","u":"%3Cinit%3E(java.lang.String,int,java.net.URI)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response.Status, URI)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.net.URI)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Class>)","u":"register(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class>)","u":"register(java.lang.Class)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Class>, Class>...)","u":"register(java.lang.Class,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class>, Class>...)","u":"register(java.lang.Class,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class>, int)","u":"register(java.lang.Class,int)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Class>, Map, Integer>)","u":"register(java.lang.Class,java.util.Map)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer)","u":"register(java.util.function.Consumer)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer, Consumer)","u":"register(java.util.function.Consumer,java.util.function.Consumer)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"register(Consumer, Consumer, Runnable)","u":"register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Object)","u":"register(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object)","u":"register(java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, Class>...)","u":"register(java.lang.Object,java.lang.Class...)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, int)","u":"register(java.lang.Object,int)"},{"p":"jakarta.ws.rs.core","c":"Configurable","l":"register(Object, Map, Integer>)","u":"register(java.lang.Object,java.util.Map)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"register(Object, Object...)","u":"register(java.lang.Object,java.lang.Object...)"},{"p":"jakarta.ws.rs.sse","c":"SseBroadcaster","l":"register(SseEventSink)","u":"register(jakarta.ws.rs.sse.SseEventSink)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"REL"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"rel(String)","u":"rel(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"relativize(URI)","u":"relativize(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"remove(Object)","u":"remove(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"removeProperty(String)","u":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"removeProperty(String)","u":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"removeProperty(String)","u":"removeProperty(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"replaceAll(MultivaluedMap)","u":"replaceAll(jakarta.ws.rs.core.MultivaluedMap)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceMatrix(String)","u":"replaceMatrix(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceMatrixParam(String, Object...)","u":"replaceMatrixParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replacePath(String)","u":"replacePath(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceQuery(String)","u":"replaceQuery(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"replaceQueryParam(String, Object...)","u":"replaceQueryParam(java.lang.String,java.lang.Object...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_ENTITY_TOO_LARGE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_HEADER_FIELDS_TOO_LARGE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_TIMEOUT"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUEST_URI_TOO_LONG"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request()"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request(MediaType...)","u":"request(jakarta.ws.rs.core.MediaType...)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"request(String...)","u":"request(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"REQUESTED_RANGE_NOT_SATISFIABLE"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"RESET_CONTENT"},{"p":"jakarta.ws.rs.core","c":"UriInfo","l":"resolve(URI)","u":"resolve(java.net.URI)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object)","u":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object)","u":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object, boolean)","u":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object, boolean)","u":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplateFromEncoded(String, Object)","u":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplateFromEncoded(String, Object)","u":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map)","u":"resolveTemplates(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map)","u":"resolveTemplates(java.util.Map)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map, boolean)","u":"resolveTemplates(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map, boolean)","u":"resolveTemplates(java.util.Map,boolean)"},{"p":"jakarta.ws.rs.client","c":"WebTarget","l":"resolveTemplatesFromEncoded(Map)","u":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"resolveTemplatesFromEncoded(Map)","u":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"Response()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"ResponseBuilder()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"resume(Object)","u":"resume(java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"resume(Throwable)","u":"resume(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"RETRY_AFTER"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"ROOT_PATH"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"rootPath()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"rootPath(String)","u":"rootPath(java.lang.String)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"RuntimeDelegate()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"rx()"},{"p":"jakarta.ws.rs.client","c":"Invocation.Builder","l":"rx(Class)","u":"rx(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"sameSite(NewCookie.SameSite)","u":"sameSite(jakarta.ws.rs.core.NewCookie.SameSite)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"scheduledExecutorService(ScheduledExecutorService)","u":"scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"scheme(String)","u":"scheme(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"schemeSpecificPart(String)","u":"schemeSpecificPart(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.AbstractNewCookieBuilder","l":"secure(boolean)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"SEE_OTHER"},{"p":"jakarta.ws.rs.core","c":"Response","l":"seeOther(URI)","u":"seeOther(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"segment(String...)","u":"segment(java.lang.String...)"},{"p":"jakarta.ws.rs.core","c":"Request","l":"selectVariant(List)","u":"selectVariant(java.util.List)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSink","l":"send(OutboundSseEvent)","u":"send(jakarta.ws.rs.sse.OutboundSseEvent)"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"SERVER"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"SERVER_ERROR"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS_TYPE"},{"p":"jakarta.ws.rs.core","c":"Response","l":"serverError()"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int)","u":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int, Throwable)","u":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int)","u":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int, Throwable)","u":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"SERVICE_UNAVAILABLE"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date)","u":"%3Cinit%3E(java.util.Date)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date, Throwable)","u":"%3Cinit%3E(java.util.Date,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long)","u":"%3Cinit%3E(java.lang.Long)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long, Throwable)","u":"%3Cinit%3E(java.lang.Long,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response, Throwable)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date)","u":"%3Cinit%3E(java.lang.String,java.util.Date)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date, Throwable)","u":"%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long)","u":"%3Cinit%3E(java.lang.String,java.lang.Long)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response, Throwable)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"SET_COOKIE"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setAnnotations(Annotation[])","u":"setAnnotations(java.lang.annotation.Annotation[])"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object)","u":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object)","u":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"setEntity(Object)","u":"setEntity(java.lang.Object)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object, Annotation[], MediaType)","u":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object, Annotation[], MediaType)","u":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setEntityStream(InputStream)","u":"setEntityStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setEntityStream(InputStream)","u":"setEntityStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setEntityStream(OutputStream)","u":"setEntityStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setEntityStream(OutputStream)","u":"setEntityStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setGenericType(Type)","u":"setGenericType(java.lang.reflect.Type)"},{"p":"jakarta.ws.rs.ext","c":"ReaderInterceptorContext","l":"setInputStream(InputStream)","u":"setInputStream(java.io.InputStream)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate","l":"setInstance(RuntimeDelegate)","u":"setInstance(jakarta.ws.rs.ext.RuntimeDelegate)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setMaxAge(int)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setMediaType(MediaType)","u":"setMediaType(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setMethod(String)","u":"setMethod(java.lang.String)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setMethod(String)","u":"setMethod(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setMustRevalidate(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoCache(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoStore(boolean)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setNoTransform(boolean)"},{"p":"jakarta.ws.rs.ext","c":"WriterInterceptorContext","l":"setOutputStream(OutputStream)","u":"setOutputStream(java.io.OutputStream)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setPrivate(boolean)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setProperty(String, Object)","u":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setProperty(String, Object)","u":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setProperty(String, Object)","u":"setProperty(java.lang.String,java.lang.Object)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setProxyRevalidate(boolean)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI)","u":"setRequestUri(java.net.URI)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI, URI)","u":"setRequestUri(java.net.URI,java.net.URI)"},{"p":"jakarta.ws.rs.container","c":"ContainerRequestContext","l":"setSecurityContext(SecurityContext)","u":"setSecurityContext(jakarta.ws.rs.core.SecurityContext)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"setSMaxAge(int)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setStatus(int)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setStatus(int)"},{"p":"jakarta.ws.rs.client","c":"ClientResponseContext","l":"setStatusInfo(Response.StatusType)","u":"setStatusInfo(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.container","c":"ContainerResponseContext","l":"setStatusInfo(Response.StatusType)","u":"setStatusInfo(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"setTimeout(long, TimeUnit)","u":"setTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"jakarta.ws.rs.container","c":"AsyncResponse","l":"setTimeoutHandler(TimeoutHandler)","u":"setTimeoutHandler(jakarta.ws.rs.container.TimeoutHandler)"},{"p":"jakarta.ws.rs.ext","c":"InterceptorContext","l":"setType(Class>)","u":"setType(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"ClientRequestContext","l":"setUri(URI)","u":"setUri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"size()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"SSL_CLIENT_AUTHENTICATION"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"SSL_CONTEXT"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"sslClientAuthentication()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"sslClientAuthentication(SeBootstrap.Configuration.SSLClientAuthentication)","u":"sslClientAuthentication(jakarta.ws.rs.SeBootstrap.Configuration.SSLClientAuthentication)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration","l":"sslContext()"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"sslContext(SSLContext)","u":"sslContext(javax.net.ssl.SSLContext)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.Builder","l":"sslContext(SSLContext)","u":"sslContext(javax.net.ssl.SSLContext)"},{"p":"jakarta.ws.rs","c":"SeBootstrap","l":"start(Application)","u":"start(jakarta.ws.rs.core.Application)"},{"p":"jakarta.ws.rs","c":"SeBootstrap","l":"start(Application, SeBootstrap.Configuration)","u":"start(jakarta.ws.rs.core.Application,jakarta.ws.rs.SeBootstrap.Configuration)"},{"p":"jakarta.ws.rs","c":"SeBootstrap","l":"start(Class extends Application>)","u":"start(java.lang.Class)"},{"p":"jakarta.ws.rs","c":"SeBootstrap","l":"start(Class extends Application>, SeBootstrap.Configuration)","u":"start(java.lang.Class,jakarta.ws.rs.SeBootstrap.Configuration)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(int)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int, String)","u":"status(int,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(int, String)","u":"status(int,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.Status)","u":"status(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(Response.Status)","u":"status(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.StatusType)","u":"status(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs.core","c":"Response","l":"status(Response.StatusType)","u":"status(jakarta.ws.rs.core.Response.StatusType)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Instance","l":"stop()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Instance","l":"stopOnShutdown(Consumer)","u":"stopOnShutdown(java.util.function.Consumer)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"store"},{"p":"jakarta.ws.rs.core","c":"NewCookie.SameSite","l":"STRICT"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit()"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(Class)","u":"submit(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(GenericType)","u":"submit(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"Invocation","l":"submit(InvocationCallback)","u":"submit(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"SUCCESSFUL"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(EntityTag)","u":"tag(jakarta.ws.rs.core.EntityTag)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(String)","u":"tag(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(Link)","u":"target(jakarta.ws.rs.core.Link)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(String)","u":"target(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(URI)","u":"target(java.net.URI)"},{"p":"jakarta.ws.rs.client","c":"Client","l":"target(UriBuilder)","u":"target(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource.Builder","l":"target(WebTarget)","u":"target(jakarta.ws.rs.client.WebTarget)"},{"p":"jakarta.ws.rs.sse","c":"SseEventSource","l":"target(WebTarget)","u":"target(jakarta.ws.rs.client.WebTarget)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"TEMPORARY_REDIRECT"},{"p":"jakarta.ws.rs.core","c":"Response","l":"temporaryRedirect(URI)","u":"temporaryRedirect(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_HTML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_HTML_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_XML"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"TEXT_XML_TYPE"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"text(T)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"TITLE"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"title(String)","u":"title(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"toCookie()"},{"p":"jakarta.ws.rs.core","c":"Response.StatusType","l":"toEnum()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"TOO_MANY_REQUESTS"},{"p":"jakarta.ws.rs.ext","c":"ExceptionMapper","l":"toResponse(E)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"GenericEntity","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"GenericType","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Link","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"toString()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"toString()"},{"p":"jakarta.ws.rs.ext","c":"ParamConverter","l":"toString(T)"},{"p":"jakarta.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"toString(T)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"toTemplate()"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace()"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace(Class)","u":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(Class)","u":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(Class)","u":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace(Class)","u":"trace(java.lang.Class)"},{"p":"jakarta.ws.rs.client","c":"RxInvoker","l":"trace(GenericType)","u":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(GenericType)","u":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(GenericType)","u":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"SyncInvoker","l":"trace(GenericType)","u":"trace(jakarta.ws.rs.core.GenericType)"},{"p":"jakarta.ws.rs.client","c":"AsyncInvoker","l":"trace(InvocationCallback)","u":"trace(jakarta.ws.rs.client.InvocationCallback)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"trustStore(KeyStore)","u":"trustStore(java.security.KeyStore)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"TYPE"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"type(MediaType)","u":"type(jakarta.ws.rs.core.MediaType)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"type(String)","u":"type(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"type(String)","u":"type(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"UNAUTHORIZED"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"UNAVAILABLE_FOR_LEGAL_REASONS"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"UNSUPPORTED_MEDIA_TYPE"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Instance.StopResult","l":"unwrap(Class)","u":"unwrap(java.lang.Class)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Instance","l":"unwrap(Class)","u":"unwrap(java.lang.Class)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uri(String)","u":"uri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"uri(String)","u":"uri(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uri(URI)","u":"uri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"uri(URI)","u":"uri(java.net.URI)"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"UriBuilder()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Link.Builder","l":"uriBuilder(UriBuilder)","u":"uriBuilder(jakarta.ws.rs.core.UriBuilder)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"USE_PROXY"},{"p":"jakarta.ws.rs","c":"Priorities","l":"USER"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"USER_AGENT"},{"p":"jakarta.ws.rs.core","c":"UriBuilder","l":"userInfo(String)","u":"userInfo(java.lang.String)"},{"p":"jakarta.ws.rs","c":"ApplicationPath","l":"value()"},{"p":"jakarta.ws.rs","c":"ConstrainedTo","l":"value()"},{"p":"jakarta.ws.rs","c":"Consumes","l":"value()"},{"p":"jakarta.ws.rs","c":"CookieParam","l":"value()"},{"p":"jakarta.ws.rs","c":"DefaultValue","l":"value()"},{"p":"jakarta.ws.rs","c":"FormParam","l":"value()"},{"p":"jakarta.ws.rs","c":"HeaderParam","l":"value()"},{"p":"jakarta.ws.rs","c":"HttpMethod","l":"value()"},{"p":"jakarta.ws.rs","c":"MatrixParam","l":"value()"},{"p":"jakarta.ws.rs","c":"Path","l":"value()"},{"p":"jakarta.ws.rs","c":"PathParam","l":"value()"},{"p":"jakarta.ws.rs","c":"Produces","l":"value()"},{"p":"jakarta.ws.rs","c":"QueryParam","l":"value()"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"value(String)","u":"value(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"CacheControl","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Cookie","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityTag","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Link","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie.SameSite","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"NewCookie","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.SSLClientAuthentication","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"AbstractMultivaluedMap","l":"values()"},{"p":"jakarta.ws.rs.core","c":"NewCookie.SameSite","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Response.Status.Family","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Response.Status","l":"values()"},{"p":"jakarta.ws.rs","c":"RuntimeType","l":"values()"},{"p":"jakarta.ws.rs","c":"SeBootstrap.Configuration.SSLClientAuthentication","l":"values()"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, Locale, String)","u":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.util.Locale,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String)","u":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String)","u":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String, String)","u":"%3Cinit%3E(jakarta.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variant(Variant)","u":"variant(jakarta.ws.rs.core.Variant)"},{"p":"jakarta.ws.rs.core","c":"Variant.VariantListBuilder","l":"VariantListBuilder()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(List)","u":"variants(java.util.List)"},{"p":"jakarta.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(Variant...)","u":"variants(jakarta.ws.rs.core.Variant...)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"VARY"},{"p":"jakarta.ws.rs.core","c":"Cookie.AbstractCookieBuilder","l":"version(int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException()","u":"%3Cinit%3E()"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(int)","u":"%3Cinit%3E(int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response.Status)","u":"%3Cinit%3E(jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, int)","u":"%3Cinit%3E(java.lang.String,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response.Status)","u":"%3Cinit%3E(java.lang.String,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, int)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response.Status)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, int)","u":"%3Cinit%3E(java.lang.Throwable,int)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response)","u":"%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response)"},{"p":"jakarta.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response.Status)","u":"%3Cinit%3E(java.lang.Throwable,jakarta.ws.rs.core.Response.Status)"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"WILDCARD"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"WILDCARD_TYPE"},{"p":"jakarta.ws.rs.core","c":"MediaType","l":"withCharset(String)","u":"withCharset(java.lang.String)"},{"p":"jakarta.ws.rs.client","c":"ClientBuilder","l":"withConfig(Configuration)","u":"withConfig(jakarta.ws.rs.core.Configuration)"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"withFileName(String)","u":"withFileName(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"EntityPart","l":"withName(String)","u":"withName(java.lang.String)"},{"p":"jakarta.ws.rs.core","c":"StreamingOutput","l":"write(OutputStream)","u":"write(java.io.OutputStream)"},{"p":"jakarta.ws.rs.ext","c":"MessageBodyWriter","l":"writeTo(T, Class>, Type, Annotation[], MediaType, MultivaluedMap, OutputStream)","u":"writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],jakarta.ws.rs.core.MediaType,jakarta.ws.rs.core.MultivaluedMap,java.io.OutputStream)"},{"p":"jakarta.ws.rs.core","c":"HttpHeaders","l":"WWW_AUTHENTICATE"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"xhtml(T)"},{"p":"jakarta.ws.rs.client","c":"Entity","l":"xml(T)"}];updateSearchResults();
\ No newline at end of file
diff --git a/restful-ws/4.0/apidocs/module-search-index.js b/restful-ws/4.0/apidocs/module-search-index.js
new file mode 100644
index 0000000000..fb6851075e
--- /dev/null
+++ b/restful-ws/4.0/apidocs/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [{"l":"jakarta.ws.rs"}];updateSearchResults();
\ No newline at end of file
diff --git a/restful-ws/4.0/apidocs/overview-summary.html b/restful-ws/4.0/apidocs/overview-summary.html
new file mode 100644
index 0000000000..01e15bba45
--- /dev/null
+++ b/restful-ws/4.0/apidocs/overview-summary.html
@@ -0,0 +1,25 @@
+
+
+
+
+Jakarta RESTful WS API 4.0.0 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/restful-ws/4.0/apidocs/package-search-index.js b/restful-ws/4.0/apidocs/package-search-index.js
new file mode 100644
index 0000000000..a866d06a76
--- /dev/null
+++ b/restful-ws/4.0/apidocs/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs.client"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs.container"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs.core"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs.ext"},{"m":"jakarta.ws.rs","l":"jakarta.ws.rs.sse"}];updateSearchResults();
\ No newline at end of file
diff --git a/restful-ws/4.0/apidocs/resources/EFSL.html b/restful-ws/4.0/apidocs/resources/EFSL.html
new file mode 100644
index 0000000000..c222f1b928
--- /dev/null
+++ b/restful-ws/4.0/apidocs/resources/EFSL.html
@@ -0,0 +1,72 @@
+
+
+ Eclipse Foundation Specification License - v1.0
+
+
+
Eclipse Foundation Specification License - v1.0
+
By using and/or copying this document, or the Eclipse Foundation
+ document from which this statement is linked, you (the licensee) agree
+ that you have read, understood, and will comply with the following
+ terms and conditions:
+
+
Permission to copy, and distribute the contents of this document, or
+ the Eclipse Foundation document from which this statement is linked, in
+ any medium for any purpose and without fee or royalty is hereby
+ granted, provided that you include the following on ALL copies of the
+ document, or portions thereof, that you use:
+
+
+
link or URL to the original Eclipse Foundation document.
Inclusion of the full text of this NOTICE must be provided. We
+ request that authorship attribution be provided in any software,
+ documents, or other items or products that you create pursuant to the
+ implementation of the contents of this document, or any portion
+ thereof.
+
+
No right to create modifications or derivatives of Eclipse Foundation
+ documents is granted pursuant to this license, except anyone may
+ prepare and distribute derivative works and portions of this document
+ in software that implements the specification, in supporting materials
+ accompanying such software, and in documentation of such software,
+ PROVIDED that all such works include the notice below. HOWEVER, the
+ publication of derivative works of this document for use as a technical
+ specification is expressly prohibited.
THIS DOCUMENT IS PROVIDED "AS IS," AND THE COPYRIGHT
+ HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR
+ WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+ NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
+ SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS
+ WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
+ OTHER RIGHTS.
+
+
THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE
+ FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+ OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
+ CONTENTS THEREOF.
+
+
The name and trademarks of the copyright holders or the Eclipse
+ Foundation may NOT be used in advertising or publicity pertaining to
+ this document or its contents without specific, written prior
+ permission. Title to copyright in this document will at all times
+ remain with copyright holders.
The help page provides an introduction to the scope and syntax of JavaDoc search.
+
You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.
+
The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.
+link
+
+
+
+
+
Loading search index...
+
+
+
+
+
+
+
+
+
+
diff --git a/restful-ws/4.0/apidocs/search.js b/restful-ws/4.0/apidocs/search.js
new file mode 100644
index 0000000000..d3986705ef
--- /dev/null
+++ b/restful-ws/4.0/apidocs/search.js
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+"use strict";
+const messages = {
+ enterTerm: "Enter a search term",
+ noResult: "No results found",
+ oneResult: "Found one result",
+ manyResults: "Found {0} results",
+ loading: "Loading search index...",
+ searching: "Searching...",
+ redirecting: "Redirecting to first result...",
+ linkIcon: "Link icon",
+ linkToSection: "Link to this section"
+}
+const categories = {
+ modules: "Modules",
+ packages: "Packages",
+ types: "Classes and Interfaces",
+ members: "Members",
+ searchTags: "Search Tags"
+};
+const highlight = "$&";
+const NO_MATCH = {};
+const MAX_RESULTS = 300;
+function checkUnnamed(name, separator) {
+ return name === "" || !name ? "" : name + separator;
+}
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(str, boundaries, from, to) {
+ var start = from;
+ var text = "";
+ for (var i = 0; i < boundaries.length; i += 2) {
+ var b0 = boundaries[i];
+ var b1 = boundaries[i + 1];
+ if (b0 >= to || b1 <= from) {
+ continue;
+ }
+ text += escapeHtml(str.slice(start, Math.max(start, b0)));
+ text += "";
+ text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1)));
+ text += "";
+ start = Math.min(to, b1);
+ }
+ text += escapeHtml(str.slice(start, to));
+ return text;
+}
+function getURLPrefix(item, category) {
+ var urlPrefix = "";
+ var slash = "/";
+ if (category === "modules") {
+ return item.l + slash;
+ } else if (category === "packages" && item.m) {
+ return item.m + slash;
+ } else if (category === "types" || category === "members") {
+ if (item.m) {
+ urlPrefix = item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, it) {
+ if (it.m && item.p === it.l) {
+ urlPrefix = it.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function getURL(item, category) {
+ if (item.url) {
+ return item.url;
+ }
+ var url = getURLPrefix(item, category);
+ if (category === "modules") {
+ url += "module-summary.html";
+ } else if (category === "packages") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (category === "types") {
+ if (item.u) {
+ url = item.u;
+ } else {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html";
+ }
+ } else if (category === "members") {
+ url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#";
+ if (item.u) {
+ url += item.u;
+ } else {
+ url += item.l;
+ }
+ } else if (category === "searchTags") {
+ url += item.u;
+ }
+ item.url = url;
+ return url;
+}
+function createMatcher(term, camelCase) {
+ if (camelCase && !isUpperCase(term)) {
+ return null; // no need for camel-case matcher for lower case query
+ }
+ var pattern = "";
+ var upperCase = [];
+ term.trim().split(/\s+/).forEach(function(w, index, array) {
+ var tokens = w.split(/(?=[A-Z,.()<>?[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ // ',' and '?' are the only delimiters commonly followed by space in java signatures
+ pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")";
+ upperCase.push(false);
+ var isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ if (i === tokens.length - 1 && index < array.length - 1) {
+ // space in query string matches all delimiters
+ pattern += "(.*?)";
+ upperCase.push(isUpperCase(s[0]));
+ } else {
+ if (!camelCase && isUpperCase(s) && s.length === 1) {
+ pattern += "()";
+ } else {
+ pattern += "([a-z0-9$<>?[\\]]*?)";
+ }
+ upperCase.push(isUpperCase(s[0]));
+ }
+ } else {
+ pattern += "()";
+ upperCase.push(false);
+ }
+ }
+ });
+ var re = new RegExp(pattern, "gi");
+ re.upperCase = upperCase;
+ return re;
+}
+function findMatch(matcher, input, startOfName, endOfName) {
+ var from = startOfName;
+ matcher.lastIndex = from;
+ var match = matcher.exec(input);
+ // Expand search area until we get a valid result or reach the beginning of the string
+ while (!match || match.index + match[0].length < startOfName || endOfName < match.index) {
+ if (from === 0) {
+ return NO_MATCH;
+ }
+ from = input.lastIndexOf(".", from - 2) + 1;
+ matcher.lastIndex = from;
+ match = matcher.exec(input);
+ }
+ var boundaries = [];
+ var matchEnd = match.index + match[0].length;
+ var score = 5;
+ var start = match.index;
+ var prevEnd = -1;
+ for (var i = 1; i < match.length; i += 2) {
+ var isUpper = isUpperCase(input[start]);
+ var isMatcherUpper = matcher.upperCase[i];
+ // capturing groups come in pairs, match and non-match
+ boundaries.push(start, start + match[i].length);
+ // make sure groups are anchored on a left word boundary
+ var prevChar = input[start - 1] || "";
+ var nextChar = input[start + 1] || "";
+ if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) {
+ if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) {
+ score -= 0.1;
+ } else if (isMatcherUpper && start === prevEnd) {
+ score -= isUpper ? 0.1 : 1.0;
+ } else {
+ return NO_MATCH;
+ }
+ }
+ prevEnd = start + match[i].length;
+ start += match[i].length + match[i + 1].length;
+
+ // lower score for parts of the name that are missing
+ if (match[i + 1] && prevEnd < endOfName) {
+ score -= rateNoise(match[i + 1]);
+ }
+ }
+ // lower score if a type name contains unmatched camel-case parts
+ if (input[matchEnd - 1] !== "." && endOfName > matchEnd)
+ score -= rateNoise(input.slice(matchEnd, endOfName));
+ score -= rateNoise(input.slice(0, Math.max(startOfName, match.index)));
+
+ if (score <= 0) {
+ return NO_MATCH;
+ }
+ return {
+ input: input,
+ score: score,
+ boundaries: boundaries
+ };
+}
+function isUpperCase(s) {
+ return s !== s.toLowerCase();
+}
+function isLowerCase(s) {
+ return s !== s.toUpperCase();
+}
+function rateNoise(str) {
+ return (str.match(/([.(])/g) || []).length / 5
+ + (str.match(/([A-Z]+)/g) || []).length / 10
+ + str.length / 20;
+}
+function doSearch(request, response) {
+ var term = request.term.trim();
+ var maxResults = request.maxResults || MAX_RESULTS;
+ if (term.length === 0) {
+ return this.close();
+ }
+ var matcher = {
+ plainMatcher: createMatcher(term, false),
+ camelCaseMatcher: createMatcher(term, true)
+ }
+ var indexLoaded = indexFilesLoaded();
+
+ function getPrefix(item, category) {
+ switch (category) {
+ case "packages":
+ return checkUnnamed(item.m, "/");
+ case "types":
+ return checkUnnamed(item.p, ".");
+ case "members":
+ return checkUnnamed(item.p, ".") + item.c + ".";
+ default:
+ return "";
+ }
+ }
+ function useQualifiedName(category) {
+ switch (category) {
+ case "packages":
+ return /[\s/]/.test(term);
+ case "types":
+ case "members":
+ return /[\s.]/.test(term);
+ default:
+ return false;
+ }
+ }
+ function searchIndex(indexArray, category) {
+ var matches = [];
+ if (!indexArray) {
+ if (!indexLoaded) {
+ matches.push({ l: messages.loading, category: category });
+ }
+ return matches;
+ }
+ $.each(indexArray, function (i, item) {
+ var prefix = getPrefix(item, category);
+ var simpleName = item.l;
+ var qualifiedName = prefix + simpleName;
+ var useQualified = useQualifiedName(category);
+ var input = useQualified ? qualifiedName : simpleName;
+ var startOfName = useQualified ? prefix.length : 0;
+ var endOfName = category === "members" && input.indexOf("(", startOfName) > -1
+ ? input.indexOf("(", startOfName) : input.length;
+ var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName);
+ if (m === NO_MATCH && matcher.camelCaseMatcher) {
+ m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName);
+ }
+ if (m !== NO_MATCH) {
+ m.indexItem = item;
+ m.prefix = prefix;
+ m.category = category;
+ if (!useQualified) {
+ m.input = qualifiedName;
+ m.boundaries = m.boundaries.map(function(b) {
+ return b + prefix.length;
+ });
+ }
+ matches.push(m);
+ }
+ return true;
+ });
+ return matches.sort(function(e1, e2) {
+ return e2.score - e1.score;
+ }).slice(0, maxResults);
+ }
+
+ var result = searchIndex(moduleSearchIndex, "modules")
+ .concat(searchIndex(packageSearchIndex, "packages"))
+ .concat(searchIndex(typeSearchIndex, "types"))
+ .concat(searchIndex(memberSearchIndex, "members"))
+ .concat(searchIndex(tagSearchIndex, "searchTags"));
+
+ if (!indexLoaded) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+// JQuery search menu implementation
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> .result-item");
+ // workaround for search result scrolling
+ this.menu._scrollIntoView = function _scrollIntoView( item ) {
+ var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+ if ( this._hasScroll() ) {
+ borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+ paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+ offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+ scroll = this.activeMenu.scrollTop();
+ elementHeight = this.activeMenu.height() - 26;
+ itemHeight = item.outerHeight();
+
+ if ( offset < 0 ) {
+ this.activeMenu.scrollTop( scroll + offset );
+ } else if ( offset + itemHeight > elementHeight ) {
+ this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+ }
+ }
+ };
+ },
+ _renderMenu: function(ul, items) {
+ var currentCategory = "";
+ var widget = this;
+ widget.menu.bindings = $();
+ $.each(items, function(index, item) {
+ if (item.category && item.category !== currentCategory) {
+ ul.append("