{"action":"created","issue":{"url":"https://api.github.com/repos/javax-inject/javax-inject/issues/31","repository_url":"https://api.github.com/repos/javax-inject/javax-inject","labels_url":"https://api.github.com/repos/javax-inject/javax-inject/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/javax-inject/javax-inject/issues/31/comments","events_url":"https://api.github.com/repos/javax-inject/javax-inject/issues/31/events","html_url":"https://github.com/javax-inject/javax-inject/issues/31","id":164973883,"number":31,"title":"Provide alternative artifact with different retention","user":{"login":"stephanenicolas","id":1832925,"avatar_url":"https://avatars.githubusercontent.com/u/1832925?v=3","gravatar_id":"","url":"https://api.github.com/users/stephanenicolas","html_url":"https://github.com/stephanenicolas","followers_url":"https://api.github.com/users/stephanenicolas/followers","following_url":"https://api.github.com/users/stephanenicolas/following{/other_user}","gists_url":"https://api.github.com/users/stephanenicolas/gists{/gist_id}","starred_url":"https://api.github.com/users/stephanenicolas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephanenicolas/subscriptions","organizations_url":"https://api.github.com/users/stephanenicolas/orgs","repos_url":"https://api.github.com/users/stephanenicolas/repos","events_url":"https://api.github.com/users/stephanenicolas/events{/privacy}","received_events_url":"https://api.github.com/users/stephanenicolas/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-07-12T01:19:05Z","updated_at":"2016-07-12T15:30:12Z","closed_at":null,"body":"Dagger 1, Dagger 2 and toothpick process @Inject related annotations at compile time. Thus they don't need the retention= runtime for those annotations. \r\n\r\nOn Android, all classes that have fields / methods with runtime retained annotations will be included in the first dex. Having the jsr 330 annotations with this retention leads to first dex exceeding the limit. \r\n\r\nIt would be very nice to have you guys deploying 2 artifacts to central, with a modifier so that DI libs can decide which annotation retention they wanna use. "},"comment":{"url":"https://api.github.com/repos/javax-inject/javax-inject/issues/comments/232085276","html_url":"https://github.com/javax-inject/javax-inject/issues/31#issuecomment-232085276","issue_url":"https://api.github.com/repos/javax-inject/javax-inject/issues/31","id":232085276,"user":{"login":"cgruber","id":331234,"avatar_url":"https://avatars.githubusercontent.com/u/331234?v=3","gravatar_id":"","url":"https://api.github.com/users/cgruber","html_url":"https://github.com/cgruber","followers_url":"https://api.github.com/users/cgruber/followers","following_url":"https://api.github.com/users/cgruber/following{/other_user}","gists_url":"https://api.github.com/users/cgruber/gists{/gist_id}","starred_url":"https://api.github.com/users/cgruber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgruber/subscriptions","organizations_url":"https://api.github.com/users/cgruber/orgs","repos_url":"https://api.github.com/users/cgruber/repos","events_url":"https://api.github.com/users/cgruber/events{/privacy}","received_events_url":"https://api.github.com/users/cgruber/received_events","type":"User","site_admin":false},"created_at":"2016-07-12T15:30:11Z","updated_at":"2016-07-12T15:30:11Z","body":"Let me be clearer.  I salvaged the javax-inject project from Googlecode but\nit would take the jsr expert group to come to a decision and release a new\nversion to change the API.\n\nThe ease of jar swapping is a build system issue, not an Android or server\nissue and exists below the level of this spec.  This spec offers specific\nannotations.  Reducing their retention would be a breaking api, and tools\nthat seek to work with it could not.  This is why dagger uses these and\ndidn't go down the road you're going down.\n\nYou are asking for a breaking change and a secondary jar to satisfy a need\nthat can easily be satisfied by using the tools commonly used to thin out\njars.  While I'm sympathetic to the need, it seems like a solution in\nsearch of a problem.\n\nOn Tue, Jul 12, 2016, 06:31 Stéphane Nicolas <notifications@github.com>\nwrote:\n\n> Hi @cgruber <https://github.com/cgruber> , thanks for the answer.\n> Actually, on Android it is quite possible to switch between 2 different\n> jars that would contain the annotations. I did a fast test yesterday and I\n> could simply exclude the dependency on the standard javax.inject package,\n> and supply one of my own with the new retention. So this works pretty well\n> (actually it's even more powerful than that as we were using a shaded\n> inject package).\n>\n> So the question is: for toothpick to work well like this and not\n> contribute to inflate the first dex, we will need those annotations. So we\n> can provide an artifact with it... but soon dagger would do the same and we\n> can quickly endup with 3 different jars. That's why I think it would be\n> just better if you could provide it. A simple artifact with a jar modifier\n> would be a charm for this use case.\n>\n> —\n> You are receiving this because you were mentioned.\n>\n>\n> Reply to this email directly, view it on GitHub\n> <https://github.com/javax-inject/javax-inject/issues/31#issuecomment-232047871>,\n> or mute the thread\n> <https://github.com/notifications/unsubscribe/AAUN4rLA2hHC7OttwRt30VGfuWLNiQfgks5qU5dJgaJpZM4JJ8sk>\n> .\n>\n"}}
{"actor":{"display_login":"cgruber"}}