I might be late to the party. Now we are fixing the TechDebt by migrating application from Weblogic 11G to 12C. As part of it we had to change from Jersey 1.19 to Jersey 2.26(as 12C supports it) which in turn requires us to move to Jackson 2.9.6 from Jackson 1.9.2(guessing) internally. Also I've migrated Javaee-api from 6.0 to 7.0. It is an EJB application with LOCAL implementation.
P.s.: Same Request/Response POJO is used for JSON and SOAP services with @XmlRootElement annotation
Now we are started seeing the difference between 11G and 12C responses like the few below,
- "true" -> true
- "2" -> 2
- { "list1" : [ { "foo": "bar",..}, {"foo1": "bar1",..}] } -> [ {"type": "list1", "foo": "bar"..}, {"type": "list1", "foo1": "bar1",..}
- Getting null valued key fields after migrated whereas it wasn't coming earlier
- etc.
Is there any documentation about what are all such changes(complete set of changes) has been introduced and its respective fixes? I couldn't find any such documentation out of the internet.
Most of the response changes that are introduced in Jersey 2 seems logical only. However we have to match the 11G response to avoid downstream impact. So we are trying to google the individual issues and fixing it with Serialization/Deserialization.Feature or by adding custom serializer or by adding JsonGenerator according to the suggestion.
As my application is vast and can't test it end to end with each REST endpoints(due to Business SME unavailability), we have to handle all corner cases without escaping any scenarios. So if I have the documentation or the list of changes I can go and find the occurrences in the code and address those.