chore: support java 11 (#83)
* chore: support java 17
* fix: unitest
* fix: server JAX-B API not found warning
* chore: improve code
* fix: hugeconfig test
* chore: resolve conflict
* fix: version unit test
* chore: improve code
* chore: improve impl version
* chore: improve code
* refactor: hugeconfig get
* chore: improve code
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a09093a..e319c49 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,12 +15,17 @@
jobs:
build:
runs-on: ubuntu-20.04
+ strategy:
+ fail-fast: false
+ matrix:
+ JAVA_VERSION: ['8', '11']
+
steps:
- - name: Install JDK 8
+ - name: Install JDK ${{ matrix.JAVA_VERSION }}
uses: actions/setup-java@v2
with:
- java-version: '8'
- distribution: 'adopt'
+ java-version: ${{ matrix.JAVA_VERSION }}
+ distribution: 'zulu'
- name: Cache Maven packages
uses: actions/cache@v2
diff --git a/hugegraph-common/pom.xml b/hugegraph-common/pom.xml
index 1092890..9fb054b 100644
--- a/hugegraph-common/pom.xml
+++ b/hugegraph-common/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>com.baidu.hugegraph</groupId>
<artifactId>hugegraph-commons</artifactId>
- <version>2.0.1</version>
+ <version>2.1.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
@@ -71,6 +71,11 @@
<version>${commons.configuration2.version}</version>
</dependency>
<dependency>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
+ <version>${commons.beanutils.version}</version>
+ </dependency>
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
@@ -173,6 +178,17 @@
<artifactId>jersey-hk2</artifactId>
<version>${jersey.hk2.version}</version>
</dependency>
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ <version>${jakarta.xml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>${sun.xml.version}</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
<build>
@@ -231,7 +247,7 @@
<manifestEntries>
<!-- Must be on one line, otherwise the automatic
upgrade script cannot replace the version number -->
- <Implementation-Version>2.0.1.0</Implementation-Version>
+ <Implementation-Version>2.1.0.0</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/ConfigListOption.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/ConfigListOption.java
index ef6e324..ff114cc 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/ConfigListOption.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/ConfigListOption.java
@@ -69,10 +69,6 @@
String str = (String) value;
if (str.startsWith("[") && str.endsWith("]")) {
str = str.substring(1, str.length() - 1);
- } else {
- throw new ConfigException(
- "The list type config option expected " +
- "to be wrapped in [], actual '%s'", str);
}
String[] parts = str.split(",");
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/HugeConfig.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/HugeConfig.java
index 2593be6..22974f8 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/HugeConfig.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/HugeConfig.java
@@ -21,73 +21,50 @@
import java.io.File;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.configuration.AbstractConfiguration;
-import org.apache.commons.configuration.AbstractFileConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.slf4j.Logger;
-
import com.baidu.hugegraph.util.E;
import com.baidu.hugegraph.util.Log;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.YAMLConfiguration;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.builder.fluent.Configurations;
+import org.apache.commons.configuration2.builder.fluent.Parameters;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.commons.configuration2.io.FileHandler;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+
+import javax.annotation.Nullable;
public class HugeConfig extends PropertiesConfiguration {
private static final Logger LOG = Log.logger(HugeConfig.class);
- public HugeConfig(Configuration config) {
- if (config == null) {
- throw new ConfigException("The config object is null");
- }
- this.reloadIfNeed(config);
- this.setLayoutIfNeeded(config);
+ private final String path;
- Iterator<String> keys = config.getKeys();
- while (keys.hasNext()) {
- String key = keys.next();
- this.addProperty(key, config.getProperty(key));
- }
- this.checkRequiredOptions();
+ public HugeConfig(Configuration config) {
+ loadConfig(config);
+ this.path = null;
}
public HugeConfig(String configFile) {
- this(loadConfigFile(configFile));
+ loadConfig(loadConfigFile(configFile));
+ this.path = configFile;
}
- private void reloadIfNeed(Configuration conf) {
- if (!(conf instanceof AbstractFileConfiguration)) {
- if (conf instanceof AbstractConfiguration) {
- AbstractConfiguration config = (AbstractConfiguration) conf;
- config.setDelimiterParsingDisabled(true);
- }
- return;
+ private void loadConfig(Configuration config) {
+ if (config == null) {
+ throw new ConfigException("The config object is null");
}
- AbstractFileConfiguration fileConfig = (AbstractFileConfiguration) conf;
+ this.setLayoutIfNeeded(config);
- File file = fileConfig.getFile();
- if (file != null) {
- // May need to use the original file
- this.setFile(file);
- }
-
- if (!fileConfig.isDelimiterParsingDisabled()) {
- /*
- * PropertiesConfiguration will parse the containing comma
- * config options into list directly, but we want to do
- * this work by ourselves, so reload it and parse into `String`
- */
- fileConfig.setDelimiterParsingDisabled(true);
- try {
- fileConfig.refresh();
- } catch (ConfigurationException e) {
- throw new ConfigException("Unable to load config file: %s",
- e, file);
- }
- }
+ this.append(config);
+ this.checkRequiredOptions();
}
private void setLayoutIfNeeded(Configuration conf) {
@@ -98,30 +75,22 @@
this.setLayout(propConf.getLayout());
}
- private static PropertiesConfiguration loadConfigFile(String path) {
+ private static Configuration loadConfigFile(String path) {
E.checkNotNull(path, "config path");
E.checkArgument(!path.isEmpty(),
"The config path can't be empty");
File file = new File(path);
- E.checkArgument(file.exists() && file.isFile() && file.canRead(),
- "Need to specify a readable config, but got: %s",
- file.toString());
-
- PropertiesConfiguration config = new PropertiesConfiguration();
- config.setDelimiterParsingDisabled(true);
- try {
- config.load(file);
- } catch (ConfigurationException e) {
- throw new ConfigException("Unable to load config: %s", e, path);
- }
- return config;
+ return loadConfigFile(file);
}
@SuppressWarnings("unchecked")
public <T, R> R get(TypedOption<T, R> option) {
Object value = this.getProperty(option.name());
- return value != null ? (R) value : option.defaultValue();
+ if (value == null) {
+ return option.defaultValue();
+ }
+ return (R) value;
}
public Map<String, String> getMap(ConfigListOption<String> option) {
@@ -138,26 +107,99 @@
}
@Override
- public void addProperty(String key, Object value) {
- if (!OptionSpace.containKey(key)) {
+ public void addPropertyDirect(String key, Object value) {
+ TypedOption<?, ?> option = OptionSpace.get(key);
+ if (option == null) {
LOG.warn("The config option '{}' is redundant, " +
"please ensure it has been registered", key);
} else {
// The input value is String(parsed by PropertiesConfiguration)
value = this.validateOption(key, value);
}
- super.addPropertyDirect(key, value);
+ if (this.containsKey(key) && value instanceof List) {
+ for (Object item : (List<Object>) value) {
+ super.addPropertyDirect(key, item);
+ }
+ } else {
+ super.addPropertyDirect(key, value);
+ }
+ }
+
+ @Override
+ protected void addPropertyInternal(String key, Object value) {
+ this.addPropertyDirect(key, value);
}
private Object validateOption(String key, Object value) {
- E.checkArgument(value instanceof String,
- "Invalid value for key '%s': %s", key, value);
-
TypedOption<?, ?> option = OptionSpace.get(key);
- return option.parseConvert((String) value);
+
+ if (value instanceof String) {
+ return option.parseConvert((String) value);
+ }
+
+ Class dataType = option.dataType();
+ if (dataType.isInstance(value)) {
+ return value;
+ }
+
+ throw new IllegalArgumentException(
+ String.format("Invalid value for key '%s': '%s'", key, value));
}
private void checkRequiredOptions() {
// TODO: Check required options must be contained in this map
}
+
+ public void save(File copiedFile) throws ConfigurationException {
+ FileHandler fileHandler = new FileHandler(this);
+ fileHandler.save(copiedFile);
+ }
+
+ @Nullable
+ public File getFile() {
+ if (StringUtils.isEmpty(this.path)) {
+ return null;
+ }
+
+ return new File(this.path);
+ }
+
+ private static Configuration loadConfigFile(File configFile) {
+ E.checkArgument(configFile.exists() &&
+ configFile.isFile() &&
+ configFile.canRead(),
+ "Please specify a proper config file rather than: '%s'",
+ configFile.toString());
+
+ try {
+ String fileName = configFile.getName();
+ String fileExtension = FilenameUtils.getExtension(fileName);
+
+ Configuration config;
+ Configurations configs = new Configurations();
+
+ switch (fileExtension) {
+ case "yml":
+ case "yaml":
+ Parameters params = new Parameters();
+ FileBasedConfigurationBuilder<FileBasedConfiguration>
+ builder = new FileBasedConfigurationBuilder(
+ YAMLConfiguration.class)
+ .configure(params.fileBased()
+ .setFile(configFile));
+ config = builder.getConfiguration();
+ break;
+ case "xml":
+ config = configs.xml(configFile);
+ break;
+ default:
+ config = configs.properties(configFile);
+ break;
+ }
+ return config;
+ } catch (ConfigurationException e) {
+ throw new ConfigException("Unable to load config: '%s'",
+ e, configFile);
+ }
+ }
}
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/TypedOption.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/TypedOption.java
index 2aa50e3..cd5841b 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/config/TypedOption.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/config/TypedOption.java
@@ -129,6 +129,9 @@
return value;
} else if (dataType.equals(Class.class)) {
try {
+ if (value.startsWith("class")) {
+ value = value.substring("class".length()).trim();
+ }
return Class.forName(value);
} catch (ClassNotFoundException e) {
throw new ConfigException(
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/AbstractRestClient.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/AbstractRestClient.java
index 5c96196..d6b1b71 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/AbstractRestClient.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/AbstractRestClient.java
@@ -31,24 +31,16 @@
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSession;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation.Builder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Variant;
-
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.ClientRequestContext;
+import jakarta.ws.rs.client.ClientRequestFilter;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation.Builder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Variant;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.http.HttpHeaders;
@@ -64,6 +56,7 @@
import org.glassfish.jersey.apache.connector.ApacheConnectorProvider;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
+import org.glassfish.jersey.client.JerseyClientBuilder;
import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import org.glassfish.jersey.internal.util.collection.Ref;
import org.glassfish.jersey.internal.util.collection.Refs;
@@ -74,6 +67,13 @@
import com.baidu.hugegraph.util.ExecutorUtil;
import com.google.common.collect.ImmutableMap;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
public abstract class AbstractRestClient implements RestClient {
// Time unit: hours
@@ -163,7 +163,8 @@
public AbstractRestClient(String url, ClientConfig config) {
configConnectionManager(url, config);
- this.client = ClientBuilder.newClient(config);
+
+ this.client = JerseyClientBuilder.newClient(config);
this.client.register(GZipEncoder.class);
this.target = this.client.target(url);
this.pool = (PoolingHttpClientConnectionManager) config.getProperty(
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestClient.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestClient.java
index 54a6df3..a60aeee 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestClient.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestClient.java
@@ -21,7 +21,7 @@
import java.util.Map;
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.MultivaluedMap;
public interface RestClient {
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestResult.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestResult.java
index dc78f18..88ba49e 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestResult.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/rest/RestResult.java
@@ -23,8 +23,8 @@
import java.util.ArrayList;
import java.util.List;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
diff --git a/hugegraph-common/src/main/java/com/baidu/hugegraph/version/CommonVersion.java b/hugegraph-common/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
index 32e2025..e10b092 100644
--- a/hugegraph-common/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
+++ b/hugegraph-common/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
@@ -27,5 +27,5 @@
// The second parameter of Version.of() is for all-in-one JAR
public static final Version VERSION = Version.of(CommonVersion.class,
- "2.0.1");
+ "2.1.0");
}
diff --git a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/config/HugeConfigTest.java b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/config/HugeConfigTest.java
index 75a47bb..f522d56 100644
--- a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/config/HugeConfigTest.java
+++ b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/config/HugeConfigTest.java
@@ -35,10 +35,13 @@
import java.util.Map;
import org.apache.commons.collections.IteratorUtils;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.MapConfiguration;
-import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration2.AbstractConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.MapConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.commons.configuration2.io.FileHandler;
import org.apache.commons.io.FileUtils;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -262,7 +265,8 @@
@Test
public void testHugeConfig() throws Exception {
Configuration conf = new PropertiesConfiguration();
- Whitebox.setInternalState(conf, "delimiterParsingDisabled", true);
+ Assert.assertEquals(DisabledListDelimiterHandler.INSTANCE,
+ ((AbstractConfiguration) conf).getListDelimiterHandler());
HugeConfig config = new HugeConfig(conf);
@@ -338,7 +342,10 @@
@Test
public void testHugeConfigWithConfiguration() throws Exception {
- HugeConfig config = new HugeConfig(new PropertiesConfiguration(CONF));
+ PropertiesConfiguration configuration = new PropertiesConfiguration();
+ FileHandler fileHandler = new FileHandler(configuration);
+ fileHandler.load(CONF);
+ HugeConfig config = new HugeConfig(configuration);
Assert.assertEquals("file-text1-value", config.get(TestOptions.text1));
Assert.assertEquals("file-text2-value", config.get(TestOptions.text2));
@@ -348,7 +355,8 @@
@Test
public void testHugeConfigWithOverride() throws Exception {
Configuration conf = new PropertiesConfiguration();
- Whitebox.setInternalState(conf, "delimiterParsingDisabled", true);
+ Assert.assertEquals(DisabledListDelimiterHandler.INSTANCE,
+ ((AbstractConfiguration) conf).getListDelimiterHandler());
HugeConfig config = new HugeConfig(conf);
diff --git a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestClientTest.java b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestClientTest.java
index d682025..bd48a0c 100644
--- a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestClientTest.java
+++ b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestClientTest.java
@@ -32,20 +32,18 @@
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSessionContext;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.client.Invocation.Builder;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.client.Invocation.Builder;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import org.apache.http.HttpClientConnection;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpHost;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.pool.PoolStats;
-import org.glassfish.jersey.client.ClientRequest;
import org.glassfish.jersey.internal.util.collection.ImmutableMultivaluedMap;
import org.junit.Test;
import org.mockito.Mockito;
diff --git a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestResultTest.java b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestResultTest.java
index 357c4a0..02832fd 100644
--- a/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestResultTest.java
+++ b/hugegraph-common/src/test/java/com/baidu/hugegraph/unit/rest/RestResultTest.java
@@ -21,10 +21,9 @@
import java.util.Map;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
import org.glassfish.jersey.internal.util.collection.ImmutableMultivaluedMap;
import org.junit.Test;
import org.mockito.Mockito;
diff --git a/hugegraph-rpc/pom.xml b/hugegraph-rpc/pom.xml
index 07c2522..564e668 100644
--- a/hugegraph-rpc/pom.xml
+++ b/hugegraph-rpc/pom.xml
@@ -6,12 +6,12 @@
<parent>
<groupId>com.baidu.hugegraph</groupId>
<artifactId>hugegraph-commons</artifactId>
- <version>2.0.1</version>
+ <version>2.1.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>hugegraph-rpc</artifactId>
- <version>2.0.1</version>
+ <version>2.1.0</version>
<name>hugegraph-rpc</name>
<description>HugeGraph Database RPC component</description>
@@ -25,7 +25,7 @@
<dependency>
<groupId>com.baidu.hugegraph</groupId>
<artifactId>hugegraph-common</artifactId>
- <version>2.0.1</version>
+ <version>2.1.0</version>
</dependency>
<!-- sofa rpc -->
@@ -144,7 +144,7 @@
<manifestEntries>
<!-- Must be on one line, otherwise the automatic
upgrade script cannot replace the version number -->
- <Implementation-Version>2.0.1.0</Implementation-Version>
+ <Implementation-Version>2.1.0.0</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
diff --git a/hugegraph-rpc/src/main/java/com/baidu/hugegraph/version/RpcVersion.java b/hugegraph-rpc/src/main/java/com/baidu/hugegraph/version/RpcVersion.java
index c9992cc..d64af44 100644
--- a/hugegraph-rpc/src/main/java/com/baidu/hugegraph/version/RpcVersion.java
+++ b/hugegraph-rpc/src/main/java/com/baidu/hugegraph/version/RpcVersion.java
@@ -27,5 +27,5 @@
// The second parameter of Version.of() is for all-in-one JAR
public static final Version VERSION = Version.of(RpcVersion.class,
- "2.0.1");
+ "2.1.0");
}
diff --git a/pom.xml b/pom.xml
index 9e3c345..f276f3f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>com.baidu.hugegraph</groupId>
<artifactId>hugegraph-commons</artifactId>
- <version>2.0.1</version>
+ <version>2.1.0</version>
<packaging>pom</packaging>
<name>hugegraph-commons</name>
@@ -59,19 +59,22 @@
<compiler.target>1.8</compiler.target>
<log4j2.version>2.17.0</log4j2.version>
<commons.configuration.version>1.10</commons.configuration.version>
- <commons.configuration2.version>2.1.1</commons.configuration2.version>
+ <commons.configuration2.version>2.3</commons.configuration2.version>
+ <commons.beanutils.version>1.9.4</commons.beanutils.version>
<commons.collections.version>3.2.2</commons.collections.version>
<commons.io.version>2.7</commons.io.version>
<commons.codec.version>1.11</commons.codec.version>
<guava.version>25.1-jre</guava.version>
<javax.json.version>1.0</javax.json.version>
<jsr305.version>3.0.1</jsr305.version>
- <javassist.version>3.21.0-GA</javassist.version>
- <jersey.version>2.22</jersey.version>
- <jersey.hk2.version>2.27</jersey.hk2.version>
+ <javassist.version>3.28.0-GA</javassist.version>
+ <jersey.version>3.0.3</jersey.version>
+ <jersey.hk2.version>3.0.3</jersey.hk2.version>
<jackson.version>2.12.1</jackson.version>
<junit.version>4.12</junit.version>
- <mockito.version>2.25.1</mockito.version>
+ <mockito.version>4.1.0</mockito.version>
+ <jakarta.xml.version>4.0.0-RC2</jakarta.xml.version>
+ <sun.xml.version>3.0.2</sun.xml.version>
</properties>
<modules>
@@ -135,7 +138,7 @@
<manifestEntries>
<!-- Must be on one line, otherwise the automatic
upgrade script cannot replace the version number -->
- <Implementation-Version>2.0.1.0</Implementation-Version>
+ <Implementation-Version>2.1.0.0</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
@@ -144,7 +147,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
- <version>0.8.2</version>
+ <version>0.8.7</version>
<executions>
<execution>
<id>pre-unit-test</id>