-
Type: Improvement
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 5.3 GA
-
Fix Version/s: 5.3.1
-
Component/s: None
-
Upgrade notes:
Use the JAX-RS Application logic to deploy jAX-RS applications.
This way any pure JAX-RS application can be deployed in Nuxeo.
Also, it deprecates the resteasy adapter since using the jax-rs deployment model you can deploy webengine modules and JAX-RS apps on any jax-rs backend without the need of an adapter.
Specific resteasy adapter feaures like guard and tx annotations on methods will be lost (anyway for now these features are not used by WE modules)
Per resource tx annotation will be possible to be implemented later in a portable way using @TransactionAttribute on resource class.
Also, the hot reloading mechanism will be deprecated (no more usable) since it requires full control over the JAX-RS engine which is not portable between backends. A new hot reload mechanism will be provided - with less granularity on the scope of the reload than the former one - so it will redeploy all modules (and not only the one that changed) - but more portable.
The hot reload will be available only for jersey (at least in a first step)
The task will be done in several steps:
1. cleanup/prepare existing code to the JAX-RS deployment model.
2. Implement JAX-RS deployment
3. Modify webengine-base to use the JAX-RS application deployment model.
3. Deprecate resteasy adapter and switch to jersey which will become the default backend (since it is closer to the specs than resteasy, solves some important bugs existing on resteasy and also provides nice features like the possibility to plug-in IOC engines like guice)
4. Update existing JAX-RS code that use the old and dirty way of declaring root resources or body message reader/writers (though static blocks) to switch to new deployment model.
5. As the hot reloading mechanism will be deprecated a new one will be added that works with jersey.
6. switch to jersey
5. Update eclipse plugins to use the new reload mechanism. (notification will change)
Note that regular WebEngine modules are not affected since they are completely managed by webengine ...