The RESTful Web Services module enables support for exposing JAX-RS 2.0 compliant RESTful web services in OSGi via integration of OSGi JAX-RS Connector 5.0 publisher and Jersey 2.22 JAX-RS RESTful container supporting JSR 311: JAX-RS: The Java API for RESTful Web Services and JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services. Resource representations are transferred in JSON format as specified in RFC 4627: The application/json Media Type for JSON. Support for typed and untyped serialization and deserialization of a wide variety of Java types to and from JSON is enabled via integration of Jackson 2.8.9 JAX-RS provider or the Gson 2.8.0 provider. Support for securing and controlling the access to exposed resources is enabled via integration with Policy Admin, remote clients can be associated with an identity based on the remote user in the HTTP session and access to resources can be controlled via a policy defined for that identity. The REST Events push bundle enables support for remote events subscribing in a RESTful manner and receiving notifications for them via Web Sockets. The REST Events Pull bundle enables support for remote events subscribing in a RESTful manner and receiving notifications for them via long polling. Support for securing and controlling the access to events is enabled via integration with Policy Admin, remote events subscriptions can be associated with an identity based on the remote user in the HTTP session and access to events can be controlled via a policy defined for that identity. |
|
Feature Set
The REST module provides the following features and functionalities:
Known Issues and Limitations
The REST module has the following limitations:
Module Dependencies
All components of the RESTful Web Services module run within the OSGi Framework and use basic OSGi packages and services provided by Core module (OSGi Core including extensions) and OSGi modules (OSGi Compendium including extensions). The components which enable security for RESTful web services and remote events rely on integration with Policy Admin module. The components for remote events support via web sockets depend on the OSGi remote events web socket application which is provided by the Websockets module.
Third Party
The RESTful Web Services module depends on certain javax* and org* packages that may not be available in the Java execution environment, thus all required javax.xml.bind*, org.xml*, org.w3c*, javax.ws.rs*, javax.annotation*, javax.activation*, javax.servlet* packages that are defined within a certain JSR are packed as OSGi bundles and provided by the Externals module. All packages are imported and exported without specifying a version – version reasoning is based on OSGi contracts. A set of contracts for the JSR specifications are defined by the OSGi Alliance in the Portable Java Contract Definitions document. The contracts defined are versioned according to the corresponding JSR specification version. Bundles in RESTful Web Services module act as clients of contracts and import the packages required with no version and express a dependency on the OSGi contract that defines the packages and the exact specification version required. Bundles in Externals module act as providers of contracts and express every version of the contract they support. Consequently, the client bundle is only tied to the specification version and each provider of the contract is free to continue using their chosen versioning strategy.
The RESTful Web Services module depends on the following contract providers from the Externals module:
The RESTful Web Services module depends on the following additional bundles from the Externals module:
The REST container does not use boot delegation for the required classes, if they are provided by the Externals bundles, for the following packages:
If they are provided with the JVM, the REST container uses boot delegation.
Licensing Information