{"action":"created","issue":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/271","repository_url":"https://api.github.com/repos/katharsis-project/katharsis-framework","labels_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/271/labels{/name}","comments_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/271/comments","events_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/271/events","html_url":"https://github.com/katharsis-project/katharsis-framework/pull/271","id":197029647,"number":271,"title":"#269 Serialization refactoring","user":{"login":"remmeier","id":8008853,"avatar_url":"https://avatars.githubusercontent.com/u/8008853?v=3","gravatar_id":"","url":"https://api.github.com/users/remmeier","html_url":"https://github.com/remmeier","followers_url":"https://api.github.com/users/remmeier/followers","following_url":"https://api.github.com/users/remmeier/following{/other_user}","gists_url":"https://api.github.com/users/remmeier/gists{/gist_id}","starred_url":"https://api.github.com/users/remmeier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/remmeier/subscriptions","organizations_url":"https://api.github.com/users/remmeier/orgs","repos_url":"https://api.github.com/users/remmeier/repos","events_url":"https://api.github.com/users/remmeier/events{/privacy}","received_events_url":"https://api.github.com/users/remmeier/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":15,"created_at":"2016-12-21T20:50:03Z","updated_at":"2016-12-31T21:32:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/pulls/271","html_url":"https://github.com/katharsis-project/katharsis-framework/pull/271","diff_url":"https://github.com/katharsis-project/katharsis-framework/pull/271.diff","patch_url":"https://github.com/katharsis-project/katharsis-framework/pull/271.patch"},"body":"fixes the broken PATCH supper in JPA repositories. The original problem was caused due to the fairly fragile use of managed/detached entities. This was necessary since the Katharsis inclusion mechanism updated the entities (IncludeLookupSetter). There was no reasonable solutation besides changing that.  Which in turn made a cleanup up the serialization handling necessary (which was long overdue anyway).\r\n\r\nPlenty of classes changed due to the large impact of the serialization. Most of it just some api in changes to the test cases. The important part (for the review) are the new Document, Resource, ResourceIdentifier, Relationship classes and the DocumentMapper class. They make up the new serialization mechanism. The controllers use the DocumentMapper to setup a Document, representing a response. This is then serialized with Jackson.\r\n\r\nActual serialization with Jackson is now trivial. Mostly the plain Document and related classes with some annotations are sufficient to handle the serialization. All the previous logic has moved into the more readable DocumentMapper.  \r\n\r\nThe inclusion is updated accordingly. All the logic contained in IncludeLookupSetter. It is now longer spread between the IncludeLookupSetter, the Extractor and the serializers, which in turn should make it more understandable.\r\n\r\nThe only breaking change is in the Filter API which is now able to modify the Document instead of the JSON API response. Nevertheless to do the size of the change, the next version should be 3.0 together with the cleaned up packaging structure.\r\n\r\nIn general the refactoring makes the controller and serialization layer easier, more understandable. and testable. It should also ease future extensions. All existing tests pass. Some more should be written. "},"comment":{"url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/comments/269882630","html_url":"https://github.com/katharsis-project/katharsis-framework/pull/271#issuecomment-269882630","issue_url":"https://api.github.com/repos/katharsis-project/katharsis-framework/issues/271","id":269882630,"user":{"login":"chb0github","id":1476816,"avatar_url":"https://avatars.githubusercontent.com/u/1476816?v=3","gravatar_id":"","url":"https://api.github.com/users/chb0github","html_url":"https://github.com/chb0github","followers_url":"https://api.github.com/users/chb0github/followers","following_url":"https://api.github.com/users/chb0github/following{/other_user}","gists_url":"https://api.github.com/users/chb0github/gists{/gist_id}","starred_url":"https://api.github.com/users/chb0github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chb0github/subscriptions","organizations_url":"https://api.github.com/users/chb0github/orgs","repos_url":"https://api.github.com/users/chb0github/repos","events_url":"https://api.github.com/users/chb0github/events{/privacy}","received_events_url":"https://api.github.com/users/chb0github/received_events","type":"User","site_admin":false},"created_at":"2016-12-31T21:32:39Z","updated_at":"2016-12-31T21:32:39Z","body":"@remmeier -- submit your PR to master not develop. I can then merge into master and build. If this breaks anything at least it's contained in 1 version that can be rolled back"}}
{"actor":{"display_login":"chb0github"}}