移除SourceChangeable
This commit is contained in:
@@ -404,8 +404,8 @@ public final class Application {
|
||||
AnyValue clusterConf = resources.getAnyValue("cluster");
|
||||
if (clusterConf != null) {
|
||||
try {
|
||||
String classval = clusterConf.getValue("type", clusterConf.getValue("value")); //兼容value字段
|
||||
if (classval == null || classval.isEmpty()) {
|
||||
String classVal = clusterConf.getValue("type", clusterConf.getValue("value")); //兼容value字段
|
||||
if (classVal == null || classVal.isEmpty() || classVal.indexOf('.') < 0) { //不包含.表示非类名,比如值: consul, nacos
|
||||
Iterator<ClusterAgentProvider> it = ServiceLoader.load(ClusterAgentProvider.class, classLoader).iterator();
|
||||
RedkaleClassLoader.putServiceLoader(ClusterAgentProvider.class);
|
||||
while (it.hasNext()) {
|
||||
@@ -426,7 +426,7 @@ public final class Application {
|
||||
}
|
||||
if (cluster == null) logger.log(Level.SEVERE, "load application cluster resource, but not found name='type' value error: " + clusterConf);
|
||||
} else {
|
||||
Class type = classLoader.loadClass(classval);
|
||||
Class type = classLoader.loadClass(classVal);
|
||||
if (!ClusterAgent.class.isAssignableFrom(type)) {
|
||||
logger.log(Level.SEVERE, "load application cluster resource, but not found " + ClusterAgent.class.getSimpleName() + " implements class error: " + clusterConf);
|
||||
} else {
|
||||
@@ -459,8 +459,8 @@ public final class Application {
|
||||
}
|
||||
}
|
||||
try {
|
||||
String classval = mqConf.getValue("type", mqConf.getValue("value")); //兼容value字段
|
||||
if (classval == null || classval.isEmpty()) {
|
||||
String classVal = mqConf.getValue("type", mqConf.getValue("value")); //兼容value字段
|
||||
if (classVal == null || classVal.isEmpty() || classVal.indexOf('.') < 0) { //不包含.表示非类名,比如值: kafka, pulsar
|
||||
Iterator<MessageAgentProvider> it = ServiceLoader.load(MessageAgentProvider.class, classLoader).iterator();
|
||||
RedkaleClassLoader.putServiceLoader(MessageAgentProvider.class);
|
||||
while (it.hasNext()) {
|
||||
@@ -474,7 +474,7 @@ public final class Application {
|
||||
}
|
||||
if (mqs[i] == null) logger.log(Level.SEVERE, "load application mq resource, but not found name='value' value error: " + mqConf);
|
||||
} else {
|
||||
Class type = classLoader.loadClass(classval);
|
||||
Class type = classLoader.loadClass(classVal);
|
||||
if (!MessageAgent.class.isAssignableFrom(type)) {
|
||||
logger.log(Level.SEVERE, "load application mq resource, but not found " + MessageAgent.class.getSimpleName() + " implements class error: " + mqConf);
|
||||
} else {
|
||||
@@ -1066,10 +1066,10 @@ public final class Application {
|
||||
logger.info("[" + Thread.currentThread().getName() + "] Load DataSource resourceName = " + sourceName + ", source = " + source);
|
||||
return source;
|
||||
}
|
||||
String classval = sourceConf.getValue("type");
|
||||
String classVal = sourceConf.getValue("type");
|
||||
try {
|
||||
DataSource source = null;
|
||||
if (classval == null || classval.isEmpty()) {
|
||||
if (classVal == null || classVal.isEmpty()) {
|
||||
if (DataJdbcSource.acceptsConf(sourceConf)) {
|
||||
source = new DataJdbcSource();
|
||||
} else {
|
||||
@@ -1094,7 +1094,7 @@ public final class Application {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Class sourceType = serverClassLoader.loadClass(classval);
|
||||
Class sourceType = serverClassLoader.loadClass(classVal);
|
||||
RedkaleClassLoader.putReflectionPublicConstructors(sourceType, sourceType.getName());
|
||||
source = (DataSource) sourceType.getConstructor().newInstance();
|
||||
}
|
||||
@@ -1784,7 +1784,7 @@ public final class Application {
|
||||
events.add(ResourceEvent.create(k, v, null));
|
||||
}
|
||||
});
|
||||
((AbstractCacheSource) source).onChange(old == null ? conf : old, events.toArray(new ResourceEvent[events.size()]));
|
||||
((AbstractCacheSource) source).onResourceChange(events.toArray(new ResourceEvent[events.size()]));
|
||||
});
|
||||
}
|
||||
AnyValue sourceNode = redNode.getAnyValue("datasource");
|
||||
@@ -1802,7 +1802,7 @@ public final class Application {
|
||||
events.add(ResourceEvent.create(k, v, null));
|
||||
}
|
||||
});
|
||||
((AbstractDataSource) source).onChange(old == null ? conf : old, events.toArray(new ResourceEvent[events.size()]));
|
||||
((AbstractDataSource) source).onResourceChange(events.toArray(new ResourceEvent[events.size()]));
|
||||
});
|
||||
}
|
||||
sourceProperties.putAll(sourceChangeCache);
|
||||
|
||||
@@ -18,7 +18,7 @@ import org.redkale.util.*;
|
||||
@AutoLoad(false)
|
||||
@SuppressWarnings("unchecked")
|
||||
@ResourceType(CacheSource.class)
|
||||
public abstract class AbstractCacheSource extends AbstractService implements CacheSource, AutoCloseable, Resourcable, SourceChangeable {
|
||||
public abstract class AbstractCacheSource extends AbstractService implements CacheSource, AutoCloseable, Resourcable {
|
||||
|
||||
//@since 2.7.0
|
||||
public static final String CACHE_SOURCE_URL = "url";
|
||||
@@ -44,4 +44,6 @@ public abstract class AbstractCacheSource extends AbstractService implements Cac
|
||||
//@since 2.7.0
|
||||
public static final String CACHE_SOURCE_PIPELINES = "pipelines";
|
||||
|
||||
@ResourceListener
|
||||
public abstract void onResourceChange(ResourceEvent[] events);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ import org.redkale.util.*;
|
||||
@AutoLoad(false)
|
||||
@SuppressWarnings("unchecked")
|
||||
@ResourceType(DataSource.class)
|
||||
public abstract class AbstractDataSource extends AbstractService implements DataSource, AutoCloseable, Resourcable, SourceChangeable {
|
||||
public abstract class AbstractDataSource extends AbstractService implements DataSource, AutoCloseable, Resourcable {
|
||||
|
||||
//@since 2.7.0 格式: x.x.x.x:yyyy
|
||||
public static final String DATA_SOURCE_PROXY_ADDRESS = "proxy-address";
|
||||
@@ -92,6 +92,9 @@ public abstract class AbstractDataSource extends AbstractService implements Data
|
||||
//@since 2.7.0
|
||||
public static final String DATA_SOURCE_TABLECOPY_SQLTEMPLATE = "tablecopy-sqltemplate";
|
||||
|
||||
@ResourceListener
|
||||
public abstract void onResourceChange(ResourceEvent[] events);
|
||||
|
||||
public static String parseDbtype(String url) {
|
||||
String dbtype = null;
|
||||
if (url == null) return dbtype;
|
||||
|
||||
@@ -62,8 +62,8 @@ public final class CacheMemorySource extends AbstractCacheSource {
|
||||
return "memory";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events) {
|
||||
@ResourceListener
|
||||
public void onResourceChange(ResourceEvent[] events) {
|
||||
}
|
||||
|
||||
public static boolean acceptsConf(AnyValue config) {
|
||||
|
||||
@@ -49,7 +49,8 @@ public class DataJdbcSource extends DataSqlSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events) {
|
||||
@ResourceListener
|
||||
public void onResourceChange(ResourceEvent[] events) {
|
||||
//@TODO 待实现
|
||||
}
|
||||
|
||||
@@ -1099,7 +1100,7 @@ public class DataJdbcSource extends DataSqlSource {
|
||||
};
|
||||
}
|
||||
|
||||
protected class ConnectionPool implements AutoCloseable, SourceChangeable {
|
||||
protected class ConnectionPool implements AutoCloseable {
|
||||
|
||||
protected final LongAdder closeCounter = new LongAdder(); //已关闭连接数
|
||||
|
||||
@@ -1140,8 +1141,8 @@ public class DataJdbcSource extends DataSqlSource {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events) {
|
||||
@ResourceListener
|
||||
public void onResourceChange(ResourceEvent[] events) {
|
||||
for (ResourceEvent event : events) {
|
||||
if (event.name().equals(DATA_SOURCE_CONNECTTIMEOUT_SECONDS) || event.name().endsWith("." + DATA_SOURCE_CONNECTTIMEOUT_SECONDS)) {
|
||||
this.connectTimeoutSeconds = Integer.decode(event.newValue().toString());
|
||||
|
||||
@@ -44,7 +44,8 @@ public class DataMemorySource extends DataSqlSource implements SearchSource {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events) {
|
||||
@ResourceListener
|
||||
public void onResourceChange(ResourceEvent[] events) {
|
||||
}
|
||||
|
||||
public static boolean acceptsConf(AnyValue config) {
|
||||
|
||||
@@ -119,8 +119,8 @@ public abstract class DataSqlSource extends AbstractDataSource implements Functi
|
||||
this.cacheForbidden = "NONE".equalsIgnoreCase(readConfProps.getProperty(DATA_SOURCE_CACHEMODE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events) {
|
||||
@ResourceListener
|
||||
public void onResourceChange(ResourceEvent[] events) {
|
||||
//@TODO 待实现
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
*
|
||||
*/
|
||||
package org.redkale.source;
|
||||
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
* 资源变更回调接口
|
||||
*
|
||||
* <p>
|
||||
* 详情见: https://redkale.org
|
||||
*
|
||||
* @author zhangjx
|
||||
*
|
||||
* @since 2.8.0
|
||||
*/
|
||||
public interface SourceChangeable {
|
||||
|
||||
public void onChange(AnyValue newConf, ResourceEvent[] events);
|
||||
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
|
||||
/**
|
||||
* @Resource资源被更新时的监听事件, 本注解只能标记在方法参数为ResourceEvent[]上 <br>
|
||||
* 注意: 一个类只能存在一个@ResourceResourceListener的方法, 多余的会被忽略。
|
||||
* 注意: 一个类只能存在一个@ResourceListener的方法, 多余的会被忽略 <br>
|
||||
* 方法在资源被更新以后调用。
|
||||
*
|
||||
* <blockquote><pre>
|
||||
|
||||
Reference in New Issue
Block a user