init project
commit
6265ac2c05
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>earth.krakatoa</groupId>
|
||||
<artifactId>KraCore</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>14</maven.compiler.source>
|
||||
<maven.compiler.target>14</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
|
||||
<build>
|
||||
<defaultGoal>clean install</defaultGoal>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||
</descriptorRefs>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<id>make-assembly</id>
|
||||
<phase>package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>9</source>
|
||||
<target>9</target>
|
||||
</configuration>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<artifactId>lombok</artifactId>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<scope>provided</scope>
|
||||
<version>1.18.22</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.redisson</groupId>
|
||||
<artifactId>redisson</artifactId>
|
||||
<version>3.17.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>gson</artifactId>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<version>2.8.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mongodb</groupId>
|
||||
<artifactId>mongodb-driver-reactivestreams</artifactId>
|
||||
<version>4.5.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<!-- https://github.com/TooTallNate/Java-WebSocket -->
|
||||
<repository>
|
||||
<id>sonatype-nexus-snapshots</id>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
</project>
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package earth.krakatoa.config;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RedisConfig {
|
||||
|
||||
private final String ip;
|
||||
private final String port;
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue