{"id":678,"date":"2010-06-02T18:27:04","date_gmt":"2010-06-02T16:27:04","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/2010\/06\/gedrme-event-bus-fr-google-guice\/"},"modified":"2010-06-03T14:22:17","modified_gmt":"2010-06-03T12:22:17","slug":"gedrme-event-bus-fr-google-guice","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2010\/06\/gedrme-event-bus-fr-google-guice\/","title":{"rendered":"Ged&auml;rme: Event Bus f&uuml;r Google Guice"},"content":{"rendered":"<p>Zwei Konzepte sind f\u00fcr mich zentral: Dependency Injection und Events. Nach dem jetzt DI durch CDI standardisiert ist, steht das f\u00fcr einen Event Bus noch aus. (CDI-kann man aber so interpretieren.) \u00dcber eine L\u00f6sung habe ich schon geschrieben: <a href=\"http:\/\/www.tutego.de\/blog\/javainsel\/2009\/03\/einfuhrung-in-den-eventbus\/\">http:\/\/www.tutego.de\/blog\/javainsel\/2009\/03\/einfuhrung-in-den-eventbus\/<\/a>. Ein Event Bus sollte nat\u00fcrlich mit einem DI-Container harmonieren. Nutzer von Google Guice k\u00f6nnen das mit Guts (englisch f\u00fcr Ged\u00e4rme aber auch Mut) tun: <a href=\"http:\/\/kenai.com\/projects\/guts\/pages\/Home\">http:\/\/kenai.com\/projects\/guts\/pages\/Home<\/a>. Die Doku <a href=\"http:\/\/guts.kenai.com\/guts-events\/apidocs\/\">http:\/\/guts.kenai.com\/guts-events\/apidocs\/<\/a> zeigt wie es geht:<\/p>\n<p>1. Modul aufbauen<\/p>\n<pre>Injector injector = Guice.createInjector(new EventModule(), new AbstractModule()\r\n {\r\n     @Override protected void configure()\r\n     {\r\n         Events.bindChannel(binder(), Integer.class);\r\n     }\r\n });<\/pre>\n<p>Wie man sieht, wird ein Ereignistyp (hier Integer) registriert. Der Kanal kann auch einen Namen tragen:<\/p>\n<pre>Events.bindChannel(binder(), Integer.class, \"TOPIC1\");<\/pre>\n<p>2. Der Kanal wird nun injziert und man kann Ereignisse versenden:<\/p>\n<pre>public class Supplier\r\n {\r\n     @Inject Supplier(<strong>Channel&lt;Integer&gt;<\/strong> channel)\r\n     {\r\n         \/\/ Send an event to this channel (i.e. to all its consumers)\r\n         channel.publish(10);\r\n         ...\r\n     }\r\n     ...\r\n }<\/pre>\n<p>3. Zum Empfang:<\/p>\n<pre> public class MyClass\r\n {\r\n     <strong>@Consumes<\/strong> public void push(Integer event)\r\n     {\r\n         ...\r\n     }\r\n     ...\r\n }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Zwei Konzepte sind f\u00fcr mich zentral: Dependency Injection und Events. Nach dem jetzt DI durch CDI standardisiert ist, steht das f\u00fcr einen Event Bus noch aus. (CDI-kann man aber so interpretieren.) \u00dcber eine L\u00f6sung habe ich schon geschrieben: http:\/\/www.tutego.de\/blog\/javainsel\/2009\/03\/einfuhrung-in-den-eventbus\/. Ein Event Bus sollte nat\u00fcrlich mit einem DI-Container harmonieren. Nutzer von Google Guice k\u00f6nnen das mit [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[4],"tags":[],"class_list":["post-678","post","type-post","status-publish","format-standard","hentry","category-open-source"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=678"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/678\/revisions"}],"predecessor-version":[{"id":683,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/678\/revisions\/683"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}