annotation, Clas
return (A) Proxy.newProxyInstance(classLoader, interfaces, handler);
}
+ private static String getName(Class> clazz) {
+ String canonicalName = clazz.getCanonicalName();
+ return (canonicalName != null ? canonicalName : clazz.getName());
+ }
+
private static boolean isVisible(ClassLoader classLoader, Class> interfaceClass) {
if (classLoader == interfaceClass.getClassLoader()) {
diff --git a/spring-core/src/main/java/org/springframework/core/task/AsyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/AsyncTaskExecutor.java
index 12ddd769cd62..d4cf0324bcad 100644
--- a/spring-core/src/main/java/org/springframework/core/task/AsyncTaskExecutor.java
+++ b/spring-core/src/main/java/org/springframework/core/task/AsyncTaskExecutor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2018 the original author or authors.
+ * Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,8 +21,7 @@
/**
* Extended interface for asynchronous {@link TaskExecutor} implementations,
- * offering an overloaded {@link #execute(Runnable, long)} variant with a start
- * timeout parameter as well support for {@link java.util.concurrent.Callable}.
+ * offering support for {@link java.util.concurrent.Callable}.
*
* Note: The {@link java.util.concurrent.Executors} class includes a set of
* methods that can convert some other common closure-like objects, for example,
@@ -41,10 +40,18 @@
*/
public interface AsyncTaskExecutor extends TaskExecutor {
- /** Constant that indicates immediate execution. */
+ /**
+ * Constant that indicates immediate execution.
+ * @deprecated as of 5.3.16 along with {@link #execute(Runnable, long)}
+ */
+ @Deprecated
long TIMEOUT_IMMEDIATE = 0;
- /** Constant that indicates no time limit. */
+ /**
+ * Constant that indicates no time limit.
+ * @deprecated as of 5.3.16 along with {@link #execute(Runnable, long)}
+ */
+ @Deprecated
long TIMEOUT_INDEFINITE = Long.MAX_VALUE;
@@ -58,7 +65,10 @@ public interface AsyncTaskExecutor extends TaskExecutor {
* @throws TaskTimeoutException in case of the task being rejected because
* of the timeout (i.e. it cannot be started in time)
* @throws TaskRejectedException if the given task was not accepted
+ * @see #execute(Runnable)
+ * @deprecated as of 5.3.16 since the common executors do not support start timeouts
*/
+ @Deprecated
void execute(Runnable task, long startTimeout);
/**
diff --git a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java
index 7d96032ad80b..072502a868c9 100644
--- a/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java
+++ b/spring-core/src/main/java/org/springframework/core/task/SimpleAsyncTaskExecutor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2020 the original author or authors.
+ * Copyright 2002-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -174,6 +174,7 @@ public final boolean isThrottleActive() {
* if configured (through the superclass's settings).
* @see #doExecute(Runnable)
*/
+ @SuppressWarnings("deprecation")
@Override
public void execute(Runnable task) {
execute(task, TIMEOUT_INDEFINITE);
@@ -188,6 +189,7 @@ public void execute(Runnable task) {
* @see #TIMEOUT_IMMEDIATE
* @see #doExecute(Runnable)
*/
+ @Deprecated
@Override
public void execute(Runnable task, long startTimeout) {
Assert.notNull(task, "Runnable must not be null");
@@ -201,6 +203,7 @@ public void execute(Runnable task, long startTimeout) {
}
}
+ @SuppressWarnings("deprecation")
@Override
public Future> submit(Runnable task) {
FutureTask