From 6456f0d2fe59a5e5147e1265d0f0d50153014bde Mon Sep 17 00:00:00 2001 From: carm Date: Sat, 14 Jan 2023 17:07:57 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"feat(support):=20=E6=81=A2=E5=A4=8DSp?= =?UTF-8?q?onge=E4=BB=A3=E7=A0=81"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 58bddd86aa63fb57a3aa92c32b0efa47840be451. --- .../cc/carm/plugin/minesql/MineSQLSponge.java | 184 ------------------ .../plugin/minesql/SpongeConfiguration.java | 89 --------- .../sponge/src/main/resource/easysql.conf | 17 -- 3 files changed, 290 deletions(-) delete mode 100644 platforms/sponge/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java delete mode 100644 platforms/sponge/src/main/java/cc/carm/plugin/minesql/SpongeConfiguration.java delete mode 100644 platforms/sponge/src/main/resource/easysql.conf diff --git a/platforms/sponge/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java b/platforms/sponge/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java deleted file mode 100644 index 48f1ed2..0000000 --- a/platforms/sponge/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java +++ /dev/null @@ -1,184 +0,0 @@ -package cc.carm.plugin.minesql; - -import cc.carm.lib.easysql.api.SQLManager; -import cc.carm.plugin.minesql.api.DBConfiguration; -import cc.carm.plugin.minesql.configuration.PluginConfiguration; -import cc.carm.plugin.minesql.util.DBPropertiesUtil; -import cc.carm.plugin.minesql.util.JarResourceUtils; -import cn.beecp.BeeDataSource; -import com.google.common.io.MoreFiles; -import com.google.inject.Inject; -import org.apache.logging.log4j.Logger; -import org.bstats.charts.SimplePie; -import org.bstats.sponge.Metrics; -import org.jetbrains.annotations.NotNull; -import org.spongepowered.api.Server; -import org.spongepowered.api.config.ConfigDir; -import org.spongepowered.api.event.Listener; -import org.spongepowered.api.event.lifecycle.StoppingEngineEvent; -import org.spongepowered.configurate.ConfigurateException; -import org.spongepowered.configurate.ConfigurationNode; -import org.spongepowered.configurate.hocon.HoconConfigurationLoader; -import org.spongepowered.plugin.PluginContainer; -import org.spongepowered.plugin.builtin.jvm.Plugin; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Properties; - -/** - * 2022/6/20
- * MineSQL
- * - * @author huanmeng_qwq - */ -@Plugin("easysql-plugin") -public class MineSQLSponge implements MineSQLPlatform { - @Inject - @ConfigDir(sharedRoot = false) - private Path configDirectory; - @Inject - private org.apache.logging.log4j.Logger logger; - - private static MineSQLSponge instance; - private ConfigurationNode root; - private PluginConfiguration configuration; - private MineSQLRegistry registry; - private PluginContainer pluginContainer; - - private final Metrics metrics; - - @Inject - public MineSQLSponge(Metrics.Factory factory, PluginContainer pluginContainer) { - this.metrics = factory.make(14075); - instance = this; - HoconConfigurationLoader loader = HoconConfigurationLoader.builder().path(resolveConfig()).build(); - try { - this.root = loader.load(); - this.configuration = new SpongeConfiguration(root); - this.registry = new MineSQLRegistry(this); - this.pluginContainer = pluginContainer; - enable(); - } catch (ConfigurateException ex) { - throw new RuntimeException(ex); - } - } - - @Listener - public void disable(StoppingEngineEvent e) { - getLog().info("终止全部数据库连接..."); - for (String dbName : new HashSet<>(getRegistry().list().keySet())) { - getLog().info(" 正在关闭数据库 " + dbName + "..."); - SQLManager manager = getRegistry().get(dbName); - getRegistry().shutdown(manager, activeQueries -> { - getLog().info(" 数据库 " + dbName + " 仍有有 " + activeQueries + " 条活动查询,强制关闭中..."); - if (manager.getDataSource() instanceof BeeDataSource) { - BeeDataSource dataSource = (BeeDataSource) manager.getDataSource(); - dataSource.close(); //Close bee connection pool - } - }); - } - getRegistry().getManagers().clear(); // release all managers - } - - - public void enable() { - /* - //todo acf-commands not support sponge8 - getLog().info("初始化指令管理器..."); - getLog().info("注册相关指令..."); - */ - - if (getConfiguration().isMetricsEnabled()) { - getLog().info("启用统计数据..."); - metrics.addCustomChart(new SimplePie("update_check", - () -> getConfiguration().isUpdateCheckerEnabled() ? "ENABLED" : "DISABLED") - ); - metrics.addCustomChart(new SimplePie("properties_configuration", - () -> getConfiguration().isPropertiesEnabled() ? "ENABLED" : "DISABLED") - ); - } - - if (getConfiguration().isUpdateCheckerEnabled()) { - getLog().info("开始检查更新..."); - getRegistry().checkUpdate(pluginContainer.metadata().version().getQualifier()); - } else { - getLog().info("已禁用检查更新,跳过。"); - } - } - - @Override - public @NotNull Map readConfigurations() { - return configuration.getDBConfigurations(); - } - - @Override - public @NotNull Map readProperties() { - if (!getConfiguration().isPropertiesEnabled()) return new HashMap<>(); - String propertiesFolder = getConfiguration().getPropertiesFolder(); - if (propertiesFolder == null || propertiesFolder.length() == 0) return new HashMap<>(); - - File file = new File(configDirectory.toFile(), propertiesFolder); - if (!file.exists() || !file.isDirectory()) { - try { - JarResourceUtils.copyFolderFromJar( - "db-properties", file, - JarResourceUtils.CopyOption.COPY_IF_NOT_EXIST - ); - } catch (Exception ex) { - logger.error("初始化properties示例文件失败:" + ex.getMessage()); - } - } - - return DBPropertiesUtil.readFromFolder(file); - } - - - private Path resolveConfig() { - Path path = configDirectory.resolve("easysql.conf"); - if (!Files.exists(path)) { - try { - //noinspection UnstableApiUsage - MoreFiles.createParentDirectories(configDirectory); - try (InputStream is = getClass().getClassLoader().getResourceAsStream("easysql.conf")) { - Files.copy(is, path); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - return path; - } - - public ConfigurationNode getRootConfig() { - return root; - } - - public PluginConfiguration getConfiguration() { - return configuration; - } - - @Override - public @NotNull MineSQLRegistry getRegistry() { - return registry; - } - - public java.util.logging.Logger getLogger() { - return java.util.logging.Logger.getLogger("easysql-plugin"); - } - - public static MineSQLSponge getInstance() { - return instance; - } - - public Logger getLog() { - return logger; - } -} diff --git a/platforms/sponge/src/main/java/cc/carm/plugin/minesql/SpongeConfiguration.java b/platforms/sponge/src/main/java/cc/carm/plugin/minesql/SpongeConfiguration.java deleted file mode 100644 index bfe4eed..0000000 --- a/platforms/sponge/src/main/java/cc/carm/plugin/minesql/SpongeConfiguration.java +++ /dev/null @@ -1,89 +0,0 @@ -package cc.carm.plugin.minesql; - -import cc.carm.plugin.minesql.api.DBConfiguration; -import cc.carm.plugin.minesql.api.SQLDriverType; -import cc.carm.plugin.minesql.configuration.PluginConfiguration; -import org.jetbrains.annotations.NotNull; -import org.spongepowered.configurate.ConfigurationNode; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * 2022/6/20
- * MineSQL
- * - * @author huanmeng_qwq - */ -public class SpongeConfiguration implements PluginConfiguration { - private final ConfigurationNode config; - - public SpongeConfiguration(ConfigurationNode config) { - this.config = config; - } - - @Override - public boolean isDebugEnabled() { - return config.node("debug").getBoolean(false); - } - - @Override - public boolean isMetricsEnabled() { - return config.node("metrics").getBoolean(false); - } - - @Override - public boolean isUpdateCheckerEnabled() { - return config.node("check-update").getBoolean(true); - } - - @Override - public boolean isPropertiesEnabled() { - return config.node("properties", "enable").getBoolean(true); - } - - @Override - public String getPropertiesFolder() { - return config.node("properties", "folder").getString("db-properties/"); - } - - @Override - public @NotNull Map getDBConfigurations() { - Map dbConfigurations = new LinkedHashMap<>(); - ConfigurationNode dbConfigurationsSection = config.node("databases"); - if (dbConfigurationsSection != null) { - for (Map.Entry dbEntry : dbConfigurationsSection.childrenMap().entrySet()) { - if (dbEntry.getKey().toString().startsWith("example-")) continue; - ConfigurationNode dbSection = dbEntry.getValue(); - if (dbSection == null) continue; - - String driverString = dbSection.getString("driver-type"); - SQLDriverType driverType = SQLDriverType.parse(driverString); - if (driverType == null) { - MineSQLSponge.getInstance().getLog().error("不存在预设的驱动类型 " + driverString + "," + " 请检查配置文件 databases." + dbEntry + "。"); - continue; - } - String host = dbSection.getString("host"); - if (host == null) { - MineSQLSponge.getInstance().getLog().error("地址配置不得为空," + " 请检查配置文件 databases." + dbEntry + "。"); - continue; - } - - int port = dbSection.node("port").getInt(-1); - if (port < 0) { - MineSQLSponge.getInstance().getLog().error("端口未配置正确," + " 请检查配置文件 databases." + dbEntry + "。"); - continue; - } - DBConfiguration dbConfiguration = DBConfiguration.create(driverType, host + ":" + port); - - String username = dbSection.getString("username"); - String password = dbSection.getString("password"); - - dbConfiguration.setUsername(username); - dbConfiguration.setPassword(password); - dbConfigurations.put(dbEntry.getKey().toString(), dbConfiguration); - } - } - return dbConfigurations; - } -} diff --git a/platforms/sponge/src/main/resource/easysql.conf b/platforms/sponge/src/main/resource/easysql.conf deleted file mode 100644 index 291fa70..0000000 --- a/platforms/sponge/src/main/resource/easysql.conf +++ /dev/null @@ -1,17 +0,0 @@ -debug = false -metrics = false -check-update = true -properties { - enable = true - folder = "db-properties/" -} -databases { - example-test { - driver-type = "MYSQL" - host = "localhost" - port = -1 - username = "root" - password = "root" - } -} -