mirror of
https://github.com/gmbrax/MediaManager-core.git
synced 2026-11-09 14:00:17 +00:00
Improve DelegateActionManager error handling for invalid handlers
- Add validation to ensure classes annotated with `@Action` implement `ActionHandler`, throwing `IllegalArgumentException` for mismatches. - Fix minor formatting issue in `@Action` annotation for `GetGenreByIdHandler`.
This commit is contained in:
parent
a5bd6e2c39
commit
5ce8f4ca2a
@@ -66,14 +66,17 @@ public class DelegateActionManager {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private ActionHandler instantiateHandler(Class<?> clazz) throws Exception {
|
||||
if(!ActionHandler.class.isAssignableFrom(clazz)){
|
||||
throw new IllegalArgumentException(
|
||||
clazz.getName() + " is annotated with @Action but does not implement ActionHandler");
|
||||
|
||||
}
|
||||
logger.debug("Attempting to instantiate handler: {}", clazz.getSimpleName());
|
||||
|
||||
|
||||
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
|
||||
|
||||
|
||||
Constructor<?>[] constructors = clazz.getDeclaredConstructors();
|
||||
|
||||
// Sort constructors by parameter count (descending) to prefer DI constructors
|
||||
java.util.Arrays.sort(constructors, (c1, c2) ->
|
||||
Integer.compare(c2.getParameterCount(), c1.getParameterCount()));
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Action( "genre.getById")
|
||||
@Action("genre.getById")
|
||||
public class GetGenreByIdHandler implements ActionHandler {
|
||||
private static final Logger logger = LogManager.getLogger(GetGenreByIdHandler.class);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user