diff --git a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java index 097781b..3eaa401 100644 --- a/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/ColumnBuilder.java @@ -3,7 +3,7 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.ColumnInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.PathConsts; @@ -20,7 +20,7 @@ public class ColumnBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(ColumnBuilder.class); - private static final PropTools CONFIG = new PropTools(PathConsts.MYSQL_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); private final String schemaName; private final String tableName; diff --git a/src/main/java/space/caoshd/otone/builder/IndexBuilder.java b/src/main/java/space/caoshd/otone/builder/IndexBuilder.java index 30ed0b4..6436ce0 100644 --- a/src/main/java/space/caoshd/otone/builder/IndexBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/IndexBuilder.java @@ -3,7 +3,7 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.IndexInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.PathConsts; @@ -18,8 +18,8 @@ public class IndexBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(IndexBuilder.class); - private static final PropTools CONFIG = - new PropTools(PathConsts.MYSQL_PROPERTIES_PATH); + private static final PropHelper CONFIG = + new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); public static List loadIndexInfo(String schemaName, String tableName) { diff --git a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java index 728969b..7314b09 100644 --- a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java @@ -1,7 +1,7 @@ package space.caoshd.otone.builder; import space.caoshd.otone.entity.ClassInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.PathConsts; import space.caoshd.otone.util.StrUtils; @@ -10,12 +10,12 @@ import java.util.List; public class InfoClsBuilder { - private static final PropTools CONFIG = new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); private final ClassInfo classInfo = new ClassInfo(); private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { - List tablePrefixes = CONFIG.getStrings(CfgUtils.DATABASE_TABLE_PREFIXES); + List tablePrefixes = CONFIG.getStringList(CfgUtils.DATABASE_TABLE_PREFIXES); for (String tablePrefix : tablePrefixes) { tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix); } diff --git a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java index 5bc532c..e63577d 100644 --- a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java @@ -6,7 +6,7 @@ import space.caoshd.otone.entity.ClassInfo; import space.caoshd.otone.entity.ContextInfo; import space.caoshd.otone.entity.OutputInfo; import space.caoshd.otone.entity.TableInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.FileUtils; import space.caoshd.otone.util.PathConsts; @@ -22,7 +22,7 @@ public class SourceBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(SourceBuilder.class); - private static final PropTools CONFIG = new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); private final Map extra = new HashMap<>(); private TableInfo tableInfo; private OutputInfo outputInfo; diff --git a/src/main/java/space/caoshd/otone/builder/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index d651f58..607c92c 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -5,7 +5,7 @@ import org.slf4j.LoggerFactory; import space.caoshd.otone.entity.ColumnInfo; import space.caoshd.otone.entity.IndexInfo; import space.caoshd.otone.entity.TableInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.CfgUtils; import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; @@ -25,13 +25,13 @@ public class TableBuilder { private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); - private static final PropTools MYSQL_CONFIG = new PropTools(PathConsts.MYSQL_PROPERTIES_PATH); + private static final PropHelper MYSQL_CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); - private static final PropTools CONFIG = new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); public List build() { List result = new ArrayList<>(); - List schemaNames = CONFIG.getStrings(CfgUtils.DATABASE_NAME_SCHEMAS); + List schemaNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS); if (schemaNames.isEmpty()) { String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL); List> tables = DBUtils.list(sql); @@ -49,7 +49,7 @@ public class TableBuilder { public List build(String schemaName) { List result = new ArrayList<>(); - List tableNames = CONFIG.getStrings(CfgUtils.DATABASE_NAME_TABLES); + List tableNames = CONFIG.getStringList(CfgUtils.DATABASE_NAME_TABLES); if (tableNames.isEmpty()) { String sql = MYSQL_CONFIG.getString(SqlConsts.TABLE_SQL_SCHEMA); List params = Collections.singletonList(schemaName); diff --git a/src/main/java/space/caoshd/otone/tool/PropTools.java b/src/main/java/space/caoshd/otone/helper/PropHelper.java similarity index 65% rename from src/main/java/space/caoshd/otone/tool/PropTools.java rename to src/main/java/space/caoshd/otone/helper/PropHelper.java index f1588a5..114b5db 100644 --- a/src/main/java/space/caoshd/otone/tool/PropTools.java +++ b/src/main/java/space/caoshd/otone/helper/PropHelper.java @@ -1,4 +1,4 @@ -package space.caoshd.otone.tool; +package space.caoshd.otone.helper; import space.caoshd.otone.util.ResUtils; @@ -12,18 +12,18 @@ import java.util.Objects; import java.util.Optional; import java.util.Properties; -public class PropTools { +public class PropHelper { private Map propertyMap; private Properties properties; - public PropTools(InputStream stream) { + public PropHelper(InputStream stream) { loadProperties(stream); parseProperties(); } - public PropTools(String filename) { + public PropHelper(String filename) { this(ResUtils.getClassPathFileStream(filename)); } @@ -51,34 +51,58 @@ public class PropTools { return Optional.ofNullable(propertyMap.get(key)).orElse(defaultValue); } - public Integer getInt(String key) { + public Integer getInt(String key, Integer defaultInt) { + String value = propertyMap.get(key); + if (value == null || value.trim().isEmpty()) { + return defaultInt; + } return Integer.valueOf(propertyMap.get(key)); } - public Boolean getBoolean(String key) { + public Integer getInt(String key) { + return getInt(key, 0); + } + + public Boolean getBoolean(String key, Boolean defaultBoolean) { String value = propertyMap.get(key); - if (value == null) { - return Boolean.FALSE; + if (value == null || value.trim().isEmpty()) { + return defaultBoolean; } return Boolean.valueOf(value); } - public Long getLong(String key) { + public Boolean getBoolean(String key) { + return getBoolean(key, false); + } + + public Long getLong(String key, Long defaultLong) { + String value = propertyMap.get(key); + if (value == null || value.trim().isEmpty()) { + return defaultLong; + } return Long.valueOf(propertyMap.get(key)); } - public List getStrings(String key) { - List result = new ArrayList<>(); + public Long getLong(String key) { + return getLong(key, 0L); + } + + public List getStringList(String key, List defaultStringList) { String values = propertyMap.get(key); if (Objects.isNull(values)) { - return result; + return defaultStringList; } + List result = new ArrayList<>(); for (String value : values.split(",")) { result.add(value.trim()); } return result; } + public List getStringList(String key) { + return getStringList(key, new ArrayList<>()); + } + public Map getPropertyMap() { return propertyMap; } diff --git a/src/main/java/space/caoshd/otone/util/CfgUtils.java b/src/main/java/space/caoshd/otone/util/CfgUtils.java index 283c39c..b8f1620 100644 --- a/src/main/java/space/caoshd/otone/util/CfgUtils.java +++ b/src/main/java/space/caoshd/otone/util/CfgUtils.java @@ -1,6 +1,6 @@ package space.caoshd.otone.util; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import java.nio.file.Paths; @@ -102,7 +102,7 @@ public class CfgUtils { + ".interface.vm"; public static final String DEFAULT_TEMPLATE_PATH_MAPPER = "template/mapper.vm"; public static final String DEFAULT_TEMPLATE_PATH_MAPPER_XML = "template/mapper.xml.vm"; - private static final PropTools CONFIG = new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); private static final String JAVA_FILE_SUFFIX = ".java"; // 私有化构造器 diff --git a/src/main/java/space/caoshd/otone/util/DBUtils.java b/src/main/java/space/caoshd/otone/util/DBUtils.java index b97c99d..bb90173 100644 --- a/src/main/java/space/caoshd/otone/util/DBUtils.java +++ b/src/main/java/space/caoshd/otone/util/DBUtils.java @@ -1,6 +1,6 @@ package space.caoshd.otone.util; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import java.io.InputStream; import java.sql.Connection; @@ -21,11 +21,11 @@ public class DBUtils { try { InputStream datasourcePropertiesStream = ResUtils.getClassPathFileStream( PathConsts.DATASOURCE_PROPERTIES_PATH); - PropTools propTools = new PropTools(datasourcePropertiesStream); - String username = propTools.getString("username"); - String password = propTools.getString("password"); - String driverClassName = propTools.getString("driver-class-name"); - String url = propTools.getString("url"); + PropHelper propHelper = new PropHelper(datasourcePropertiesStream); + String username = propHelper.getString("username"); + String password = propHelper.getString("password"); + String driverClassName = propHelper.getString("driver-class-name"); + String url = propHelper.getString("url"); Class.forName(driverClassName); return DriverManager.getConnection(url, username, password); } catch (Exception e) { diff --git a/src/main/java/space/caoshd/otone/util/VelocityUtils.java b/src/main/java/space/caoshd/otone/util/VelocityUtils.java index e6128c9..1623cc5 100644 --- a/src/main/java/space/caoshd/otone/util/VelocityUtils.java +++ b/src/main/java/space/caoshd/otone/util/VelocityUtils.java @@ -7,7 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.builder.TableBuilder; import space.caoshd.otone.entity.ContextInfo; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import java.io.FileWriter; import java.io.IOException; @@ -19,8 +19,8 @@ public class VelocityUtils { private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); public static void render(String templatePath, String outputPath, ContextInfo ctx) { - PropTools propTools = new PropTools(PathConsts.VELOCITY_PROPERTIES_PATH); - Properties properties = propTools.getProperties(); + PropHelper propHelper = new PropHelper(PathConsts.VELOCITY_PROPERTIES_PATH); + Properties properties = propHelper.getProperties(); Velocity.init(properties); VelocityContext context = new VelocityContext(); diff --git a/src/test/java/space/caoshd/otone/builder/SourceBuilderTest.java b/src/test/java/space/caoshd/otone/builder/SourceBuilderTest.java index d8ba754..e8453b4 100644 --- a/src/test/java/space/caoshd/otone/builder/SourceBuilderTest.java +++ b/src/test/java/space/caoshd/otone/builder/SourceBuilderTest.java @@ -1,12 +1,12 @@ package space.caoshd.otone.builder; import org.junit.Test; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import space.caoshd.otone.util.PathConsts; public class SourceBuilderTest { - private static final PropTools CONFIG = new PropTools(PathConsts.MYSQL_PROPERTIES_PATH); + private static final PropHelper CONFIG = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); @Test public void build() { diff --git a/src/test/java/space/caoshd/otone/tool/PropToolsTest.java b/src/test/java/space/caoshd/otone/helper/PropHelperTest.java similarity index 68% rename from src/test/java/space/caoshd/otone/tool/PropToolsTest.java rename to src/test/java/space/caoshd/otone/helper/PropHelperTest.java index fd7d430..c2c718c 100644 --- a/src/test/java/space/caoshd/otone/tool/PropToolsTest.java +++ b/src/test/java/space/caoshd/otone/helper/PropHelperTest.java @@ -1,4 +1,4 @@ -package space.caoshd.otone.tool; +package space.caoshd.otone.helper; import org.junit.Assert; import org.junit.Test; @@ -9,14 +9,14 @@ import space.caoshd.otone.util.ResUtils; import java.io.InputStream; import java.util.List; -public class PropToolsTest { +public class PropHelperTest { @Test public void loadProperties() { InputStream fileStream = ResUtils.getClassPathFileStream(PathConsts.DATASOURCE_PROPERTIES_PATH); - PropTools propTools = new PropTools(fileStream); - Assert.assertNotNull(propTools); + PropHelper propHelper = new PropHelper(fileStream); + Assert.assertNotNull(propHelper); } @Test @@ -26,8 +26,8 @@ public class PropToolsTest { @Test public void getStrings() { InputStream fileStream = ResUtils.getClassPathFileStream(PathConsts.CONFIG_PROPERTIES_PATH); - PropTools configProperties = new PropTools(fileStream); - List strings = configProperties.getStrings(CfgUtils.DATABASE_TABLE_PREFIXES); + PropHelper configProperties = new PropHelper(fileStream); + List strings = configProperties.getStringList(CfgUtils.DATABASE_TABLE_PREFIXES); System.out.println(strings); } diff --git a/src/test/java/space/caoshd/otone/util/DBUtilsTest.java b/src/test/java/space/caoshd/otone/util/DBUtilsTest.java index 9fb8a01..24925d7 100644 --- a/src/test/java/space/caoshd/otone/util/DBUtilsTest.java +++ b/src/test/java/space/caoshd/otone/util/DBUtilsTest.java @@ -2,7 +2,7 @@ package space.caoshd.otone.util; import org.junit.Assert; import org.junit.Test; -import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.helper.PropHelper; import java.util.Arrays; import java.util.List; @@ -12,12 +12,12 @@ public class DBUtilsTest { @Test public void executeQuery() { - PropTools sqlProperties = new PropTools(PathConsts.MYSQL_PROPERTIES_PATH); + PropHelper sqlProperties = new PropHelper(PathConsts.MYSQL_PROPERTIES_PATH); String sql = sqlProperties.getString(SqlConsts.TABLE_SQL_SCHEMA_TABLE); - PropTools configProperties = - new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); - List schemas = configProperties.getStrings(CfgUtils.DATABASE_NAME_SCHEMAS); - List tables = configProperties.getStrings(CfgUtils.DATABASE_NAME_TABLES); + PropHelper configProperties = + new PropHelper(PathConsts.CONFIG_PROPERTIES_PATH); + List schemas = configProperties.getStringList(CfgUtils.DATABASE_NAME_SCHEMAS); + List tables = configProperties.getStringList(CfgUtils.DATABASE_NAME_TABLES); List params = Arrays.asList(schemas.get(0), tables.get(0)); List> maps = DBUtils.list(sql, params); Assert.assertFalse(maps.isEmpty());