Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WFLY-14559: Updated WFLY-14559_Add_six_new_RESTEasy_context_parameter… #562

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 157 additions & 0 deletions jaxrs/WFLY-14559_Add_six_new_RESTEasy_context_parameters.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
categories:
- cli
- console
- jaxrs
- management
- microprofile
---

== WFLY-14559 Add six new RESTEasy context parameters
:author: Ron Sigal
:email: [email protected]
:toc: left
:icons: font
:keywords: comma,separated,tags
:idprefix:
:idseparator: -

== Overview

Since the RESTEasy context parameters were first exposed in the wildfly/jaxrs management model
(https://github.com/wildfly/wildfly-proposals/blob/main/jaxrs/WFLY-12298_Change_RESTEASY_settings.adoc),
several new parameters have been introduced, of which the following should be exposed to the user:

* resteasy.match.cache.enabled: [RESTEASY-2646]
* resteasy.match.cache.size: [RESTEASY-2646]
* resteasy.original.webapplicationexception.behavior: [RESTEASY-2782]
* resteasy.patch.filter.disabled: [RESTEASY-2280]
* resteasy.patch.filter.legacy: [RESTEASY-2849]
* resteasy.proxy.implement.all.interfaces: [RESTEASY-2866]

The wildfly/jaxrs module should be extended to expose these new parameters.

[Note. RESTEasy uses '.' as a separator in parameter names. wildfly/jaxrs uses '-'.

== Issue Metadata

=== Issue:

* https://issues.redhat.com/browse/WFLY-14559[WFLY-14559]

=== Related Issues:

* https://issues.redhat.com/browse/EAP7-1655[EAP7-1655]
* https://issues.redhat.com/browse/RESTEASY-2280[RESTEASY-2280]
* https://issues.redhat.com/browse/RESTEASY-2646[RESTEASY-2646]
* https://issues.redhat.com/browse/RESTEASY-2782[RESTEASY-2782]
* https://issues.redhat.com/browse/RESTEASY-2849[RESTEASY-2849]
* https://issues.redhat.com/browse/RESTEASY-2866[RESTEASY-2866]

=== Stability Level
// Choose the planned stability level for the proposed functionality
* [ ] Experimental

* [ ] Preview

* [ ] Community

* [x] default

=== Dev Contacts:

* mailto:[email protected][Ron Sigal]

=== QE Contacts:

Jan Blizňák

=== Testing By

* [x] Engineering

* [ ] QE

=== Affected Projects or Components:

* WildFly
* RESTEasy

=== Relevant Installation Types

* [x] Traditional standalone server (unzipped or provisioned by Galleon)

* [x] Managed domain

* [x] OpenShift s2i

* [x] Bootable jar

== Requirements

=== Hard Requirements

* Some simple modifications to the wildfly/jaxrs module will be necessary to add these new parameters.
* This affects the web interface.

=== Future Work

We have discussed omitting the initial "resteasy-" from the parameter names such as "resteasy-match-cache-enabled".
One option would be to have two versions for each parameter, one with and one without "resteasy-".

== Backwards Compatibility

The new parameters won't affect the handling of the existing parameters. There shouldn't be any backwards
compatibility issues.

== Security Considerations

This update shouldn't introduce any new security considerations.

=== Test Plan

The proper behavior of the existing parameters is already tested in RESTEasy, as follows:

* resteasy.match.cache.enabled, resteasy.match.cache.size:

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/resteasy-core/src/test/java/org/jboss/resteasy/core/registry/RootNodeCacheSizeTest.java

* resteasy.original.webapplicationexception.behavior:

* https://github.com/resteasy/resteasy-microprofile/blob/2.1.5.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/microprofile/test/client/exception/ClientWebApplicationExceptionMicroProfileProxyTest.java

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/client/exception/ClientWebApplicationExceptionResteasyProxyTest.java

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/client/exception/ClientWebApplicationExceptionTest.java

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/exception/ClosedResponseHandlingTest.java

* resteasy.patch.filter.disabled, resteasy.patch.filter.legacy:

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/resource/patch/StudentPatchTest.java

* resteasy.proxy.implement.all.interfaces:

* https://github.com/resteasy/resteasy/blob/6.2.7.Final/resteasy-core/src/test/java/org/jboss/resteasy/core/ContextParameterInjectionTest.java
* https://github.com/resteasy/resteasy/blob/6.2.7.Final/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/contextProxyInterfaces/ContextProxyInterfacesTest.java

As for the treatment of the corresponding parameters in WildFly, the tests in wildfly/jaxrs and wildfly/testsuite/integration/basic just have
to be extended.

== Community Documentation

The new context parameters are discussed in the RESTEasy User Guide
(https://docs.jboss.org/resteasy/docs/6.2.7.Final/userguide/html/ch03.html#configuration_switches),

The jaxrs management model is discussed in

* in the WildFly Admin Guide
(https://github.com/wildfly/wildfly/blob/main/docs/src/main/asciidoc/_admin-guide/subsystem-configuration/Jakarta_RESTful_Web_Services.adoc).

Nothing new is required.

== Release Note Content

"Since the RESTEasy context parameters were first exposed in the wildfly/jaxrs management model,
several new parameters have been introduced which should be exposed to the user."