mirror of
https://github.com/CarmJos/MineSQL.git
synced 2026-06-04 16:43:03 +08:00
refactor(api): 重新设计API接口
This commit is contained in:
+8
-2
@@ -10,8 +10,8 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<maven.compiler.source>${project.jdk.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${project.jdk.version}</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||
<maven.javadoc.skip>true</maven.javadoc.skip>
|
||||
@@ -81,6 +81,12 @@
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<artifactId>easyplugin-githubchecker</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<artifactId>githubreleases4j</artifactId>
|
||||
|
||||
+9
-9
@@ -1,10 +1,10 @@
|
||||
package cc.carm.plugin.easysql;
|
||||
package cc.carm.plugin.minesql;
|
||||
|
||||
import cc.carm.lib.easysql.api.SQLManager;
|
||||
import cc.carm.plugin.easysql.api.DBConfiguration;
|
||||
import cc.carm.plugin.easysql.api.EasySQLRegistry;
|
||||
import cc.carm.plugin.easysql.command.EasySQLCommand;
|
||||
import cc.carm.plugin.easysql.command.EasySQLHelpFormatter;
|
||||
import cc.carm.plugin.minesql.api.DBConfiguration;
|
||||
import cc.carm.plugin.minesql.api.SQLRegistry;
|
||||
import cc.carm.plugin.minesql.command.EasySQLCommand;
|
||||
import cc.carm.plugin.minesql.command.EasySQLHelpFormatter;
|
||||
import co.aikar.commands.CommandManager;
|
||||
import co.aikar.commands.InvalidCommandArgument;
|
||||
import co.aikar.commands.Locales;
|
||||
@@ -15,9 +15,9 @@ import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public interface EasySQLPluginPlatform {
|
||||
public interface MineSQLPlatform {
|
||||
|
||||
@NotNull EasySQLRegistry getRegistry();
|
||||
@NotNull SQLRegistry getRegistry();
|
||||
|
||||
@NotNull Map<String, DBConfiguration> readConfigurations();
|
||||
|
||||
@@ -25,8 +25,8 @@ public interface EasySQLPluginPlatform {
|
||||
|
||||
Logger getLogger();
|
||||
|
||||
default void initializeAPI(EasySQLRegistry registry) {
|
||||
EasySQLAPI.initializeAPI(registry);
|
||||
default void initializeAPI(SQLRegistry registry) {
|
||||
MineSQL.initializeAPI(registry);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
+20
-26
@@ -1,11 +1,11 @@
|
||||
package cc.carm.plugin.easysql;
|
||||
package cc.carm.plugin.minesql;
|
||||
|
||||
import cc.carm.lib.easysql.api.SQLManager;
|
||||
import cc.carm.lib.easysql.api.SQLQuery;
|
||||
import cc.carm.lib.easysql.manager.SQLManagerImpl;
|
||||
import cc.carm.lib.githubreleases4j.GithubReleases4J;
|
||||
import cc.carm.plugin.easysql.api.DBConfiguration;
|
||||
import cc.carm.plugin.easysql.api.EasySQLRegistry;
|
||||
import cc.carm.plugin.minesql.api.DBConfiguration;
|
||||
import cc.carm.plugin.minesql.api.SQLRegistry;
|
||||
import cn.beecp.BeeDataSource;
|
||||
import cn.beecp.BeeDataSourceConfig;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
@@ -13,25 +13,26 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.Unmodifiable;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class EasySQLRegistryImpl implements EasySQLRegistry {
|
||||
public class MineSQLRegistry implements SQLRegistry {
|
||||
public static final String REPO_OWNER = "CarmJos";
|
||||
public static final String REPO_NAME = "EasySQL-Plugin";
|
||||
|
||||
private static EasySQLRegistryImpl instance;
|
||||
private static MineSQLRegistry instance;
|
||||
|
||||
protected ExecutorService executorPool;
|
||||
protected EasySQLPluginPlatform platform;
|
||||
protected MineSQLPlatform platform;
|
||||
private final HashMap<String, SQLManagerImpl> sqlManagerRegistry = new HashMap<>();
|
||||
|
||||
protected EasySQLRegistryImpl(@NotNull EasySQLPluginPlatform platform) {
|
||||
protected MineSQLRegistry(@NotNull MineSQLPlatform platform) {
|
||||
this.platform = platform;
|
||||
EasySQLRegistryImpl.instance = this;
|
||||
MineSQLRegistry.instance = this;
|
||||
this.executorPool = Executors.newFixedThreadPool(2, (r) -> {
|
||||
Thread thread = new Thread(r, "EasySQLRegistry");
|
||||
thread.setDaemon(true);
|
||||
@@ -69,19 +70,12 @@ public class EasySQLRegistryImpl implements EasySQLRegistry {
|
||||
|
||||
@Override
|
||||
public @NotNull SQLManagerImpl get(@Nullable String id) throws NullPointerException {
|
||||
if (!this.sqlManagerRegistry.containsKey(id)) {
|
||||
throw new NullPointerException("并不存在ID为 #" + id + " 的SQLManager.");
|
||||
}
|
||||
return this.sqlManagerRegistry.get(id);
|
||||
return Objects.requireNonNull(this.sqlManagerRegistry.get(id), "并不存在ID为 #" + id + " 的SQLManager.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Optional<@Nullable SQLManagerImpl> getOptional(@Nullable String name) {
|
||||
try {
|
||||
return Optional.of(get(name));
|
||||
} catch (Exception exception) {
|
||||
return Optional.empty();
|
||||
}
|
||||
public @NotNull Optional<@Nullable SQLManagerImpl> getOptional(@Nullable String id) {
|
||||
return Optional.of(this.sqlManagerRegistry.get(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -91,7 +85,7 @@ public class EasySQLRegistryImpl implements EasySQLRegistry {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SQLManagerImpl create(@Nullable String name, @NotNull DBConfiguration configuration) {
|
||||
public @NotNull SQLManagerImpl create(@NotNull String name, @NotNull DBConfiguration configuration) throws Exception {
|
||||
BeeDataSourceConfig config = new BeeDataSourceConfig();
|
||||
config.setDriverClassName(configuration.getDriverClassName());
|
||||
config.setJdbcUrl(configuration.getUrlPrefix() + configuration.getUrl());
|
||||
@@ -118,17 +112,17 @@ public class EasySQLRegistryImpl implements EasySQLRegistry {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SQLManagerImpl create(@Nullable String name, @NotNull Properties properties) {
|
||||
public @NotNull SQLManagerImpl create(@NotNull String name, @NotNull Properties properties) {
|
||||
return create(name, new BeeDataSourceConfig(properties));
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SQLManagerImpl create(@Nullable String name, @NotNull String propertyFileName) {
|
||||
return create(name, new BeeDataSourceConfig(propertyFileName));
|
||||
public @NotNull SQLManagerImpl create(@NotNull String name, @NotNull DataSource source) {
|
||||
return new SQLManagerImpl(source, name);
|
||||
}
|
||||
|
||||
public @NotNull SQLManagerImpl create(@Nullable String name, @NotNull BeeDataSourceConfig configuration) {
|
||||
return new SQLManagerImpl(new BeeDataSource(configuration), name);
|
||||
public @NotNull SQLManagerImpl create(@NotNull String name, @NotNull BeeDataSourceConfig configuration) {
|
||||
return create(name, (DataSource) new BeeDataSource(configuration));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -149,11 +143,11 @@ public class EasySQLRegistryImpl implements EasySQLRegistry {
|
||||
return executorPool;
|
||||
}
|
||||
|
||||
public static EasySQLRegistryImpl getInstance() {
|
||||
public static MineSQLRegistry getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public EasySQLPluginPlatform getPlatform() {
|
||||
public MineSQLPlatform getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,9 +1,9 @@
|
||||
package cc.carm.plugin.easysql.command;
|
||||
package cc.carm.plugin.minesql.command;
|
||||
|
||||
import cc.carm.lib.easysql.api.SQLManager;
|
||||
import cc.carm.lib.easysql.api.SQLQuery;
|
||||
import cc.carm.plugin.easysql.EasySQLRegistryImpl;
|
||||
import cc.carm.plugin.easysql.util.VersionReader;
|
||||
import cc.carm.plugin.minesql.MineSQLRegistry;
|
||||
import cc.carm.plugin.minesql.util.VersionReader;
|
||||
import co.aikar.commands.BaseCommand;
|
||||
import co.aikar.commands.CommandHelp;
|
||||
import co.aikar.commands.CommandIssuer;
|
||||
@@ -49,7 +49,7 @@ public class EasySQLCommand extends BaseCommand {
|
||||
issuer.sendMessage("§8 - &f数据库驱动 h2-database §9" + reader.get("h2-driver"));
|
||||
|
||||
issuer.sendMessage("§r正在检查插件更新,请稍候...");
|
||||
EasySQLRegistryImpl.getInstance().checkUpdate(pluginVersion);
|
||||
MineSQLRegistry.getInstance().checkUpdate(pluginVersion);
|
||||
}
|
||||
|
||||
@Subcommand("list")
|
||||
@@ -59,7 +59,7 @@ public class EasySQLCommand extends BaseCommand {
|
||||
issuer.sendMessage("§c只有后台执行才能使用此命令。");
|
||||
return;
|
||||
}
|
||||
Map<String, ? extends SQLManager> runningManagers = EasySQLRegistryImpl.getInstance().list();
|
||||
Map<String, ? extends SQLManager> runningManagers = MineSQLRegistry.getInstance().list();
|
||||
if (runningManagers.isEmpty()) {
|
||||
issuer.sendMessage("§r当前无正在运行的数据库管理器。");
|
||||
} else {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cc.carm.plugin.easysql.command;
|
||||
package cc.carm.plugin.minesql.command;
|
||||
|
||||
import co.aikar.commands.*;
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package cc.carm.plugin.easysql.configuration;
|
||||
package cc.carm.plugin.minesql.configuration;
|
||||
|
||||
import cc.carm.plugin.easysql.api.DBConfiguration;
|
||||
import cc.carm.plugin.minesql.api.DBConfiguration;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Map;
|
||||
+1
-2
@@ -1,6 +1,5 @@
|
||||
package cc.carm.plugin.easysql.util;
|
||||
package cc.carm.plugin.minesql.util;
|
||||
|
||||
import cc.carm.plugin.easysql.util.JarResourceUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cc.carm.plugin.easysql.util;
|
||||
package cc.carm.plugin.minesql.util;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cc.carm.plugin.easysql.util;
|
||||
package cc.carm.plugin.minesql.util;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package cc.carm.plugin.easysql.util;
|
||||
package cc.carm.plugin.minesql.util;
|
||||
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
Reference in New Issue
Block a user