diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/DefaultThreadPoolPluginRegistry.java b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/DefaultThreadPoolPluginRegistry.java
index a11a170a..13324e54 100644
--- a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/DefaultThreadPoolPluginRegistry.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/DefaultThreadPoolPluginRegistry.java
@@ -19,6 +19,7 @@ package cn.hippo4j.core.plugin;
import cn.hippo4j.common.toolkit.Assert;
import lombok.NonNull;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.*;
import java.util.concurrent.locks.Lock;
@@ -83,32 +84,32 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
/**
* Register a {@link ThreadPoolPlugin}
*
- * @param aware aware
+ * @param plugin plugin
* @throws IllegalArgumentException thrown when a plugin with the same {@link ThreadPoolPlugin#getId()} already exists in the registry
* @see ThreadPoolPlugin#getId()
*/
@Override
- public void register(@NonNull ThreadPoolPlugin aware) {
+ public void register(@NonNull ThreadPoolPlugin plugin) {
Lock writeLock = instanceLock.writeLock();
writeLock.lock();
try {
- String id = aware.getId();
+ String id = plugin.getId();
Assert.isTrue(!isRegistered(id), "The plug-in with id [" + id + "] has been registered");
- // register aware
- registeredPlugins.put(id, aware);
+ // register plugin
+ registeredPlugins.put(id, plugin);
// quick index
- if (aware instanceof TaskAwarePlugin) {
- taskAwarePluginList.add((TaskAwarePlugin) aware);
+ if (plugin instanceof TaskAwarePlugin) {
+ taskAwarePluginList.add((TaskAwarePlugin)plugin);
}
- if (aware instanceof ExecuteAwarePlugin) {
- executeAwarePluginList.add((ExecuteAwarePlugin) aware);
+ if (plugin instanceof ExecuteAwarePlugin) {
+ executeAwarePluginList.add((ExecuteAwarePlugin)plugin);
}
- if (aware instanceof RejectedAwarePlugin) {
- rejectedAwarePluginList.add((RejectedAwarePlugin) aware);
+ if (plugin instanceof RejectedAwarePlugin) {
+ rejectedAwarePluginList.add((RejectedAwarePlugin)plugin);
}
- if (aware instanceof ShutdownAwarePlugin) {
- shutdownAwarePluginList.add((ShutdownAwarePlugin) aware);
+ if (plugin instanceof ShutdownAwarePlugin) {
+ shutdownAwarePluginList.add((ShutdownAwarePlugin)plugin);
}
} finally {
writeLock.unlock();
@@ -118,14 +119,14 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
/**
* Unregister {@link ThreadPoolPlugin}
*
- * @param id name
+ * @param pluginId plugin id
*/
@Override
- public void unregister(String id) {
+ public void unregister(String pluginId) {
Lock writeLock = instanceLock.writeLock();
writeLock.lock();
try {
- Optional.ofNullable(id)
+ Optional.ofNullable(pluginId)
.map(registeredPlugins::remove)
.ifPresent(old -> {
// remove quick index if necessary
@@ -150,14 +151,15 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
/**
* Whether the {@link ThreadPoolPlugin} has been registered.
*
- * @param id name
+ * @param pluginId plugin id
* @return ture if target has been registered, false otherwise
*/
@Override
- public boolean isRegistered(String id) {
+ public boolean isRegistered(String pluginId) {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
- return registeredPlugins.containsKey(id);
+ return registeredPlugins.containsKey(pluginId);
} finally {
readLock.unlock();
}
@@ -166,29 +168,32 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
/**
* Get {@link ThreadPoolPlugin}
*
- * @param id target name
- * @param target aware type
+ * @param pluginId plugin id
+ * @param plugin type
* @return {@link ThreadPoolPlugin}, null if unregister
*/
+ @Nullable
@Override
@SuppressWarnings("unchecked")
- public A getAware(String id) {
+ public A getPlugin(String pluginId) {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
- return (A) registeredPlugins.get(id);
+ return (A) registeredPlugins.get(pluginId);
} finally {
readLock.unlock();
}
}
/**
- * Get execute aware list.
+ * Get execute plugin list.
*
* @return {@link ExecuteAwarePlugin}
*/
@Override
public Collection getExecuteAwareList() {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
return executeAwarePluginList;
} finally {
@@ -197,13 +202,14 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
}
/**
- * Get rejected aware list.
+ * Get rejected plugin list.
*
* @return {@link RejectedAwarePlugin}
*/
@Override
public Collection getRejectedAwareList() {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
return rejectedAwarePluginList;
} finally {
@@ -212,13 +218,14 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
}
/**
- * Get shutdown aware list.
+ * Get shutdown plugin list.
*
* @return {@link ShutdownAwarePlugin}
*/
@Override
public Collection getShutdownAwareList() {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
return shutdownAwarePluginList;
} finally {
@@ -227,13 +234,14 @@ public class DefaultThreadPoolPluginRegistry implements ThreadPoolPluginRegistry
}
/**
- * Get shutdown aware list.
+ * Get shutdown plugin list.
*
* @return {@link ShutdownAwarePlugin}
*/
@Override
public Collection getTaskAwareList() {
Lock readLock = instanceLock.readLock();
+ readLock.lock();
try {
return taskAwarePluginList;
} finally {
diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistry.java b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistry.java
index 597bb1ae..13ebdfec 100644
--- a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistry.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistry.java
@@ -17,6 +17,8 @@
package cn.hippo4j.core.plugin;
+import org.checkerframework.checker.nullness.qual.Nullable;
+
import java.util.Collection;
import java.util.Optional;
import java.util.function.Consumer;
@@ -37,97 +39,98 @@ public interface ThreadPoolPluginRegistry {
/**
* Register a {@link ThreadPoolPlugin}
*
- * @param aware aware
+ * @param plugin plugin
* @throws IllegalArgumentException thrown when a plugin with the same {@link ThreadPoolPlugin#getId()}
* already exists in the registry
* @see ThreadPoolPlugin#getId()
*/
- void register(ThreadPoolPlugin aware);
+ void register(ThreadPoolPlugin plugin);
/**
* Whether the {@link ThreadPoolPlugin} has been registered.
*
- * @param name name
+ * @param pluginId plugin id
* @return ture if target has been registered, false otherwise
*/
- boolean isRegistered(String name);
+ boolean isRegistered(String pluginId);
/**
* Unregister {@link ThreadPoolPlugin}
*
- * @param name name
+ * @param pluginId plugin id
*/
- void unregister(String name);
+ void unregister(String pluginId);
/**
* Get {@link ThreadPoolPlugin}
*
- * @param name target name
+ * @param pluginId plugin id
* @param target aware type
* @return {@link ThreadPoolPlugin}, null if unregister
* @throws ClassCastException thrown when the object obtained by name cannot be converted to target type
*/
- A getAware(String name);
+ @Nullable
+ A getPlugin(String pluginId);
/**
- * Get execute aware list.
+ * Get execute aware plugin list.
*
* @return {@link ExecuteAwarePlugin}
*/
Collection getExecuteAwareList();
/**
- * Get rejected aware list.
+ * Get rejected aware plugin list.
*
* @return {@link RejectedAwarePlugin}
*/
Collection getRejectedAwareList();
/**
- * Get shutdown aware list.
+ * Get shutdown aware plugin list.
*
* @return {@link ShutdownAwarePlugin}
*/
Collection getShutdownAwareList();
/**
- * Get shutdown aware list.
+ * Get shutdown aware plugin list.
*
* @return {@link ShutdownAwarePlugin}
*/
Collection getTaskAwareList();
/**
- * Try to get target Aware and apply operation, do nothing if is not present.
+ * Try to get target plugin and apply operation, do nothing if it's not present.
*
- * @param name aware name
+ * @param pluginId plugin id
* @param targetType target type
- * @param consumer operation for target aware
- * @param aware type
+ * @param consumer operation for target plugin
+ * @param plugin type
* @return this instance
* @throws ClassCastException thrown when the object obtained by name cannot be converted to target type
*/
default ThreadPoolPluginRegistry getAndThen(
- String name, Class targetType, Consumer consumer) {
- Optional.ofNullable(getAware(name))
+ String pluginId, Class targetType, Consumer consumer) {
+ Optional.ofNullable(getPlugin(pluginId))
.map(targetType::cast)
.ifPresent(consumer);
return this;
}
/**
- * Try to get target Aware and return value of apply function, return default value if is not present.
+ * Try to get target plugin and return value of apply function, return default value if it's not present.
*
- * @param name aware name
+ * @param pluginId plugin id
* @param targetType target type
- * @param function operation for target aware
+ * @param function operation for target plugin
* @param defaultValue default value
- * @param aware type
- * @return value of apply function, default value if aware is not present
+ * @param plugin type
+ * @return value of apply function, default value if plugin is not present
* @throws ClassCastException thrown when the object obtained by name cannot be converted to target type
*/
- default R getAndThen(String name, Class targetType, Function function, R defaultValue) {
- return Optional.ofNullable(getAware(name))
+ default R getAndThen(String pluginId, Class targetType, Function function, R defaultValue) {
+ return Optional.ofNullable(getPlugin(pluginId))
.map(targetType::cast)
.map(function)
.orElse(defaultValue);
diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistryDelegate.java b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistryDelegate.java
index 3652d9fd..8199b8e4 100644
--- a/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistryDelegate.java
+++ b/hippo4j-core/src/main/java/cn/hippo4j/core/plugin/ThreadPoolPluginRegistryDelegate.java
@@ -1,6 +1,7 @@
package cn.hippo4j.core.plugin;
import org.checkerframework.checker.nullness.qual.NonNull;
+import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Collection;
@@ -30,44 +31,45 @@ public interface ThreadPoolPluginRegistryDelegate extends ThreadPoolPluginRegist
/**
* Register a {@link ThreadPoolPlugin}
*
- * @param aware aware
+ * @param plugin aware
*/
@Override
- default void register(ThreadPoolPlugin aware) {
- getThreadPoolPluginRegistry().register(aware);
+ default void register(ThreadPoolPlugin plugin) {
+ getThreadPoolPluginRegistry().register(plugin);
}
/**
* Whether the {@link ThreadPoolPlugin} has been registered.
*
- * @param name name
+ * @param pluginId name
* @return ture if target has been registered, false otherwise
*/
@Override
- default boolean isRegistered(String name) {
- return getThreadPoolPluginRegistry().isRegistered(name);
+ default boolean isRegistered(String pluginId) {
+ return getThreadPoolPluginRegistry().isRegistered(pluginId);
}
/**
* Unregister {@link ThreadPoolPlugin}
*
- * @param name name
+ * @param pluginId name
*/
@Override
- default void unregister(String name) {
- getThreadPoolPluginRegistry().unregister(name);
+ default void unregister(String pluginId) {
+ getThreadPoolPluginRegistry().unregister(pluginId);
}
/**
* Get {@link ThreadPoolPlugin}
*
- * @param name target name
+ * @param pluginId target name
* @return {@link ThreadPoolPlugin}, null if unregister
* @throws ClassCastException thrown when the object obtained by name cannot be converted to target type
*/
+ @Nullable
@Override
- default A getAware(String name) {
- return getThreadPoolPluginRegistry().getAware(name);
+ default A getPlugin(String pluginId) {
+ return getThreadPoolPluginRegistry().getPlugin(pluginId);
}
/**