Skip to content

Commit

Permalink
[WFLY-13412]:Add/change the content for the new feature process
Browse files Browse the repository at this point in the history
  • Loading branch information
jimma committed Nov 18, 2024
1 parent 3df60ab commit f3153ef
Showing 1 changed file with 72 additions and 18 deletions.
90 changes: 72 additions & 18 deletions jaxrs/WFLY-13122_EAP7-1494_Add_Json_Merge_Patch_support.adoc
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
---
categories:
- jaxrs
stability-level: default
issue: https://github.com/wildfly/wildfly-proposals/issues/664
feature-team:
developer: ema
sme:
- ema
outside-perspective:
-
promotes:
promoted-by:
---
= Add Json Merge Patch support
:author: Jim Ma
:email: [email protected]
Expand All @@ -20,6 +34,10 @@ when the context parameter `resteasy.patchfilter.legacy=true` is set.
The JSON merge patch functionality in Resteasy can be completely disabled by setting the context parameter `resteasy.patchfilter.disabled=true`.
When this parameter is enabled, any JSON merge patch requests will be ignored.

=== User Stories

When user want to merge a JSON object to the target JSON object by specifying the merge part the user wants to make, instead of providing the full updated version of the json content.

== Issue Metadata

=== Issue
Expand All @@ -31,39 +49,75 @@ When this parameter is enabled, any JSON merge patch requests will be ignored.

* {issue-base-url}/RESTEASY-2567 [RESTEASY-2567]

=== Dev Contacts
=== Affected Projects or Components

* mailto:ema@redhat.com[Jim Ma]
- https://github.com/resteasy/resteasy[resteasy]

=== QE Contacts
=== Other Interested Projects

* mailto:[email protected][Jan Kasik]
=== Relevant Installation Types

=== Testing By
* Traditional standalone server (unzipped or provisioned by Galleon)
* OpenShift Source-to-Image (S2I)
* Bootable jar

[ ] Engineering
== Requirements

[x] QE
=== Hard Requirements

=== Affected Projects or Components
* RESTEasy includes this feature support and is installed in WFLY/EAP
* The PatchMethodFilter is enabled (not explicitly set resteasy.patchfilter.disabled to true)

* RESTEasy, Wildfly
=== Non-Requirements

=== Other Interested Projects
https://tools.ietf.org/html/rfc7386
This is feature is added in current the resteasy artifact, there is no need to add or enable other module or module dependency
for this feature.

== Requirements
=== Future Work

=== Hard Requirements
== Backwards Compatibility

* RESTEasy includes this feature support and is installed in WFLY/EAP
* The PatchMethodFilter is enabled (not explicitly set resteasy.patchfilter.disabled to true)
This is new feature added. There is no backward compatible issue.

=== Default Configuration

No WFLY configuration change is needed.

=== Importing Existing Configuration

There is no migration issue for this new added feature.

=== Deployments

No behavior change of deployments in incompatible ways.

=== Interoperability

No interoperability issue.


== Admin Clients

There is no admin client needed to manipulate this feature or behavior of this feature.

== Security Considerations

This feature won't impact security.

== Test Plan
** Community
There are already tests in resteasy community project and these tests and resources can be reused or changed
for other purpose:
https://github.com/resteasy/resteasy/blob/main/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/resource/patch/StudentJsonMergePatchTest.java[Tests],

The feature is tested in RESTEasy codebase. It can be checked with running the latest RESTEasy release
testsuite against target WildFly container.
*** Manual tests: The above test can be checked manually by running resteasy test with 'mvn clean install -Dtest=StudentJsonMergePatchTest '
*** Miscellaneous checks:To check server performance, we can compare this test with the test to update all json content
With same threads and same amount of requests to compare the sever response time.
*** Integration tests - This test is an integration test and can be still kept in resteasy project to check as the CI run this test against WFLY upstream SNAPSHOT version every day.

== Community Documentation
This feature documentation in Reteasy project : https://docs.resteasy.dev/6.2/userguide/#_json_patch_and_json_merge_patch
This can be imported or rephrased in WFLY documentation.

The RESTEasy user guide has the section "JSON Patch and JSON Merge Patch" to explain the usage.
== Release Note Content
Jons Merget patch feature - This feature allows the client to send a json http request with Content-Type "application/merge-patch+json", and the json merge request will be directly merge to the target resource.

0 comments on commit f3153ef

Please sign in to comment.