From 708d3f8f3fb41beea4482a5fa5b8b3ab3fc21e2e Mon Sep 17 00:00:00 2001 From: carm Date: Sun, 18 Dec 2022 03:58:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(load):=20=E4=BF=AE=E5=A4=8D=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=8A=A0=E8=BD=BD=E6=97=B6=E5=87=BA=E7=8E=B0=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/pom.xml | 2 +- .../api/conf/impl/FileBasedConfig.java | 6 +- core/pom.xml | 4 +- .../cc/carm/plugin/minesql/MineSQLCore.java | 32 ++++++--- .../carm/plugin/minesql/MineSQLRegistry.java | 19 ++++-- ...asySQLCommand.java => MineSQLCommand.java} | 6 +- ...rmatter.java => MineSQLHelpFormatter.java} | 4 +- .../minesql/conf/PluginConfiguration.java | 1 + .../plugin/minesql/conf/SQLSourceGroup.java | 12 ++++ platforms/bukkit/pom.xml | 5 +- .../cc/carm/plugin/minesql/MineSQLBukkit.java | 3 - platforms/bungee/pom.xml | 4 +- .../cc/carm/plugin/minesql/MineSQLBungee.java | 3 - platforms/velocity/pom.xml | 7 +- .../carm/plugin/minesql/MineSQLVelocity.java | 3 - plugin/pom.xml | 67 ++++++++++++++++++- pom.xml | 11 +-- 17 files changed, 132 insertions(+), 57 deletions(-) rename core/src/main/java/cc/carm/plugin/minesql/command/{EasySQLCommand.java => MineSQLCommand.java} (97%) rename core/src/main/java/cc/carm/plugin/minesql/command/{EasySQLHelpFormatter.java => MineSQLHelpFormatter.java} (94%) diff --git a/api/pom.xml b/api/pom.xml index 61250a5..816d670 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 4.0.0 diff --git a/api/src/main/java/cc/carm/plugin/minesql/api/conf/impl/FileBasedConfig.java b/api/src/main/java/cc/carm/plugin/minesql/api/conf/impl/FileBasedConfig.java index 568f9f5..8e668ec 100644 --- a/api/src/main/java/cc/carm/plugin/minesql/api/conf/impl/FileBasedConfig.java +++ b/api/src/main/java/cc/carm/plugin/minesql/api/conf/impl/FileBasedConfig.java @@ -27,7 +27,11 @@ public class FileBasedConfig extends SQLDriverConfig { @Override public SQLSourceConfig createSource() { File file = new File(MineSQL.getDataSourceFolder(), filePath); - return SQLSourceConfig.create(getType().getDriverClass(), file.getAbsolutePath(), getType().getInitializer()); + return SQLSourceConfig.create( + getType().getDriverClass(), + getType().getJdbcPrefix() + file.getAbsolutePath(), + getType().getInitializer() + ); } @Override diff --git a/core/pom.xml b/core/pom.xml index 2a5fb2e..307c8cc 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 4.0.0 @@ -130,7 +130,7 @@ com.google.guava guava - provided + compile diff --git a/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java b/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java index ec15a58..93e6e8b 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java +++ b/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java @@ -6,8 +6,8 @@ import cc.carm.lib.easyplugin.utils.JarResourceUtils; import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.githubreleases4j.GithubReleases4J; import cc.carm.plugin.minesql.api.source.SQLSourceConfig; -import cc.carm.plugin.minesql.command.EasySQLCommand; -import cc.carm.plugin.minesql.command.EasySQLHelpFormatter; +import cc.carm.plugin.minesql.command.MineSQLCommand; +import cc.carm.plugin.minesql.command.MineSQLHelpFormatter; import cc.carm.plugin.minesql.conf.PluginConfiguration; import cc.carm.plugin.minesql.conf.SQLSourceGroup; import cc.carm.plugin.minesql.util.DBPropertiesUtil; @@ -43,6 +43,9 @@ public class MineSQLCore implements IMineSQL { this.config = new PluginConfiguration(); this.configProvider.initialize(this.config); + getLogger().info("初始化MineSQL API..."); + MineSQL.initializeAPI(this); + getLogger().info("初始化注册池..."); this.registry = new MineSQLRegistry(this); @@ -78,7 +81,9 @@ public class MineSQLCore implements IMineSQL { public @NotNull Map readConfigurations() { SQLSourceGroup group = getConfig().SOURCES.getNotNull(); Map sources = new LinkedHashMap<>(); - group.getSources().forEach((k, v) -> sources.put(k, v.createSource())); + group.getSources().entrySet().stream() + .filter(entry -> !entry.getKey().startsWith("example-")) + .forEach(entry -> sources.put(entry.getKey(), entry.getValue().createSource())); return sources; } @@ -90,12 +95,17 @@ public class MineSQLCore implements IMineSQL { File file = new File(getPluginFolder(), propertiesFolder); if (!file.exists() || !file.isDirectory()) { - try { - JarResourceUtils.copyFolderFromJar( - "db-properties", file, JarResourceUtils.CopyOption.COPY_IF_NOT_EXIST - ); - } catch (Exception ex) { - getLogger().severe("初始化properties示例文件失败:" + ex.getMessage()); + if ((propertiesFolder.equals("db-properties/") || propertiesFolder.equals("db-properties"))) { + try { + JarResourceUtils.copyFolderFromJar( + "db-properties", getPluginFolder(), + JarResourceUtils.CopyOption.COPY_IF_NOT_EXIST + ); + } catch (Exception ex) { + getLogger().severe("初始化properties示例文件失败:" + ex.getMessage()); + } + } else { + file.mkdirs(); } } @@ -105,7 +115,7 @@ public class MineSQLCore implements IMineSQL { @SuppressWarnings("deprecation") protected void initializeCommands(CommandManager commandManager) { commandManager.enableUnstableAPI("help"); - commandManager.setHelpFormatter(new EasySQLHelpFormatter(commandManager)); + commandManager.setHelpFormatter(new MineSQLHelpFormatter(commandManager)); commandManager.getLocales().setDefaultLocale(Locales.SIMPLIFIED_CHINESE); commandManager.getCommandContexts().registerContext(SQLManager.class, c -> { String name = c.popFirstArg(); @@ -119,7 +129,7 @@ public class MineSQLCore implements IMineSQL { if (c.getIssuer().isPlayer()) return ImmutableList.of(); else return ImmutableList.copyOf(getRegistry().list().keySet()); }); - commandManager.registerCommand(new EasySQLCommand(this)); + commandManager.registerCommand(new MineSQLCommand(this)); } public void checkUpdate(String currentVersion) { diff --git a/core/src/main/java/cc/carm/plugin/minesql/MineSQLRegistry.java b/core/src/main/java/cc/carm/plugin/minesql/MineSQLRegistry.java index cc8ba40..99dd808 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/MineSQLRegistry.java +++ b/core/src/main/java/cc/carm/plugin/minesql/MineSQLRegistry.java @@ -45,21 +45,25 @@ public class MineSQLRegistry implements SQLRegistry { dbProperties.forEach((id, properties) -> { try { + core.getLogger().info("正在初始化数据库 #" + id + " ..."); SQLManagerImpl sqlManager = create(id, properties); this.managers.put(id, sqlManager); - } catch (Exception exception) { - core.getLogger().warning("初始化SQLManager(#" + id + ") 出错,请检查配置文件."); - exception.printStackTrace(); + core.getLogger().info("完成成初始化数据库 #" + id + " 。"); + } catch (Exception ex) { + core.getLogger().severe("初始化SQLManager(#" + id + ") 出错,请检查配置文件: " + ex.getMessage()); + ex.printStackTrace(); } }); dbConfigurations.forEach((id, configuration) -> { try { + core.getLogger().info("正在初始化数据库 #" + id + " ..."); SQLManagerImpl sqlManager = create(id, configuration); this.managers.put(id, sqlManager); - } catch (Exception exception) { - core.getLogger().warning("初始化SQLManager(#" + id + ") 出错,请检查配置文件."); - exception.printStackTrace(); + core.getLogger().info("完成初始化数据库 #" + id + " 。"); + } catch (Exception ex) { + core.getLogger().severe("初始化SQLManager(#" + id + ") 出错,请检查配置文件: " + ex.getMessage()); + ex.printStackTrace(); } }); @@ -69,7 +73,8 @@ public class MineSQLRegistry implements SQLRegistry { this.managers.forEach((k, manager) -> { getCore().getLogger().info(" 正在关闭数据库 " + k + "..."); shutdown(manager, activeQueries -> { - getCore().getLogger().info(" 数据库 " + k + " 仍有有 " + activeQueries + " 条活动查询"); + if (activeQueries.isEmpty()) return; + getCore().getLogger().info(" 数据库 " + k + " 仍有 " + activeQueries.size() + " 条活动查询"); if (manager.getDataSource() instanceof BeeDataSource && this.core.getConfig().SETTINGS.FORCE_CLOSE.getNotNull()) { getCore().getLogger().info(" 将强制关闭全部活跃链接..."); diff --git a/core/src/main/java/cc/carm/plugin/minesql/command/EasySQLCommand.java b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java similarity index 97% rename from core/src/main/java/cc/carm/plugin/minesql/command/EasySQLCommand.java rename to core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java index 1f6b9c1..1d9ee50 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/command/EasySQLCommand.java +++ b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java @@ -15,13 +15,13 @@ import java.util.UUID; @SuppressWarnings("unused") -@CommandAlias("EasySQL") +@CommandAlias("MineSQL") @Description("MineSQL的主指令,用于开发者进行调试,只允许后台执行。") -public class EasySQLCommand extends BaseCommand { +public class MineSQLCommand extends BaseCommand { protected final MineSQLCore core; - public EasySQLCommand(MineSQLCore core) { + public MineSQLCommand(MineSQLCore core) { this.core = core; } diff --git a/core/src/main/java/cc/carm/plugin/minesql/command/EasySQLHelpFormatter.java b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLHelpFormatter.java similarity index 94% rename from core/src/main/java/cc/carm/plugin/minesql/command/EasySQLHelpFormatter.java rename to core/src/main/java/cc/carm/plugin/minesql/command/MineSQLHelpFormatter.java index f194b78..952de11 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/command/EasySQLHelpFormatter.java +++ b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLHelpFormatter.java @@ -2,9 +2,9 @@ package cc.carm.plugin.minesql.command; import co.aikar.commands.*; -public class EasySQLHelpFormatter extends CommandHelpFormatter { +public class MineSQLHelpFormatter extends CommandHelpFormatter { - public EasySQLHelpFormatter(CommandManager manager) { + public MineSQLHelpFormatter(CommandManager manager) { super(manager); } diff --git a/core/src/main/java/cc/carm/plugin/minesql/conf/PluginConfiguration.java b/core/src/main/java/cc/carm/plugin/minesql/conf/PluginConfiguration.java index 8d42ba2..ae748a0 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/conf/PluginConfiguration.java +++ b/core/src/main/java/cc/carm/plugin/minesql/conf/PluginConfiguration.java @@ -42,6 +42,7 @@ public class PluginConfiguration extends ConfigurationRoot { .asValue(SQLSourceGroup.class).fromSection() .parseValue((w, d) -> SQLSourceGroup.parse(w)) .serializeValue(SQLSourceGroup::serialize) + .defaults(SQLSourceGroup.defaults()) .build(); public static class PropertiesConfig extends ConfigurationRoot { diff --git a/core/src/main/java/cc/carm/plugin/minesql/conf/SQLSourceGroup.java b/core/src/main/java/cc/carm/plugin/minesql/conf/SQLSourceGroup.java index 2874e49..68cda20 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/conf/SQLSourceGroup.java +++ b/core/src/main/java/cc/carm/plugin/minesql/conf/SQLSourceGroup.java @@ -32,6 +32,18 @@ public class SQLSourceGroup { return data; } + public static @NotNull SQLSourceGroup defaults() { + LinkedHashMap configs = new LinkedHashMap<>(); + configs.put("example-mysql", new RemoteAuthConfig( + SQLDriverType.MARIADB, "127.0.0.1", 3306, + "minecraft", "minecraft", "minecraft", + "?sslMode=false" + )); + configs.put("example-h2-file", new FileBasedConfig(SQLDriverType.H2_FILE, "test")); + configs.put("example-h2-mem", new H2MemConfig("temp")); + return new SQLSourceGroup(configs); + } + public static @NotNull SQLSourceGroup parse(ConfigurationWrapper rootSection) { LinkedHashMap configs = new LinkedHashMap<>(); for (String name : rootSection.getKeys(false)) { diff --git a/platforms/bukkit/pom.xml b/platforms/bukkit/pom.xml index 331855a..38aba57 100644 --- a/platforms/bukkit/pom.xml +++ b/platforms/bukkit/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 ../../pom.xml 4.0.0 @@ -69,7 +69,6 @@ cc.carm.lib easyplugin-main ${deps.easyplugin.version} - true compile @@ -84,7 +83,6 @@ org.bstats bstats-bukkit 3.0.0 - true compile @@ -92,7 +90,6 @@ co.aikar acf-paper 0.5.1-SNAPSHOT - true compile diff --git a/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java b/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java index 6fc5aa1..860b2c6 100644 --- a/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java +++ b/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java @@ -22,9 +22,6 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform { log("加载基础核心..."); this.core = new MineSQLCore(this); - - log("初始化MineSQL API..."); - MineSQL.initializeAPI(this.core); } @Override diff --git a/platforms/bungee/pom.xml b/platforms/bungee/pom.xml index e57f171..dea739e 100644 --- a/platforms/bungee/pom.xml +++ b/platforms/bungee/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 ../../pom.xml 4.0.0 @@ -94,7 +94,6 @@ org.bstats bstats-bungeecord 3.0.0 - true compile @@ -102,7 +101,6 @@ co.aikar acf-bungee 0.5.1-SNAPSHOT - true compile diff --git a/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java b/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java index 7737d9c..1a1baee 100644 --- a/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java +++ b/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java @@ -25,9 +25,6 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform { getLogger().info("加载基础核心..."); this.core = new MineSQLCore(this); - - getLogger().info("初始化MineSQL API..."); - MineSQL.initializeAPI(this.core); } @Override diff --git a/platforms/velocity/pom.xml b/platforms/velocity/pom.xml index 4099858..e9b84c8 100644 --- a/platforms/velocity/pom.xml +++ b/platforms/velocity/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 ../../pom.xml 4.0.0 @@ -66,6 +66,7 @@ + ${project.parent.groupId} minesql-core @@ -73,6 +74,7 @@ compile + com.velocitypowered velocity-api @@ -85,16 +87,13 @@ bstats-velocity 3.0.0 true - compile - co.aikar acf-velocity 0.5.1-SNAPSHOT true - compile diff --git a/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java b/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java index 49dfb06..6d42a7d 100644 --- a/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java +++ b/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java @@ -53,9 +53,6 @@ public class MineSQLVelocity implements MineSQLPlatform { getLogger().info("加载基础核心..."); this.core = new MineSQLCore(this); - - getLogger().info("初始化MineSQL API..."); - MineSQL.initializeAPI(this.core); } @Subscribe(order = PostOrder.FIRST) diff --git a/plugin/pom.xml b/plugin/pom.xml index 8486f58..c0d7ff1 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 0.0.3-SNAPSHOT + 1.0.0 4.0.0 @@ -45,6 +45,18 @@ + + org.apache.maven.plugins + maven-source-plugin + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-jar-plugin + org.apache.maven.plugins maven-shade-plugin @@ -79,6 +91,20 @@ cc.carm.lib.githubreleases4j cc.carm.plugin.minesql.lib.githubreleases4j + + cc.carm.lib.configuration + cc.carm.plugin.minesql.lib.configuration + + + org.bspfsystems.yamlconfiguration + cc.carm.plugin.minesql.lib.configuration.yaml + + + + org.yaml.snakeyaml + cc.carm.plugin.minesql.lib.yaml + + co.aikar.commands cc.carm.plugin.minesql.lib.acf @@ -87,6 +113,45 @@ co.aikar.locales cc.carm.plugin.minesql.lib.locales + + cn.beecp + cc.carm.plugin.minesql.lib.beecp + + + + org.h2 + cc.carm.plugin.minesql.driver.h2 + + + org.mariadb + cc.carm.plugin.minesql.driver.mariadb + + + com.mysql + cc.carm.plugin.minesql.driver.mysql + + + + com.sun.jna + cc.carm.plugin.minesql.lib.jna + + + com.google + cc.carm.plugin.minesql.lib.google + + + com.github + cc.carm.plugin.minesql.lib.github + + + org.checkerframework + cc.carm.plugin.minesql.lib.checkerframework + + + waffle + cc.carm.plugin.minesql.lib.waffle + + diff --git a/pom.xml b/pom.xml index 56ed148..aba1eb1 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ cc.carm.plugin minesql-parent pom - 0.0.3-SNAPSHOT + 1.0.0 api core @@ -182,14 +182,7 @@ - ${project.basedir}/asset/ - true - - **/* - - - - ${project.basedir}/api-docs/ + ${project.basedir}/.asset/ true **/*