{"action":"created","issue":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2329","labels_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2329/labels{/name}","comments_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2329/comments","events_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2329/events","html_url":"https://github.com/ceylon/ceylon-compiler/issues/2329","id":109400361,"number":2329,"title":"introduce java.io.Serializable to all Ceylon classes","user":{"login":"gavinking","id":579974,"avatar_url":"https://avatars.githubusercontent.com/u/579974?v=3","gravatar_id":"","url":"https://api.github.com/users/gavinking","html_url":"https://github.com/gavinking","followers_url":"https://api.github.com/users/gavinking/followers","following_url":"https://api.github.com/users/gavinking/following{/other_user}","gists_url":"https://api.github.com/users/gavinking/gists{/gist_id}","starred_url":"https://api.github.com/users/gavinking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavinking/subscriptions","organizations_url":"https://api.github.com/users/gavinking/orgs","repos_url":"https://api.github.com/users/gavinking/repos","events_url":"https://api.github.com/users/gavinking/events{/privacy}","received_events_url":"https://api.github.com/users/gavinking/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/labels/FEATURE","name":"FEATURE","color":"02e10c"},{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/labels/high%20priority","name":"high priority","color":"d7e102"},{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/labels/interoperability","name":"interoperability","color":"875100"}],"state":"closed","locked":false,"assignee":{"login":"tombentley","id":879487,"avatar_url":"https://avatars.githubusercontent.com/u/879487?v=3","gravatar_id":"","url":"https://api.github.com/users/tombentley","html_url":"https://github.com/tombentley","followers_url":"https://api.github.com/users/tombentley/followers","following_url":"https://api.github.com/users/tombentley/following{/other_user}","gists_url":"https://api.github.com/users/tombentley/gists{/gist_id}","starred_url":"https://api.github.com/users/tombentley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tombentley/subscriptions","organizations_url":"https://api.github.com/users/tombentley/orgs","repos_url":"https://api.github.com/users/tombentley/repos","events_url":"https://api.github.com/users/tombentley/events{/privacy}","received_events_url":"https://api.github.com/users/tombentley/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/milestones/11","html_url":"https://github.com/ceylon/ceylon-compiler/milestones/1.2","labels_url":"https://api.github.com/repos/ceylon/ceylon-compiler/milestones/11/labels","id":809477,"number":11,"title":"1.2","description":"","creator":{"login":"tombentley","id":879487,"avatar_url":"https://avatars.githubusercontent.com/u/879487?v=3","gravatar_id":"","url":"https://api.github.com/users/tombentley","html_url":"https://github.com/tombentley","followers_url":"https://api.github.com/users/tombentley/followers","following_url":"https://api.github.com/users/tombentley/following{/other_user}","gists_url":"https://api.github.com/users/tombentley/gists{/gist_id}","starred_url":"https://api.github.com/users/tombentley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tombentley/subscriptions","organizations_url":"https://api.github.com/users/tombentley/orgs","repos_url":"https://api.github.com/users/tombentley/repos","events_url":"https://api.github.com/users/tombentley/events{/privacy}","received_events_url":"https://api.github.com/users/tombentley/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":396,"state":"open","created_at":"2014-10-01T08:51:07Z","updated_at":"2015-10-06T23:30:55Z","due_on":"2014-11-02T23:00:00Z","closed_at":null},"comments":15,"created_at":"2015-10-01T22:55:31Z","updated_at":"2015-10-07T09:43:30Z","closed_at":"2015-10-06T16:56:44Z","body":"Since Java EE infrastructure, and other frameworks, often depend upon a class being serializable, we should make every generated class that directly extends `Basic` or `Object` implement `java.io.Serializable`.\r\n\r\nThis doesn't apply to `object`s, which wouldn't be serializable. Note that this works in concert with #2324, but is not dependent on #2324.\r\n\r\nSee sgalles/ceylon-dddsample#1."},"comment":{"url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/comments/146134169","html_url":"https://github.com/ceylon/ceylon-compiler/issues/2329#issuecomment-146134169","issue_url":"https://api.github.com/repos/ceylon/ceylon-compiler/issues/2329","id":146134169,"user":{"login":"tombentley","id":879487,"avatar_url":"https://avatars.githubusercontent.com/u/879487?v=3","gravatar_id":"","url":"https://api.github.com/users/tombentley","html_url":"https://github.com/tombentley","followers_url":"https://api.github.com/users/tombentley/followers","following_url":"https://api.github.com/users/tombentley/following{/other_user}","gists_url":"https://api.github.com/users/tombentley/gists{/gist_id}","starred_url":"https://api.github.com/users/tombentley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tombentley/subscriptions","organizations_url":"https://api.github.com/users/tombentley/orgs","repos_url":"https://api.github.com/users/tombentley/repos","events_url":"https://api.github.com/users/tombentley/events{/privacy}","received_events_url":"https://api.github.com/users/tombentley/received_events","type":"User","site_admin":false},"created_at":"2015-10-07T09:43:30Z","updated_at":"2015-10-07T09:43:30Z","body":"Well our `serializable` is about having (being able to obtain) a recipe to reconstruct the instance. If there was a meaningful way to reconstruct an `Integer` then it would be serializable, but there isn't because it's so primitive. We basically assume that the serialization format comes with the ability to encode an Integer some how, and that it can therefore supply the value of a particular Integer at deserialization time.\r\n\r\nJava doesn't have this issue because `long`, `double` etc, being primitive, can't satisfy Serializable, but their serialization format obviously knows how to serialize them anyway."}}