{"action":"created","issue":{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/1221","labels_url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/1221/labels{/name}","comments_url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/1221/comments","events_url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/1221/events","html_url":"https://github.com/BroadleafCommerce/BroadleafCommerce/pull/1221","id":54290464,"number":1221,"title":"Remove Jersey and replace the REST services implementation with Spring MVC","user":{"login":"phillipuniverse","id":684275,"avatar_url":"https://avatars.githubusercontent.com/u/684275?v=3","gravatar_id":"","url":"https://api.github.com/users/phillipuniverse","html_url":"https://github.com/phillipuniverse","followers_url":"https://api.github.com/users/phillipuniverse/followers","following_url":"https://api.github.com/users/phillipuniverse/following{/other_user}","gists_url":"https://api.github.com/users/phillipuniverse/gists{/gist_id}","starred_url":"https://api.github.com/users/phillipuniverse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phillipuniverse/subscriptions","organizations_url":"https://api.github.com/users/phillipuniverse/orgs","repos_url":"https://api.github.com/users/phillipuniverse/repos","events_url":"https://api.github.com/users/phillipuniverse/events{/privacy}","received_events_url":"https://api.github.com/users/phillipuniverse/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/labels/difficulty-medium","name":"difficulty-medium","color":"207de5"},{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/labels/module-rest","name":"module-rest","color":"207de5"},{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/labels/requires-migration","name":"requires-migration","color":"eb6420"},{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/labels/type-feature","name":"type-feature","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"ckittrell","id":7906399,"avatar_url":"https://avatars.githubusercontent.com/u/7906399?v=3","gravatar_id":"","url":"https://api.github.com/users/ckittrell","html_url":"https://github.com/ckittrell","followers_url":"https://api.github.com/users/ckittrell/followers","following_url":"https://api.github.com/users/ckittrell/following{/other_user}","gists_url":"https://api.github.com/users/ckittrell/gists{/gist_id}","starred_url":"https://api.github.com/users/ckittrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckittrell/subscriptions","organizations_url":"https://api.github.com/users/ckittrell/orgs","repos_url":"https://api.github.com/users/ckittrell/repos","events_url":"https://api.github.com/users/ckittrell/events{/privacy}","received_events_url":"https://api.github.com/users/ckittrell/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/milestones/23","labels_url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/milestones/23/labels","id":563246,"number":23,"title":"3.2.0-GA","description":"","creator":{"login":"phillipuniverse","id":684275,"avatar_url":"https://avatars.githubusercontent.com/u/684275?v=3","gravatar_id":"","url":"https://api.github.com/users/phillipuniverse","html_url":"https://github.com/phillipuniverse","followers_url":"https://api.github.com/users/phillipuniverse/followers","following_url":"https://api.github.com/users/phillipuniverse/following{/other_user}","gists_url":"https://api.github.com/users/phillipuniverse/gists{/gist_id}","starred_url":"https://api.github.com/users/phillipuniverse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phillipuniverse/subscriptions","organizations_url":"https://api.github.com/users/phillipuniverse/orgs","repos_url":"https://api.github.com/users/phillipuniverse/repos","events_url":"https://api.github.com/users/phillipuniverse/events{/privacy}","received_events_url":"https://api.github.com/users/phillipuniverse/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":108,"state":"open","created_at":"2014-02-08T22:10:33Z","updated_at":"2015-01-19T19:30:05Z","due_on":"2014-12-13T06:00:00Z","closed_at":null},"comments":10,"created_at":"2015-01-14T06:55:34Z","updated_at":"2015-01-21T00:05:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/pulls/1221","html_url":"https://github.com/BroadleafCommerce/BroadleafCommerce/pull/1221","diff_url":"https://github.com/BroadleafCommerce/BroadleafCommerce/pull/1221.diff","patch_url":"https://github.com/BroadleafCommerce/BroadleafCommerce/pull/1221.patch"},"body":"Currently, Broadleaf uses JAXRS via Jersey for our out-of-the-box REST endpoints. There are a few reasons behind this move:\r\n\r\n- There is a potential for version collisions with JEE servers that use a different version of JAXRS\r\n- Dubious (at best) continued support for JAXRS endpoints to work with Spring's dependency injection. As an example, the latest version of Jersey (2.x) does not have out of the box support for Spring injection. Some have had mixed luck with trying to make the Jersey 1.x support for Spring work with Jersey 2.x\r\n- Simplifies learning curves for people that are new to Broadleaf and/or new to Java development as everything will now be Spring MVC\r\n\r\nThat said, this issue should also encapsulate work towards our APIs still being able to function with Jersey, should a user decide to continue to use the old APIs (Broadleaf 3.1 and below) or simply override our implementations.\r\n\r\nSome helpful links:\r\n\r\n- https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring\r\n- http://stackoverflow.com/questions/11492325/post-json-fails-with-415-unsupported-media-type-spring-3-mvc"},"comment":{"url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/comments/70760520","html_url":"https://github.com/BroadleafCommerce/BroadleafCommerce/pull/1221#issuecomment-70760520","issue_url":"https://api.github.com/repos/BroadleafCommerce/BroadleafCommerce/issues/1221","id":70760520,"user":{"login":"phillipuniverse","id":684275,"avatar_url":"https://avatars.githubusercontent.com/u/684275?v=3","gravatar_id":"","url":"https://api.github.com/users/phillipuniverse","html_url":"https://github.com/phillipuniverse","followers_url":"https://api.github.com/users/phillipuniverse/followers","following_url":"https://api.github.com/users/phillipuniverse/following{/other_user}","gists_url":"https://api.github.com/users/phillipuniverse/gists{/gist_id}","starred_url":"https://api.github.com/users/phillipuniverse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phillipuniverse/subscriptions","organizations_url":"https://api.github.com/users/phillipuniverse/orgs","repos_url":"https://api.github.com/users/phillipuniverse/repos","events_url":"https://api.github.com/users/phillipuniverse/events{/privacy}","received_events_url":"https://api.github.com/users/phillipuniverse/received_events","type":"User","site_admin":false},"created_at":"2015-01-21T00:05:33Z","updated_at":"2015-01-21T00:05:33Z","body":"FYI, @brundonsmith and I verified that the old REST services defaulted to JSON output as well. The only way to change it to XML is to add the header `Accept: application/xml`. Even if you use `Content-Type: application/xml` and leave off the `Accept` header you will still get JSON output.\r\n\r\nAs confirmed by @ckittrell, the Spring version of the REST services behaves the same way so I think we're good from a backwards-compatibility standpoint."}}