BAEL-2274 DDD Bounded Contexts and Java Modules
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package com.baeldung.dddmodules.sharedkernel.events;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class ApplicationEvent {
|
||||
protected Map<String, String> payload;
|
||||
|
||||
public abstract String getType();
|
||||
|
||||
public String getPayloadValue(String key) {
|
||||
if (this.payload.containsKey(key)) {
|
||||
return this.payload.get(key);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public ApplicationEvent(Map<String, String> payload) {
|
||||
this.payload = payload;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.baeldung.dddmodules.sharedkernel.events;
|
||||
|
||||
public interface EventBus {
|
||||
<E extends ApplicationEvent> void publish(E event);
|
||||
|
||||
<E extends ApplicationEvent> void subscribe(String eventType, EventSubscriber subscriber);
|
||||
|
||||
<E extends ApplicationEvent> void unsubscribe(String eventType, EventSubscriber subscriber);
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.baeldung.dddmodules.sharedkernel.events;
|
||||
|
||||
public interface EventSubscriber {
|
||||
<E extends ApplicationEvent> void onEvent(E event);
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.dddmodules.sharedkernel.service;
|
||||
|
||||
import com.baeldung.dddmodules.sharedkernel.events.ApplicationEvent;
|
||||
import com.baeldung.dddmodules.sharedkernel.events.EventBus;
|
||||
import com.baeldung.dddmodules.sharedkernel.events.EventSubscriber;
|
||||
|
||||
public interface ApplicationService {
|
||||
|
||||
default <E extends ApplicationEvent> void publishEvent(E event) {
|
||||
EventBus eventBus = getEventBus();
|
||||
if (eventBus != null) {
|
||||
eventBus.publish(event);
|
||||
}
|
||||
}
|
||||
|
||||
default <E extends ApplicationEvent> void subscribe(String eventType, EventSubscriber subscriber) {
|
||||
EventBus eventBus = getEventBus();
|
||||
if (eventBus != null) {
|
||||
eventBus.subscribe(eventType, subscriber);
|
||||
}
|
||||
}
|
||||
|
||||
default <E extends ApplicationEvent> void unsubscribe(String eventType, EventSubscriber subscriber) {
|
||||
EventBus eventBus = getEventBus();
|
||||
if (eventBus != null) {
|
||||
eventBus.unsubscribe(eventType, subscriber);
|
||||
}
|
||||
}
|
||||
|
||||
EventBus getEventBus();
|
||||
|
||||
void setEventBus(EventBus eventBus);
|
||||
}
|
||||
4
ddd-modules/sharedkernel/src/main/java/module-info.java
Normal file
4
ddd-modules/sharedkernel/src/main/java/module-info.java
Normal file
@@ -0,0 +1,4 @@
|
||||
module com.baeldung.dddmodules.sharedkernel {
|
||||
exports com.baeldung.dddmodules.sharedkernel.events;
|
||||
exports com.baeldung.dddmodules.sharedkernel.service;
|
||||
}
|
||||
Reference in New Issue
Block a user