This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/sonar in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 446a04d00aee49adff258551d162ebc12ac597c2 Author: JackieTien97 <[email protected]> AuthorDate: Mon Jun 19 12:07:50 2023 +0800 tsfile/src/main/java/org/apache/iotdb/tsfile/common done --- .../apache/iotdb/tsfile/common/cache/Cache.java | 1 + .../apache/iotdb/tsfile/common/cache/LRUCache.java | 3 +- .../iotdb/tsfile/common/conf/TSFileConfig.java | 50 ++++++++++++---------- .../iotdb/tsfile/common/conf/TSFileDescriptor.java | 34 +++++++-------- .../tsfile/common/constant/JsonFormatConstant.java | 1 + .../tsfile/common/constant/QueryConstant.java | 1 + .../tsfile/common/constant/TsFileConstant.java | 1 + .../java/org/apache/iotdb/tsfile/utils/Loader.java | 11 +++-- 8 files changed, 57 insertions(+), 45 deletions(-) diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java index 944f4a8bf0b..49e73188f66 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/Cache.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.cache; import org.apache.iotdb.tsfile.exception.cache.CacheException; diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java index 76e7557a629..c7db1b5ea0d 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/cache/LRUCache.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.cache; import java.io.IOException; @@ -27,7 +28,7 @@ public abstract class LRUCache<K, T> implements Cache<K, T> { protected Map<K, T> cache; - public LRUCache(int cacheSize) { + protected LRUCache(int cacheSize) { this.cache = new LinkedHashMap<K, T>(cacheSize, 0.75f, true) { @Override diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java index 9c05a42b765..99851b77ded 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.conf; import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType; @@ -25,12 +26,13 @@ import org.apache.iotdb.tsfile.utils.FSUtils; import java.io.Serializable; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.Properties; /** TSFileConfig is a configuration class. Every variable is public and has default value. */ public class TSFileConfig implements Serializable { - /** encoding configuration */ + /** encoding configuration. */ public static final int RLE_MIN_REPEATED_NUM = 8; public static final int RLE_MAX_REPEATED_NUM = 0x7FFF; @@ -56,15 +58,15 @@ public class TSFileConfig implements Serializable { public static final int BYTE_SIZE_PER_CHAR = 4; public static final String STRING_ENCODING = "UTF-8"; - public static final Charset STRING_CHARSET = Charset.forName(STRING_ENCODING); + public static final Charset STRING_CHARSET = StandardCharsets.UTF_8; public static final String CONFIG_FILE_NAME = "iotdb-common.properties"; public static final String MAGIC_STRING = "TsFile"; public static final String VERSION_NUMBER_V2 = "000002"; public static final String VERSION_NUMBER_V1 = "000001"; - /** version number is changed to use 1 byte to represent since version 3 */ + /** version number is changed to use 1 byte to represent since version 3. */ public static final byte VERSION_NUMBER = 0x03; - /** Bloom filter constrain */ + /** Bloom filter constrain. */ public static final double MIN_BLOOM_FILTER_ERROR_RATE = 0.01; public static final double MAX_BLOOM_FILTER_ERROR_RATE = 0.1; @@ -77,7 +79,7 @@ public class TSFileConfig implements Serializable { private int pageSizeInByte = 64 * 1024; /** The maximum number of data points in a page, default value is 10000. */ private int maxNumberOfPointsInPage = 10_000; - /** The maximum degree of a metadataIndex node, default value is 256 */ + /** The maximum degree of a metadataIndex node, default value is 256. */ private int maxDegreeOfIndexNode = 256; /** Data type for input timestamp, TsFile supports INT64. */ private TSDataType timeSeriesDataType = TSDataType.INT64; @@ -99,7 +101,7 @@ public class TSFileConfig implements Serializable { private String valueEncoder = "PLAIN"; /** Default bit width of RLE encoding is 8. */ private int rleBitWidth = 8; - /** Default block size of two-diff. delta encoding is 128 */ + /** Default block size of two-diff. delta encoding is 128. */ private int deltaBlockSize = 128; /** Default frequency type is SINGLE_FREQ. */ private String freqType = "SINGLE_FREQ"; @@ -115,21 +117,21 @@ public class TSFileConfig implements Serializable { private int pageCheckSizeThreshold = 100; /** Default endian value is BIG_ENDIAN. */ private String endian = "BIG_ENDIAN"; - /** Default storage is in local file system */ - private FSType[] TSFileStorageFs = new FSType[] {FSType.LOCAL}; + /** Default storage is in local file system. */ + private FSType[] tSFileStorageFs = new FSType[] {FSType.LOCAL}; /** Default core-site.xml file path is /etc/hadoop/conf/core-site.xml */ private String coreSitePath = "/etc/hadoop/conf/core-site.xml"; /** Default hdfs-site.xml file path is /etc/hadoop/conf/hdfs-site.xml */ private String hdfsSitePath = "/etc/hadoop/conf/hdfs-site.xml"; - /** Default hdfs ip is localhost */ + /** Default hdfs ip is localhost. */ private String hdfsIp = "localhost"; - /** Default hdfs port is 9000 */ + /** Default hdfs port is 9000. */ private String hdfsPort = "9000"; - /** Default DFS NameServices is hdfsnamespace */ - private String dfsNameServices = "hdfsnamespace"; - /** Default DFS HA name nodes are nn1 and nn2 */ + /** Default DFS NameServices is hdfsnamespace. */ + private String dfsNameServices = "hdfsnamespace."; + /** Default DFS HA name nodes are nn1 and nn2. */ private String dfsHaNamenodes = "nn1,nn2"; - /** Default DFS HA automatic failover is enabled */ + /** Default DFS HA automatic failover is enabled. */ private boolean dfsHaAutomaticFailoverEnabled = true; /** * Default DFS client failover proxy provider is @@ -137,21 +139,21 @@ public class TSFileConfig implements Serializable { */ private String dfsClientFailoverProxyProvider = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"; - /** whether use kerberos to authenticate hdfs */ + /** whether use kerberos to authenticate hdfs. */ private boolean useKerberos = false; - /** full path of kerberos keytab file */ + /** full path of kerberos keytab file. */ private String kerberosKeytabFilePath = "/path"; - /** kerberos pricipal */ + /** kerberos pricipal. */ private String kerberosPrincipal = "principal"; - /** The acceptable error rate of bloom filter */ + /** The acceptable error rate of bloom filter. */ private double bloomFilterErrorRate = 0.05; - /** The amount of data iterate each time */ + /** The amount of data iterate each time. */ private int batchSize = 1000; /** Maximum capacity of a TsBlock, allow up to two pages. */ private int maxTsBlockSizeInBytes = 128 * 1024; - /** Maximum number of lines in a single TsBlock */ + /** Maximum number of lines in a single TsBlock. */ private int maxTsBlockLineNumber = 1000; private int patternMatchingThreshold = 1000000; @@ -171,7 +173,9 @@ public class TSFileConfig implements Serializable { /** customizedProperties, this should be empty by default. */ private Properties customizedProperties = new Properties(); - public TSFileConfig() {} + public TSFileConfig() { + // do nothing because we already give default value to each field when they are being declared + } public int getGroupSizeInByte() { return groupSizeInByte; @@ -358,11 +362,11 @@ public class TSFileConfig implements Serializable { } public FSType[] getTSFileStorageFs() { - return this.TSFileStorageFs; + return this.tSFileStorageFs; } public void setTSFileStorageFs(FSType[] fileStorageFs) { - this.TSFileStorageFs = fileStorageFs; + this.tSFileStorageFs = fileStorageFs; FSUtils.reload(); } diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java index 67c90794947..3b060507d07 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java @@ -28,8 +28,11 @@ import org.slf4j.LoggerFactory; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Paths; +import java.util.Optional; import java.util.Properties; import java.util.Set; import java.util.function.Consumer; @@ -41,7 +44,7 @@ public class TSFileDescriptor { private static final Logger logger = LoggerFactory.getLogger(TSFileDescriptor.class); private final TSFileConfig conf = new TSFileConfig(); - /** The constructor just visible for test */ + /** The constructor just visible for test. */ /* private */ TSFileDescriptor() { init(); } @@ -55,10 +58,7 @@ public class TSFileDescriptor { } private void init() { - Properties properties = loadProperties(); - if (properties != null) { - overwriteConfigByCustomSettings(properties); - } + loadProperties().ifPresent(this::overwriteConfigByCustomSettings); } public void overwriteConfigByCustomSettings(Properties properties) { @@ -82,7 +82,7 @@ public class TSFileDescriptor { writer.setInt(conf::setBatchSize, "batch_size"); } - private class PropertiesOverWriter { + private static class PropertiesOverWriter { private final Properties properties; @@ -120,28 +120,28 @@ public class TSFileDescriptor { } } - private Properties loadProperties() { + private Optional<Properties> loadProperties() { String file = detectPropertiesFile(); if (file != null) { logger.info("try loading {} from {}", TSFileConfig.CONFIG_FILE_NAME, file); return loadPropertiesFromFile(file); } else { logger.warn("not found {}, use the default configs.", TSFileConfig.CONFIG_FILE_NAME); - return null; + return Optional.empty(); } } - private Properties loadPropertiesFromFile(String filePath) { + private Optional<Properties> loadPropertiesFromFile(String filePath) { try (FileInputStream fileInputStream = new FileInputStream(filePath)) { Properties properties = new Properties(); properties.load(fileInputStream); - return properties; + return Optional.of(properties); } catch (FileNotFoundException e) { logger.warn("Fail to find config file {}", filePath); - return null; + return Optional.empty(); } catch (IOException e) { logger.warn("read file ({}) failure, please check the access permissions.", filePath); - return null; + return Optional.empty(); } } @@ -177,14 +177,14 @@ public class TSFileDescriptor { private void multiplicityWarning(String resource, ClassLoader classLoader) { try { - Set<URL> urlSet = Loader.getResources(resource, classLoader); - if (urlSet != null && urlSet.size() > 1) { + Set<URI> uriSet = Loader.getResources(resource, classLoader); + if (uriSet.size() > 1) { logger.warn("Resource [{}] occurs multiple times on the classpath", resource); - for (URL url : urlSet) { - logger.warn("Resource [{}] occurs at [{}]", resource, url); + for (URI uri : uriSet) { + logger.warn("Resource [{}] occurs at [{}]", resource, uri); } } - } catch (IOException e) { + } catch (IOException | URISyntaxException e) { logger.error("Failed to get url list for {}", resource); } } diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java index 7a5c3694fed..f48615a81cb 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/JsonFormatConstant.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.constant; /** This class define several constant string variables used in tsfile schema's keys. */ diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java index 7fdb1fd2582..67e41ef63cc 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/QueryConstant.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.constant; public class QueryConstant { diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java index 1e4b28a7871..b7fd8ccbe15 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/constant/TsFileConstant.java @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + package org.apache.iotdb.tsfile.common.constant; import java.util.regex.Pattern; diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java index 52a67f7f304..65824a21beb 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/Loader.java @@ -19,6 +19,8 @@ package org.apache.iotdb.tsfile.utils; import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.Enumeration; import java.util.HashSet; @@ -28,13 +30,14 @@ public class Loader { private Loader() {} /** function for getting resources. */ - public static Set<URL> getResources(String resource, ClassLoader classLoader) throws IOException { - Set<URL> urlSet = new HashSet<>(); + public static Set<URI> getResources(String resource, ClassLoader classLoader) + throws IOException, URISyntaxException { + Set<URI> uriSet = new HashSet<>(); Enumeration<URL> urlEnum = classLoader.getResources(resource); while (urlEnum.hasMoreElements()) { - urlSet.add(urlEnum.nextElement()); + uriSet.add(urlEnum.nextElement().toURI()); } - return urlSet; + return uriSet; } public static URL getResource(String resource, ClassLoader classLoader) {
