Bug 1094937
Summary: | [WFK] (6.4.0) Jackson libraries are Private but should be Public | ||
---|---|---|---|
Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Joshua Wilson <jowilson> |
Component: | RESTEasy | Assignee: | Marek Novotny <mnovotny> |
Status: | CLOSED WONTFIX | QA Contact: | Katerina Odabasi <kanovotn> |
Severity: | urgent | Docs Contact: | Russell Dickenson <rdickens> |
Priority: | unspecified | ||
Version: | 6.3.0 | CC: | cdewolf, kkhan, maschmid, mnovotny, sgilda, vpereira |
Target Milestone: | DR8 | ||
Target Release: | EAP 6.4.0 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2014-11-25 16:18:42 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Joshua Wilson
2014-05-06 17:23:55 UTC
This following quickstart uses this API, meaning customers may use it too. The sooner the API is made public, the better. https://github.com/jboss-developer/jboss-wfk-quickstarts/tree/2.6.x-develop/contacts-mobile-basic Can you please provide some more details on the usual usecase of needing access to those libraries? Sure, when adding a date (not a timestamp) in HTML/JavaScript and persisting it in a database over a REST API (we are using RESTEasy) the date gets turned into a timestamp and the date then gets shifted depending on the users timezone. To fix this we need to create a Jackson config Provider. This requires these classes. If we use external references then the Provider gets confused because there are now 2 of them and the fix does not work. So we either need these private modules made public or we need to use libraries from Maven Central. We can not mix the two. This can be seen in the code that Sande reference above. To add to Joshua's comment, the typical use case is to access Jackson APIs like ObjectMapper in a Java EE application; this could be for various reasons like: * configuring the ObjectMapper for customizing serialization behavior like choosing the date format, omitting null properties in JSON etc., * adding custom JSON serializers and deserializers using Jackson APIs (JsonSerializer and JsonDeserializer); the MessageBodyReader and MessageBodyWriter APIs from JAX-RS 1.1 are limited in this case, since we still need to use a JSON library like Jackson to serialize to JSON). * and, if I recall correctly, referencing Jackson annotations like @JsonIgnore in a Java EE 6 app, requires adding the jackson-core-asl module to the deployment. All of these would require declaring a dependency on the Jackson modules - jackson-core-asl, jackson-mapper-asl. I'm not sure if the jackson-jaxrs and jackson-xc modules should be public, but I'd assume there would be usecases where users may write classes that extend the classes within them, in their apps. we also asked Bill Burke and he wrote: <citation> jackson modules aren't private. If they are, then their module.xml definition should be changed. </citation> This should be EAP source code changes. Assigning it to Stuart. I created PR for WF and it is now merged into master. So could anybody ack it for EAP 6.3.x too? Following discussions on the PM call, it was decided that these modules should not be made public. Instead users wanting to do things like in https://github.com/jboss-developer/jboss-wfk-quickstarts/blob/2.7.x-develop/contacts-mobile-basic/src/main/java/org/jboss/quickstarts/wfk/util/JacksonConfig.java will see the warning, but a KB entry will be created to outline in what cases this is ok. PR https://github.com/jbossas/jboss-eap/pull/1876 reverts the original https://github.com/jbossas/jboss-eap/pull/1815. Closing, see comment #11 Bartosz Baranowski <bbaranow> updated the status of jira JBEAP-65 to Closed |