From 3ef0921f203fbc022c8081fe717ec0af5587ce77 Mon Sep 17 00:00:00 2001 From: chris Date: Mon, 23 Nov 2015 00:02:58 +0100 Subject: [PATCH] #113 Event Driven Architecture - refactored and moved around some classes --- .../main/java/com/iluwatar/eda/advanced/App.java | 12 ++++++++++-- .../java/com/iluwatar/eda/advanced/Channel.java | 6 ------ .../com/iluwatar/eda/advanced/DynamicRouter.java | 6 ------ .../iluwatar/eda/advanced/EventDispatcher.java | 13 +++++++++---- .../java/com/iluwatar/eda/advanced/Handler.java | 7 ------- .../iluwatar/eda/advanced/{ => events}/Event.java | 4 +++- .../eda/advanced/events/UserCreatedEvent.java | 9 +++++++++ .../eda/advanced/events/UserUpdatedEvent.java | 6 ++++++ .../iluwatar/eda/advanced/framework/Channel.java | 8 ++++++++ .../eda/advanced/framework/DynamicRouter.java | 6 ++++++ .../eda/advanced/{ => framework}/Message.java | 2 +- .../advanced/handler/UserCreatedEventHandler.java | 15 +++++++++++++++ .../advanced/handler/UserUpdatedEventHandler.java | 12 ++++++++++++ 13 files changed, 79 insertions(+), 27 deletions(-) delete mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Channel.java delete mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/DynamicRouter.java delete mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Handler.java rename event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/{ => events}/Event.java (56%) create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserCreatedEvent.java create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserUpdatedEvent.java create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Channel.java create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/DynamicRouter.java rename event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/{ => framework}/Message.java (63%) create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserCreatedEventHandler.java create mode 100644 event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserUpdatedEventHandler.java diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/App.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/App.java index bcd2120d8..e7b8c01bc 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/App.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/App.java @@ -1,10 +1,18 @@ package com.iluwatar.eda.advanced; +import com.iluwatar.eda.advanced.events.Event; +import com.iluwatar.eda.advanced.events.UserCreatedEvent; +import com.iluwatar.eda.advanced.events.UserUpdatedEvent; +import com.iluwatar.eda.advanced.handler.UserCreatedEventHandler; +import com.iluwatar.eda.advanced.handler.UserUpdatedEventHandler; + public class App { public static void main(String[] args) { EventDispatcher dispatcher = new EventDispatcher(); - dispatcher.registerChannel(Event.class, new Handler()); - dispatcher.dispatch(new Event()); + dispatcher.registerChannel(UserCreatedEvent.class, new UserCreatedEventHandler()); + dispatcher.registerChannel(UserUpdatedEvent.class, new UserUpdatedEventHandler()); + dispatcher.dispatch(new UserCreatedEvent()); + dispatcher.dispatch(new UserUpdatedEvent()); } } diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Channel.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Channel.java deleted file mode 100644 index a977010c6..000000000 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Channel.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.iluwatar.eda.advanced; - - -public interface Channel { - public void dispatch(E message); -} \ No newline at end of file diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/DynamicRouter.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/DynamicRouter.java deleted file mode 100644 index f72b79150..000000000 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/DynamicRouter.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.iluwatar.eda.advanced; - -public interface DynamicRouter { - public void registerChannel(Class contentType, Channel channel); - public void dispatch(E content); -} \ No newline at end of file diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/EventDispatcher.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/EventDispatcher.java index def8920c1..468160b45 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/EventDispatcher.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/EventDispatcher.java @@ -1,18 +1,23 @@ package com.iluwatar.eda.advanced; +import com.iluwatar.eda.advanced.events.Event; +import com.iluwatar.eda.advanced.framework.Channel; +import com.iluwatar.eda.advanced.framework.DynamicRouter; + import java.util.HashMap; import java.util.Map; public class EventDispatcher implements DynamicRouter { - private Map, Handler> handlers; + + private Map, Channel> handlers; public EventDispatcher() { - handlers = new HashMap, Handler>(); + handlers = new HashMap, Channel>(); } public void registerChannel(Class contentType, - Channel channel) { - handlers.put(contentType, (Handler)channel); + Channel channel) { + handlers.put(contentType, channel); } public void dispatch(Event content) { diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Handler.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Handler.java deleted file mode 100644 index 68631b207..000000000 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Handler.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.iluwatar.eda.advanced; - -public class Handler implements Channel { - public void dispatch(Event message) { - System.out.println(message.getClass()); - } -} \ No newline at end of file diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Event.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/Event.java similarity index 56% rename from event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Event.java rename to event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/Event.java index 8ad48c704..64b51ea84 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Event.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/Event.java @@ -1,4 +1,6 @@ -package com.iluwatar.eda.advanced; +package com.iluwatar.eda.advanced.events; + +import com.iluwatar.eda.advanced.framework.Message; public class Event implements Message { public Class getType() { diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserCreatedEvent.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserCreatedEvent.java new file mode 100644 index 000000000..75dc776de --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserCreatedEvent.java @@ -0,0 +1,9 @@ +package com.iluwatar.eda.advanced.events; + +import com.iluwatar.eda.advanced.events.Event; + +/** + * @author cfarrugia + */ +public class UserCreatedEvent extends Event { +} diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserUpdatedEvent.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserUpdatedEvent.java new file mode 100644 index 000000000..df1c0af43 --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/events/UserUpdatedEvent.java @@ -0,0 +1,6 @@ +package com.iluwatar.eda.advanced.events; + +import com.iluwatar.eda.advanced.events.Event; + +public class UserUpdatedEvent extends Event { +} diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Channel.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Channel.java new file mode 100644 index 000000000..20a1cceaa --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Channel.java @@ -0,0 +1,8 @@ +package com.iluwatar.eda.advanced.framework; + + +import com.iluwatar.eda.advanced.events.Event; + +public interface Channel { + void dispatch(E message); +} \ No newline at end of file diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/DynamicRouter.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/DynamicRouter.java new file mode 100644 index 000000000..2ae7291f9 --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/DynamicRouter.java @@ -0,0 +1,6 @@ +package com.iluwatar.eda.advanced.framework; + +public interface DynamicRouter { + void registerChannel(Class contentType, Channel channel); + void dispatch(E content); +} \ No newline at end of file diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Message.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Message.java similarity index 63% rename from event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Message.java rename to event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Message.java index 00d335191..6243dda97 100644 --- a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/Message.java +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/framework/Message.java @@ -1,4 +1,4 @@ -package com.iluwatar.eda.advanced; +package com.iluwatar.eda.advanced.framework; public interface Message { diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserCreatedEventHandler.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserCreatedEventHandler.java new file mode 100644 index 000000000..caacd5583 --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserCreatedEventHandler.java @@ -0,0 +1,15 @@ +package com.iluwatar.eda.advanced.handler; + +import com.iluwatar.eda.advanced.events.Event; +import com.iluwatar.eda.advanced.events.UserCreatedEvent; +import com.iluwatar.eda.advanced.framework.Channel; + +/** + * @author cfarrugia + */ +public class UserCreatedEventHandler implements Channel { + + public void dispatch(UserCreatedEvent message) { + System.out.println("User Created!"); + } +} diff --git a/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserUpdatedEventHandler.java b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserUpdatedEventHandler.java new file mode 100644 index 000000000..dada6fafc --- /dev/null +++ b/event-driven-architecture/src/main/java/com/iluwatar/eda/advanced/handler/UserUpdatedEventHandler.java @@ -0,0 +1,12 @@ +package com.iluwatar.eda.advanced.handler; + +import com.iluwatar.eda.advanced.events.Event; +import com.iluwatar.eda.advanced.events.UserUpdatedEvent; +import com.iluwatar.eda.advanced.framework.Channel; + +public class UserUpdatedEventHandler implements Channel { + + public void dispatch(UserUpdatedEvent message) { + System.out.println("User Updated!"); + } +}