From 6265ac2c05379991c31da9bc55b70d05bde936e5 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 6 Apr 2022 20:20:46 +0200 Subject: [PATCH] init project --- pom.xml | 86 +++++++++++++++++++ src/main/java/earth/krakatoa/KraCore.java | 25 ++++++ .../earth/krakatoa/config/MongoConfig.java | 14 +++ .../earth/krakatoa/config/RedisConfig.java | 11 +++ .../earth/krakatoa/mongo/MongoManager.java | 39 +++++++++ .../earth/krakatoa/redis/RedisManager.java | 25 ++++++ 6 files changed, 200 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/earth/krakatoa/KraCore.java create mode 100644 src/main/java/earth/krakatoa/config/MongoConfig.java create mode 100644 src/main/java/earth/krakatoa/config/RedisConfig.java create mode 100644 src/main/java/earth/krakatoa/mongo/MongoManager.java create mode 100644 src/main/java/earth/krakatoa/redis/RedisManager.java diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..33f91de --- /dev/null +++ b/pom.xml @@ -0,0 +1,86 @@ + + + 4.0.0 + + earth.krakatoa + KraCore + 1.0-SNAPSHOT + + + 14 + 14 + + + + + clean install + + + maven-assembly-plugin + + + jar-with-dependencies + + + + + + single + + make-assembly + package + + + + + maven-compiler-plugin + + 9 + 9 + + org.apache.maven.plugins + + + + + + + lombok + org.projectlombok + provided + 1.18.22 + + + org.redisson + redisson + 3.17.0 + + + gson + com.google.code.gson + 2.8.9 + + + org.mongodb + mongodb-driver-reactivestreams + 4.5.1 + + + + + + + sonatype-nexus-snapshots + + false + + + true + + https://oss.sonatype.org/content/repositories/snapshots + + + + \ No newline at end of file diff --git a/src/main/java/earth/krakatoa/KraCore.java b/src/main/java/earth/krakatoa/KraCore.java new file mode 100644 index 0000000..1055ec4 --- /dev/null +++ b/src/main/java/earth/krakatoa/KraCore.java @@ -0,0 +1,25 @@ +package earth.krakatoa; + +import earth.krakatoa.config.MongoConfig; +import earth.krakatoa.config.RedisConfig; +import earth.krakatoa.mongo.MongoManager; +import earth.krakatoa.redis.RedisManager; + +public class KraCore { + + private final MongoManager mongoManager; + private final RedisManager redisManager; + + public KraCore(MongoConfig mongoConfig, RedisConfig redisConfig) { + this.mongoManager = new MongoManager(); + this.mongoManager.connect(mongoConfig); + + this.redisManager = new RedisManager(); + this.redisManager.connect(redisConfig); + } + + public void shutdown() { + this.mongoManager.shutdown(); + this.redisManager.shutdown(); + } +} diff --git a/src/main/java/earth/krakatoa/config/MongoConfig.java b/src/main/java/earth/krakatoa/config/MongoConfig.java new file mode 100644 index 0000000..001686a --- /dev/null +++ b/src/main/java/earth/krakatoa/config/MongoConfig.java @@ -0,0 +1,14 @@ +package earth.krakatoa.config; + +import lombok.Data; + +@Data +public class MongoConfig { + + private final String hostname; + private final int port; + private final String username; + private final String password; + private final String database; + +} diff --git a/src/main/java/earth/krakatoa/config/RedisConfig.java b/src/main/java/earth/krakatoa/config/RedisConfig.java new file mode 100644 index 0000000..ae1f272 --- /dev/null +++ b/src/main/java/earth/krakatoa/config/RedisConfig.java @@ -0,0 +1,11 @@ +package earth.krakatoa.config; + +import lombok.Data; + +@Data +public class RedisConfig { + + private final String ip; + private final String port; + +} diff --git a/src/main/java/earth/krakatoa/mongo/MongoManager.java b/src/main/java/earth/krakatoa/mongo/MongoManager.java new file mode 100644 index 0000000..d1fd98a --- /dev/null +++ b/src/main/java/earth/krakatoa/mongo/MongoManager.java @@ -0,0 +1,39 @@ +package earth.krakatoa.mongo; + +import com.mongodb.ConnectionString; +import com.mongodb.MongoClientSettings; +import com.mongodb.ServerApi; +import com.mongodb.ServerApiVersion; +import com.mongodb.reactivestreams.client.MongoClient; +import com.mongodb.reactivestreams.client.MongoClients; +import earth.krakatoa.config.MongoConfig; +import lombok.Data; + +@Data +public class MongoManager { + + private ConnectionString connectionString; + + private ServerApi serverApi; + private MongoClientSettings mongoClientSettings; + private MongoClient mongoClient; + + public void connect(MongoConfig mongoConfig) { + this.connectionString = new ConnectionString( + "mongodb://" + mongoConfig.getUsername() + ":" + mongoConfig.getPassword() + "@" + + mongoConfig.getHostname() + ":" + mongoConfig.getPort() + "/?authSource=" + + mongoConfig.getDatabase() + + "&readPreference=primary&ssl=false"); + + this.serverApi = ServerApi.builder().version(ServerApiVersion.V1).build(); + + this.mongoClientSettings = MongoClientSettings.builder() + .applyConnectionString(this.connectionString).serverApi(this.serverApi).build(); + + this.mongoClient = MongoClients.create(this.mongoClientSettings); + } + + public void shutdown() { + this.mongoClient.close(); + } +} diff --git a/src/main/java/earth/krakatoa/redis/RedisManager.java b/src/main/java/earth/krakatoa/redis/RedisManager.java new file mode 100644 index 0000000..a445b0c --- /dev/null +++ b/src/main/java/earth/krakatoa/redis/RedisManager.java @@ -0,0 +1,25 @@ +package earth.krakatoa.redis; + +import earth.krakatoa.config.RedisConfig; +import lombok.Data; +import org.redisson.Redisson; +import org.redisson.api.RedissonClient; +import org.redisson.config.Config; + +@Data +public class RedisManager { + + private Config config; + private RedissonClient redissonClient; + + public void connect(RedisConfig redisConfig) { + this.config = new Config(); + this.config.useSingleServer().setAddress("redis://" + redisConfig.getIp() + ":" + redisConfig.getPort()); + + this.redissonClient = Redisson.create(this.config); + } + + public void shutdown() { + this.redissonClient.shutdown(); + } +}