diff --git a/src/shared/main/tv/codely/shared/domain/bus/command/Middleware.java b/src/shared/main/tv/codely/shared/domain/bus/command/Middleware.java new file mode 100644 index 00000000..eb46e15a --- /dev/null +++ b/src/shared/main/tv/codely/shared/domain/bus/command/Middleware.java @@ -0,0 +1,5 @@ +package tv.codely.shared.domain.bus.command; + +public interface Middleware { + void handle(Command command); +} diff --git a/src/shared/main/tv/codely/shared/infrastructure/VoidLogger.java b/src/shared/main/tv/codely/shared/infrastructure/VoidLogger.java new file mode 100644 index 00000000..1f658c1e --- /dev/null +++ b/src/shared/main/tv/codely/shared/infrastructure/VoidLogger.java @@ -0,0 +1,38 @@ +package tv.codely.shared.infrastructure; + +import tv.codely.shared.domain.Logger; + +import java.io.Serializable; +import java.util.HashMap; + +public class VoidLogger implements Logger { + @Override + public void info(String $message) { + + } + + @Override + public void info(String $message, HashMap $context) { + + } + + @Override + public void warning(String $message) { + + } + + @Override + public void warning(String $message, HashMap $context) { + + } + + @Override + public void critical(String $message) { + + } + + @Override + public void critical(String $message, HashMap $context) { + + } +} diff --git a/src/shared/main/tv/codely/shared/infrastructure/bus/command/LoggerMiddleware.java b/src/shared/main/tv/codely/shared/infrastructure/bus/command/LoggerMiddleware.java new file mode 100644 index 00000000..b30c1b59 --- /dev/null +++ b/src/shared/main/tv/codely/shared/infrastructure/bus/command/LoggerMiddleware.java @@ -0,0 +1,29 @@ +package tv.codely.shared.infrastructure.bus.command; + +import tv.codely.shared.domain.Logger; +import tv.codely.shared.domain.bus.command.Command; +import tv.codely.shared.domain.bus.command.Middleware; + +import java.util.Optional; + +public class LoggerMiddleware implements Middleware { + + private final Logger logger; + private final Optional next; + + LoggerMiddleware(Logger logger, Middleware next) { + this.logger = logger; + this.next = Optional.of(next); + } + + LoggerMiddleware(Logger logger) { + this.logger = logger; + this.next = Optional.empty(); + } + + @Override + public void handle(Command command) { + logger.info("lasdl"); + next.map(middleware -> middleware.handle(command)); + } +}