提交 38323722 编写于 作者: N Nikita Koksharov

Fixed - RedissonNode unable to start due to ClassNotFoundException #3621

上级 dc475437
......@@ -28,6 +28,7 @@ import org.redisson.api.RedissonClient;
import org.redisson.api.WorkerOptions;
import org.redisson.client.RedisConnection;
import org.redisson.config.RedissonNodeConfig;
import org.redisson.config.RedissonNodeFileConfig;
import org.redisson.connection.ConnectionManager;
import org.redisson.connection.MasterSlaveEntry;
import org.slf4j.Logger;
......@@ -86,13 +87,13 @@ public final class RedissonNode {
}
String configPath = args[0];
RedissonNodeConfig config = null;
RedissonNodeFileConfig config = null;
try {
config = RedissonNodeConfig.fromJSON(new File(configPath));
config = RedissonNodeFileConfig.fromJSON(new File(configPath));
} catch (IOException e) {
// trying next format
try {
config = RedissonNodeConfig.fromYAML(new File(configPath));
config = RedissonNodeFileConfig.fromYAML(new File(configPath));
} catch (IOException e1) {
log.error("Can't parse json config " + configPath, e);
throw new IllegalArgumentException("Can't parse yaml config " + configPath, e1);
......@@ -198,6 +199,16 @@ public final class RedissonNode {
return create(config, null);
}
/**
* Create Redisson node instance with provided config
*
* @param config of RedissonNode
* @return RedissonNode instance
*/
public static RedissonNode create(RedissonNodeFileConfig config) {
return create(new RedissonNodeConfig(config), null);
}
/**
* Create Redisson node instance with provided config and Redisson instance
*
......
......@@ -15,12 +15,6 @@
*/
package org.redisson.config;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.redisson.api.RedissonNodeInitializer;
import org.springframework.beans.factory.BeanFactory;
/**
......@@ -29,13 +23,10 @@ import org.springframework.beans.factory.BeanFactory;
* @author Nikita Koksharov
*
*/
public class RedissonNodeConfig extends Config {
public class RedissonNodeConfig extends RedissonNodeFileConfig {
private int mapReduceWorkers = 0;
private RedissonNodeInitializer redissonNodeInitializer;
private BeanFactory beanFactory;
private Map<String, Integer> executorServiceWorkers = new HashMap<String, Integer>();
public RedissonNodeConfig() {
super();
}
......@@ -46,61 +37,9 @@ public class RedissonNodeConfig extends Config {
public RedissonNodeConfig(RedissonNodeConfig oldConf) {
super(oldConf);
this.executorServiceWorkers = new HashMap<String, Integer>(oldConf.executorServiceWorkers);
this.redissonNodeInitializer = oldConf.redissonNodeInitializer;
this.mapReduceWorkers = oldConf.mapReduceWorkers;
this.beanFactory = oldConf.beanFactory;
}
/**
* MapReduce workers amount.
* <p>
* <code>0 = current_processors_amount</code>
* <p>
* <code>-1 = disable MapReduce workers</code>
*
* <p>
* Default is <code>0</code>
*
* @param mapReduceWorkers workers for MapReduce
* @return config
*/
public RedissonNodeConfig setMapReduceWorkers(int mapReduceWorkers) {
this.mapReduceWorkers = mapReduceWorkers;
return this;
}
public int getMapReduceWorkers() {
return mapReduceWorkers;
}
/**
* Executor service workers amount per service name
*
* @param workers mapping
* @return config
*/
public RedissonNodeConfig setExecutorServiceWorkers(Map<String, Integer> workers) {
this.executorServiceWorkers = workers;
return this;
}
public Map<String, Integer> getExecutorServiceWorkers() {
return executorServiceWorkers;
}
/**
* Redisson node initializer
*
* @param redissonNodeInitializer object
* @return config
*/
public RedissonNodeConfig setRedissonNodeInitializer(RedissonNodeInitializer redissonNodeInitializer) {
this.redissonNodeInitializer = redissonNodeInitializer;
return this;
}
public RedissonNodeInitializer getRedissonNodeInitializer() {
return redissonNodeInitializer;
}
public BeanFactory getBeanFactory() {
return beanFactory;
}
......@@ -115,28 +54,4 @@ public class RedissonNodeConfig extends Config {
this.beanFactory = beanFactory;
}
/**
* Read config object stored in JSON format from <code>File</code>
*
* @param file object
* @return config
* @throws IOException error
*/
public static RedissonNodeConfig fromJSON(File file) throws IOException {
ConfigSupport support = new ConfigSupport();
return support.fromJSON(file, RedissonNodeConfig.class);
}
/**
* Read config object stored in YAML format from <code>File</code>
*
* @param file object
* @return config
* @throws IOException error
*/
public static RedissonNodeConfig fromYAML(File file) throws IOException {
ConfigSupport support = new ConfigSupport();
return support.fromYAML(file, RedissonNodeConfig.class);
}
}
/**
* Copyright (c) 2013-2021 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.config;
import org.redisson.api.RedissonNodeInitializer;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* Redisson Node file configuration
*
* @author Nikita Koksharov
*
*/
public class RedissonNodeFileConfig extends Config {
private int mapReduceWorkers = 0;
private RedissonNodeInitializer redissonNodeInitializer;
private Map<String, Integer> executorServiceWorkers = new HashMap<>();
public RedissonNodeFileConfig() {
super();
}
public RedissonNodeFileConfig(Config oldConf) {
super(oldConf);
}
public RedissonNodeFileConfig(RedissonNodeFileConfig oldConf) {
super(oldConf);
this.executorServiceWorkers = new HashMap<>(oldConf.executorServiceWorkers);
this.redissonNodeInitializer = oldConf.redissonNodeInitializer;
this.mapReduceWorkers = oldConf.mapReduceWorkers;
}
/**
* MapReduce workers amount.
* <p>
* <code>0 = current_processors_amount</code>
* <p>
* <code>-1 = disable MapReduce workers</code>
*
* <p>
* Default is <code>0</code>
*
* @param mapReduceWorkers workers for MapReduce
* @return config
*/
public RedissonNodeFileConfig setMapReduceWorkers(int mapReduceWorkers) {
this.mapReduceWorkers = mapReduceWorkers;
return this;
}
public int getMapReduceWorkers() {
return mapReduceWorkers;
}
/**
* Executor service workers amount per service name
*
* @param workers mapping
* @return config
*/
public RedissonNodeFileConfig setExecutorServiceWorkers(Map<String, Integer> workers) {
this.executorServiceWorkers = workers;
return this;
}
public Map<String, Integer> getExecutorServiceWorkers() {
return executorServiceWorkers;
}
/**
* Redisson node initializer
*
* @param redissonNodeInitializer object
* @return config
*/
public RedissonNodeFileConfig setRedissonNodeInitializer(RedissonNodeInitializer redissonNodeInitializer) {
this.redissonNodeInitializer = redissonNodeInitializer;
return this;
}
public RedissonNodeInitializer getRedissonNodeInitializer() {
return redissonNodeInitializer;
}
/**
* Read config object stored in JSON format from <code>File</code>
*
* @param file object
* @return config
* @throws IOException error
*/
public static RedissonNodeFileConfig fromJSON(File file) throws IOException {
ConfigSupport support = new ConfigSupport();
return support.fromJSON(file, RedissonNodeFileConfig.class);
}
/**
* Read config object stored in YAML format from <code>File</code>
*
* @param file object
* @return config
* @throws IOException error
*/
public static RedissonNodeFileConfig fromYAML(File file) throws IOException {
ConfigSupport support = new ConfigSupport();
return support.fromYAML(file, RedissonNodeFileConfig.class);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册