{"action":"created","issue":{"url":"https://api.github.com/repos/ReactiveX/RxJava/issues/2643","labels_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/2643/labels{/name}","comments_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/2643/comments","events_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/2643/events","html_url":"https://github.com/ReactiveX/RxJava/pull/2643","id":57177979,"number":2643,"title":"Seeking various RxJavaPlugins via java.util.ServiceLoader","user":{"login":"jtulach","id":1842422,"avatar_url":"https://avatars.githubusercontent.com/u/1842422?v=3","gravatar_id":"","url":"https://api.github.com/users/jtulach","html_url":"https://github.com/jtulach","followers_url":"https://api.github.com/users/jtulach/followers","following_url":"https://api.github.com/users/jtulach/following{/other_user}","gists_url":"https://api.github.com/users/jtulach/gists{/gist_id}","starred_url":"https://api.github.com/users/jtulach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtulach/subscriptions","organizations_url":"https://api.github.com/users/jtulach/orgs","repos_url":"https://api.github.com/users/jtulach/repos","events_url":"https://api.github.com/users/jtulach/events{/privacy}","received_events_url":"https://api.github.com/users/jtulach/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ReactiveX/RxJava/labels/Discussion","name":"Discussion","color":"5319e7"},{"url":"https://api.github.com/repos/ReactiveX/RxJava/labels/Enhancement","name":"Enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2015-02-10T14:01:46Z","updated_at":"2015-07-14T18:55:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/2643","html_url":"https://github.com/ReactiveX/RxJava/pull/2643","diff_url":"https://github.com/ReactiveX/RxJava/pull/2643.diff","patch_url":"https://github.com/ReactiveX/RxJava/pull/2643.patch"},"body":"The standard JDK way for registering plugins is via java.util.ServiceLoader. I can see RxJava invented few home-made solutions to such registration, but all of them require some configuration (set a property or invoke some bootstrap code). I'd like to extend the set of possible registration styles to ServiceLoader as well: all that is needed with ServiceLoader is to add a JAR with standard META-INF/services/pgk.iterface.name file on classpath which I consider the least intrusive way to register a plugin.\r\n\r\nBtw. my notes on service loader & related stuff: http://wiki.apidesign.org/wiki/ServiceLoader"},"comment":{"url":"https://api.github.com/repos/ReactiveX/RxJava/issues/comments/121341004","html_url":"https://github.com/ReactiveX/RxJava/pull/2643#issuecomment-121341004","issue_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/2643","id":121341004,"user":{"login":"benjchristensen","id":813492,"avatar_url":"https://avatars.githubusercontent.com/u/813492?v=3","gravatar_id":"","url":"https://api.github.com/users/benjchristensen","html_url":"https://github.com/benjchristensen","followers_url":"https://api.github.com/users/benjchristensen/followers","following_url":"https://api.github.com/users/benjchristensen/following{/other_user}","gists_url":"https://api.github.com/users/benjchristensen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjchristensen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjchristensen/subscriptions","organizations_url":"https://api.github.com/users/benjchristensen/orgs","repos_url":"https://api.github.com/users/benjchristensen/repos","events_url":"https://api.github.com/users/benjchristensen/events{/privacy}","received_events_url":"https://api.github.com/users/benjchristensen/received_events","type":"User","site_admin":false},"created_at":"2015-07-14T18:55:57Z","updated_at":"2015-07-14T18:55:57Z","body":"Anyone other than those already involved in this thread have opinions or information that can help sway the discussion in a direction? It seems there are not very good options for this."}}