From c4531f27fa1846d889b984c661d76d00b1eba66e Mon Sep 17 00:00:00 2001 From: tangmingyou <234767776@qq.com> Date: Sun, 27 Mar 2022 22:50:04 +0800 Subject: [PATCH] im struct --- .gitignore | 57 ++++++ README.md | 44 +++++ im-client/pom.xml | 15 ++ .../net/sopod/soim/client/ClientMain.java | 11 ++ .../soim/client/server/ClientInitial.java | 13 ++ im-client/src/main/resources/setting.yml | 0 im-common/pom.xml | 15 ++ .../sopod/soim/common/cache/CacheNames.java | 14 ++ .../common/config/registry/EtcdRegistry.java | 13 ++ .../soim/common/config/registry/Registry.java | 13 ++ .../common/exception/ConvertException.java | 13 ++ im-common/src/main/resources/codes.properties | 0 .../resources/log4j2.component.properties | 1 + im-common/src/main/resources/log4j2.xml | 97 ++++++++++ im-data/pom.xml | 26 +++ .../soim/data/constant/PlatformType.java | 25 +++ .../soim/data/constant/SerializeType.java | 28 +++ .../java/net/sopod/soim/data/net/Ping.java | 11 ++ .../java/net/sopod/soim/data/net/Pong.java | 10 + .../sopod/soim/data/serialize/ImMessage.java | 159 ++++++++++++++++ im-entry/pom.xml | 51 ++++++ .../java/net/sopod/soim/entry/EntryMain.java | 27 +++ .../java/net/sopod/soim/entry/model/A.java | 16 ++ im-entry/src/main/resources/setting.yml | 0 im-logic-api/im-user-api/pom.xml | 16 ++ .../logic/api/user/service/UserService.java | 13 ++ im-logic-api/pom.xml | 15 ++ im-logic/im-logic-user/pom.xml | 15 ++ .../net/sopod/soim/logic/user/UserMain.java | 15 ++ .../src/main/resources/setting.yml | 0 im-logic/pom.xml | 19 ++ pom.xml | 173 ++++++++++++++++++ 32 files changed, 925 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 im-client/pom.xml create mode 100644 im-client/src/main/java/net/sopod/soim/client/ClientMain.java create mode 100644 im-client/src/main/java/net/sopod/soim/client/server/ClientInitial.java create mode 100644 im-client/src/main/resources/setting.yml create mode 100644 im-common/pom.xml create mode 100644 im-common/src/main/java/net/sopod/soim/common/cache/CacheNames.java create mode 100644 im-common/src/main/java/net/sopod/soim/common/config/registry/EtcdRegistry.java create mode 100644 im-common/src/main/java/net/sopod/soim/common/config/registry/Registry.java create mode 100644 im-common/src/main/java/net/sopod/soim/common/exception/ConvertException.java create mode 100644 im-common/src/main/resources/codes.properties create mode 100644 im-common/src/main/resources/log4j2.component.properties create mode 100644 im-common/src/main/resources/log4j2.xml create mode 100644 im-data/pom.xml create mode 100644 im-data/src/main/java/net/sopod/soim/data/constant/PlatformType.java create mode 100644 im-data/src/main/java/net/sopod/soim/data/constant/SerializeType.java create mode 100644 im-data/src/main/java/net/sopod/soim/data/net/Ping.java create mode 100644 im-data/src/main/java/net/sopod/soim/data/net/Pong.java create mode 100644 im-data/src/main/java/net/sopod/soim/data/serialize/ImMessage.java create mode 100644 im-entry/pom.xml create mode 100644 im-entry/src/main/java/net/sopod/soim/entry/EntryMain.java create mode 100644 im-entry/src/main/java/net/sopod/soim/entry/model/A.java create mode 100644 im-entry/src/main/resources/setting.yml create mode 100644 im-logic-api/im-user-api/pom.xml create mode 100644 im-logic-api/im-user-api/src/main/java/net/sopod/soim/logic/api/user/service/UserService.java create mode 100644 im-logic-api/pom.xml create mode 100644 im-logic/im-logic-user/pom.xml create mode 100644 im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/UserMain.java create mode 100644 im-logic/im-logic-user/src/main/resources/setting.yml create mode 100644 im-logic/pom.xml create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..75090a7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# IntelliJ IDEA project dir +.idea/ +out/ + +# Mac file attribute +.DS_Store/ +.DS_Store + +# Package Files # +# *.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*.zip +/out +*.iml +*/target/ +.idea +*/*.iml +logs/ +*/logs/ +/${log4j.rootpath}logs +target/ +*.bin +*.log +/logic/src/main/resources/servers.info + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +node_modules/ +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +/log \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..32116d0 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +- 接入层 entry +- 逻辑层 logic +- 内存存储层 router +- 固化存储层 das + + +功能组件: +1.0 +- IOC: guice +- 通信层: netty +- 序列化: protobuf +- 内存存储: + - Caffeine + - Memcache +- 分布式缓存:redis +- 注册中心:etcd、直连 +- 处理队列:disruptor +- 持久化:mysql +- 日志:log4j2 +- 监控:prometheus、grafana + +- ID生成器 + +2.0 +- quarkus + + +集群负载均衡: +子网1,子网2,公网 +子网1和2不相通 + + +entry <--> client 通信 +entry <--> logic dubbo service +client jconsle cmd + +router <--> cache +das <--> db +router <--> das + +das shardingjdbc +table struct, sharding roles +logic biz + \ No newline at end of file diff --git a/im-client/pom.xml b/im-client/pom.xml new file mode 100644 index 0000000..c4b3077 --- /dev/null +++ b/im-client/pom.xml @@ -0,0 +1,15 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-client + + + \ No newline at end of file diff --git a/im-client/src/main/java/net/sopod/soim/client/ClientMain.java b/im-client/src/main/java/net/sopod/soim/client/ClientMain.java new file mode 100644 index 0000000..c64286b --- /dev/null +++ b/im-client/src/main/java/net/sopod/soim/client/ClientMain.java @@ -0,0 +1,11 @@ +package net.sopod.soim.client; + +/** + * Main + * + * @author tmy + * @date 2022-03-27 22:32 + */ +public class ClientMain { + +} diff --git a/im-client/src/main/java/net/sopod/soim/client/server/ClientInitial.java b/im-client/src/main/java/net/sopod/soim/client/server/ClientInitial.java new file mode 100644 index 0000000..0425732 --- /dev/null +++ b/im-client/src/main/java/net/sopod/soim/client/server/ClientInitial.java @@ -0,0 +1,13 @@ +package net.sopod.soim.client.server; + +/** + * ClientInitial + * + * @author tmy + * @date 2022-03-27 22:36 + */ +public class ClientInitial { + + + +} diff --git a/im-client/src/main/resources/setting.yml b/im-client/src/main/resources/setting.yml new file mode 100644 index 0000000..e69de29 diff --git a/im-common/pom.xml b/im-common/pom.xml new file mode 100644 index 0000000..fe6825d --- /dev/null +++ b/im-common/pom.xml @@ -0,0 +1,15 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-common + + + \ No newline at end of file diff --git a/im-common/src/main/java/net/sopod/soim/common/cache/CacheNames.java b/im-common/src/main/java/net/sopod/soim/common/cache/CacheNames.java new file mode 100644 index 0000000..e4db72c --- /dev/null +++ b/im-common/src/main/java/net/sopod/soim/common/cache/CacheNames.java @@ -0,0 +1,14 @@ +package net.sopod.soim.common.cache; + +/** + * CacheNames + * + * @author tmy + * @date 2022-03-26 00:15 + */ +public interface CacheNames { + + /** 验证码 */ + String CAPTCHA_KEY = "soim:auth::soim:captcha:"; + +} diff --git a/im-common/src/main/java/net/sopod/soim/common/config/registry/EtcdRegistry.java b/im-common/src/main/java/net/sopod/soim/common/config/registry/EtcdRegistry.java new file mode 100644 index 0000000..6e0c62d --- /dev/null +++ b/im-common/src/main/java/net/sopod/soim/common/config/registry/EtcdRegistry.java @@ -0,0 +1,13 @@ +package net.sopod.soim.common.config.registry; + +/** + * EtcdRegistry + * + * @author tmy + * @date 2022-03-27 17:00 + */ +public class EtcdRegistry { + + + +} diff --git a/im-common/src/main/java/net/sopod/soim/common/config/registry/Registry.java b/im-common/src/main/java/net/sopod/soim/common/config/registry/Registry.java new file mode 100644 index 0000000..d85770b --- /dev/null +++ b/im-common/src/main/java/net/sopod/soim/common/config/registry/Registry.java @@ -0,0 +1,13 @@ +package net.sopod.soim.common.config.registry; + +/** + * Registry + * + * @author tmy + * @date 2022-03-27 17:00 + */ +public class Registry { + + private Registry registry; + +} diff --git a/im-common/src/main/java/net/sopod/soim/common/exception/ConvertException.java b/im-common/src/main/java/net/sopod/soim/common/exception/ConvertException.java new file mode 100644 index 0000000..7f0b9ea --- /dev/null +++ b/im-common/src/main/java/net/sopod/soim/common/exception/ConvertException.java @@ -0,0 +1,13 @@ +package net.sopod.soim.common.exception; + +/** + * ConvertException + * + * @author tmy + * @date 2022-03-27 17:18 + */ +public class ConvertException extends Exception { + + private Throwable originException; + +} diff --git a/im-common/src/main/resources/codes.properties b/im-common/src/main/resources/codes.properties new file mode 100644 index 0000000..e69de29 diff --git a/im-common/src/main/resources/log4j2.component.properties b/im-common/src/main/resources/log4j2.component.properties new file mode 100644 index 0000000..ed03a2b --- /dev/null +++ b/im-common/src/main/resources/log4j2.component.properties @@ -0,0 +1 @@ +log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector \ No newline at end of file diff --git a/im-common/src/main/resources/log4j2.xml b/im-common/src/main/resources/log4j2.xml new file mode 100644 index 0000000..cb708bd --- /dev/null +++ b/im-common/src/main/resources/log4j2.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %xwEx + %5p + yyyy-MM-dd HH:mm:ss.SSS + %clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD} + %d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} %pid --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --> + + + + + \ No newline at end of file diff --git a/im-data/pom.xml b/im-data/pom.xml new file mode 100644 index 0000000..c58ec6d --- /dev/null +++ b/im-data/pom.xml @@ -0,0 +1,26 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-data + + + + net.sopod + im-common + ${soim.version} + + + io.netty + netty-buffer + + + + \ No newline at end of file diff --git a/im-data/src/main/java/net/sopod/soim/data/constant/PlatformType.java b/im-data/src/main/java/net/sopod/soim/data/constant/PlatformType.java new file mode 100644 index 0000000..99f8fca --- /dev/null +++ b/im-data/src/main/java/net/sopod/soim/data/constant/PlatformType.java @@ -0,0 +1,25 @@ +package net.sopod.soim.data.constant; + +/** + * PlatformType + * + * @author tmy + * @date 2022-03-27 17:36 + */ +public enum PlatformType { + + IM_CLIENT, + + IM_ENTRY, + + IM_ROUTER, + + IM_DAS, + + IM_LOGIC, + + IM_USER, + + IM_GROUP; + +} diff --git a/im-data/src/main/java/net/sopod/soim/data/constant/SerializeType.java b/im-data/src/main/java/net/sopod/soim/data/constant/SerializeType.java new file mode 100644 index 0000000..ced722d --- /dev/null +++ b/im-data/src/main/java/net/sopod/soim/data/constant/SerializeType.java @@ -0,0 +1,28 @@ +package net.sopod.soim.data.constant; + +/** + * SerializeType + * + * @author tmy + * @date 2022-03-27 17:14 + */ +public enum SerializeType { + + json, + + protobuf; + + + public static interface Converter { + + T deserialize(byte[] data, Class clazz) throws Exception; + + byte[] serialize(Object pojo); + + } + + public static void main(String[] args) { + + } + +} diff --git a/im-data/src/main/java/net/sopod/soim/data/net/Ping.java b/im-data/src/main/java/net/sopod/soim/data/net/Ping.java new file mode 100644 index 0000000..e44b85d --- /dev/null +++ b/im-data/src/main/java/net/sopod/soim/data/net/Ping.java @@ -0,0 +1,11 @@ +package net.sopod.soim.data.net; + +/** + * Ping + * + * @author tmy + * @date 2022-03-26 01:04 + */ +public class Ping { + +} diff --git a/im-data/src/main/java/net/sopod/soim/data/net/Pong.java b/im-data/src/main/java/net/sopod/soim/data/net/Pong.java new file mode 100644 index 0000000..c8a0f42 --- /dev/null +++ b/im-data/src/main/java/net/sopod/soim/data/net/Pong.java @@ -0,0 +1,10 @@ +package net.sopod.soim.data.net; + +/** + * Pomg + * + * @author tmy + * @date 2022-03-26 01:04 + */ +public class Pong { +} diff --git a/im-data/src/main/java/net/sopod/soim/data/serialize/ImMessage.java b/im-data/src/main/java/net/sopod/soim/data/serialize/ImMessage.java new file mode 100644 index 0000000..88162ee --- /dev/null +++ b/im-data/src/main/java/net/sopod/soim/data/serialize/ImMessage.java @@ -0,0 +1,159 @@ +package net.sopod.soim.data.serialize; + +import io.netty.buffer.ByteBuf; + +import java.util.Random; + +/** + * Struct + * 是否是事件,是否需要返回值 + * + * @author tmy + * @date 2022-03-27 17:13 + */ +public class ImMessage { + + public static final short MAGIC = 0x7a20; + + public static final int MESSAGE_HEAD_LEN = 17; + + public static final ImMessage PROTOCOL_ERROR; + + public static final ImMessage MAGIC_ERROR; + + static { + Random random = new Random(); + PROTOCOL_ERROR = new ImMessage().setSerialNo(random.nextInt()); + MAGIC_ERROR = new ImMessage().setSerialNo(random.nextInt()); + } + + /** 协议版本 */ + //private int version; + + /** 协议总长度 */ + //private int protocolLength; + + /** 请求序列号 */ + private int serialNo; + + /** 服务编号 */ + private int serviceNo; + + /** 请求体序列化格式 Ordinal */ + private int serializeType; + + /** 压缩算法 */ + private int zipType; + + /** 平台号 */ + private int platformNo; + + /** 请求体长度 */ + private int bodyLength; + + private byte[] body; + + /** + * 从 bytebuf 流读取 + */ + public static ImMessage read(ByteBuf buf) { + int bufLen = buf.readableBytes(); + if (bufLen < MESSAGE_HEAD_LEN) { + return PROTOCOL_ERROR; + } + short magic = buf.readShort(); + if (magic != MAGIC) { + return MAGIC_ERROR; + } + ImMessage msg = new ImMessage() + .setSerialNo(buf.readInt()) + .setServiceNo(buf.readInt()) + .setSerializeType(buf.readByte()) + .setZipType(buf.readByte()) + .setPlatformNo(buf.readByte()); + msg.bodyLength = buf.readInt(); + if (bufLen != MESSAGE_HEAD_LEN + msg.getBodyLength()) { + return PROTOCOL_ERROR; + } + byte[] body = new byte[msg.getBodyLength()]; + buf.readBytes(body); + msg.setBody(body); + return msg; + } + + /** + * 写入到 bytebuf 流 + */ + public void write(ByteBuf buf) { + buf.writeShort(MAGIC) + .writeInt(this.serialNo) + .writeInt(this.serviceNo) + .writeByte(this.serializeType) + .writeByte(this.zipType) + .writeByte(this.platformNo); + if (this.body == null) { + buf.writeInt(0); + } else { + buf.writeInt(this.body.length) + .writeBytes(this.body); + } + } + + public int getSerialNo() { + return serialNo; + } + + public ImMessage setSerialNo(int serialNo) { + this.serialNo = serialNo; + return this; + } + + public int getServiceNo() { + return serviceNo; + } + + public ImMessage setServiceNo(int serviceNo) { + this.serviceNo = serviceNo; + return this; + } + + public int getSerializeType() { + return serializeType; + } + + public ImMessage setSerializeType(int serializeType) { + this.serializeType = serializeType; + return this; + } + + public int getZipType() { + return zipType; + } + + public ImMessage setZipType(int zipType) { + this.zipType = zipType; + return this; + } + + public int getPlatformNo() { + return platformNo; + } + + public ImMessage setPlatformNo(int platformNo) { + this.platformNo = platformNo; + return this; + } + + public int getBodyLength() { + return bodyLength; + } + + public byte[] getBody() { + return body; + } + + public ImMessage setBody(byte[] body) { + this.body = body; + return this; + } +} diff --git a/im-entry/pom.xml b/im-entry/pom.xml new file mode 100644 index 0000000..9232150 --- /dev/null +++ b/im-entry/pom.xml @@ -0,0 +1,51 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-entry + + + net.sopod.soim.entry.EntryMain + + + + + net.sopod + im-common + ${soim.version} + + + org.projectlombok + lombok + + + io.netty + netty-all + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + ${mainClass} + + + + + + + + \ No newline at end of file diff --git a/im-entry/src/main/java/net/sopod/soim/entry/EntryMain.java b/im-entry/src/main/java/net/sopod/soim/entry/EntryMain.java new file mode 100644 index 0000000..e7b032e --- /dev/null +++ b/im-entry/src/main/java/net/sopod/soim/entry/EntryMain.java @@ -0,0 +1,27 @@ +package net.sopod.soim.entry; + +import net.sopod.soim.entry.model.A; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * EntryMain + * + * @author tmy + * @date 2022-03-26 00:06 + */ +public class EntryMain { + + private static final Logger logger = LoggerFactory.getLogger(EntryMain.class); + + public static void main(String[] args) { + logger.info("info"); + logger.warn("warn"); + logger.error("error..."); + + A a = new A(); + a.setName("太极拳"); + System.out.println(a); + } + +} diff --git a/im-entry/src/main/java/net/sopod/soim/entry/model/A.java b/im-entry/src/main/java/net/sopod/soim/entry/model/A.java new file mode 100644 index 0000000..1b58dc3 --- /dev/null +++ b/im-entry/src/main/java/net/sopod/soim/entry/model/A.java @@ -0,0 +1,16 @@ +package net.sopod.soim.entry.model; + +import lombok.Data; + +/** + * A + * + * @author tmy + * @date 2022-03-27 17:01 + */ +@Data +public class A { + + private String name; + +} diff --git a/im-entry/src/main/resources/setting.yml b/im-entry/src/main/resources/setting.yml new file mode 100644 index 0000000..e69de29 diff --git a/im-logic-api/im-user-api/pom.xml b/im-logic-api/im-user-api/pom.xml new file mode 100644 index 0000000..6d636de --- /dev/null +++ b/im-logic-api/im-user-api/pom.xml @@ -0,0 +1,16 @@ + + + + so-im + net.sopod + 1.0.0 + ../../pom.xml + + 4.0.0 + + im-user-api + + + \ No newline at end of file diff --git a/im-logic-api/im-user-api/src/main/java/net/sopod/soim/logic/api/user/service/UserService.java b/im-logic-api/im-user-api/src/main/java/net/sopod/soim/logic/api/user/service/UserService.java new file mode 100644 index 0000000..aef742f --- /dev/null +++ b/im-logic-api/im-user-api/src/main/java/net/sopod/soim/logic/api/user/service/UserService.java @@ -0,0 +1,13 @@ +package net.sopod.soim.logic.api.user.service; + +/** + * UserService + * + * @author tmy + * @date 2022-03-27 22:42 + */ +public interface UserService { + + + +} diff --git a/im-logic-api/pom.xml b/im-logic-api/pom.xml new file mode 100644 index 0000000..aaec1f6 --- /dev/null +++ b/im-logic-api/pom.xml @@ -0,0 +1,15 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-logic-api + + + \ No newline at end of file diff --git a/im-logic/im-logic-user/pom.xml b/im-logic/im-logic-user/pom.xml new file mode 100644 index 0000000..cc9a36a --- /dev/null +++ b/im-logic/im-logic-user/pom.xml @@ -0,0 +1,15 @@ + + + + im-logic + net.sopod + 1.0.0 + + 4.0.0 + + im-logic-user + + + \ No newline at end of file diff --git a/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/UserMain.java b/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/UserMain.java new file mode 100644 index 0000000..8643dde --- /dev/null +++ b/im-logic/im-logic-user/src/main/java/net/sopod/soim/logic/user/UserMain.java @@ -0,0 +1,15 @@ +package net.sopod.soim.logic.user; + +/** + * UserMain + * + * @author tmy + * @date 2022-03-26 01:41 + */ +public class UserMain { + + public static void main(String[] args) { + + } + +} diff --git a/im-logic/im-logic-user/src/main/resources/setting.yml b/im-logic/im-logic-user/src/main/resources/setting.yml new file mode 100644 index 0000000..e69de29 diff --git a/im-logic/pom.xml b/im-logic/pom.xml new file mode 100644 index 0000000..33c7732 --- /dev/null +++ b/im-logic/pom.xml @@ -0,0 +1,19 @@ + + + + so-im + net.sopod + 1.0.0 + + 4.0.0 + + im-logic + pom + + im-logic-user + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fb3062b --- /dev/null +++ b/pom.xml @@ -0,0 +1,173 @@ + + + 4.0.0 + + net.sopod + so-im + pom + 1.0.0 + + im-common + im-data + im-entry + im-logic + im-client + im-logic-api + im-logic-api/im-user-api + + + + UTF-8 + UTF-8 + UTF-8 + 11 + 11 + 11 + 2.12.5 + 1.2.11 + 2.17.2 + 1.0.0 + 4.1.72.Final + + + + + + io.netty + netty-all + ${netty.version} + + + io.netty + netty-buffer + ${netty.version} + + + com.google.protobuf + protobuf-java + 3.15.8 + + + com.lmax + disruptor + 3.4.4 + + + org.reflections + reflections + 0.9.12 + + + com.google.inject + guice + 4.1.0 + + + com.google.guava + guava + 20.0 + + + org.apache.commons + commons-lang3 + 3.4 + + + + mysql + mysql-connector-java + 5.1.33 + + + com.zaxxer + HikariCP + 3.4.5 + + + + + org.slf4j + slf4j-api + 1.7.36 + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-slf4j-impl + ${log4j.version} + + + org.projectlombok + lombok + 1.18.22 + provided + + + + + + + + org.slf4j + slf4j-api + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + org.apache.logging.log4j + log4j-slf4j-impl + + + com.lmax + disruptor + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + ${project.build.finalName} + + + + + + jar-with-dependencies + + false + + + + make-assembly + package + + single + + + + + + + + \ No newline at end of file