Polish methods to register async interceptors
This commit is contained in:
parent
d701464517
commit
1acd5cff8f
|
|
@ -181,13 +181,22 @@ public final class WebAsyncManager {
|
|||
* @param interceptor the interceptor to register
|
||||
*/
|
||||
public void registerCallableInterceptor(Object key, CallableProcessingInterceptor interceptor) {
|
||||
Assert.notNull(interceptor, "interceptor is required");
|
||||
Assert.notNull(key, "Key is required");
|
||||
Assert.notNull(interceptor, "CallableProcessingInterceptor is required");
|
||||
this.callableInterceptors.put(key, interceptor);
|
||||
}
|
||||
|
||||
public void registerAllCallableInterceptors(Map<Object, CallableProcessingInterceptor> interceptors) {
|
||||
Assert.notNull(interceptors);
|
||||
this.callableInterceptors.putAll(interceptors);
|
||||
/**
|
||||
* Register a {@link CallableProcessingInterceptor} without a key.
|
||||
* The key is derived from the class name and hashcode.
|
||||
* @param interceptor the interceptor to register
|
||||
*/
|
||||
public void registerCallableInterceptor(CallableProcessingInterceptor... interceptors) {
|
||||
Assert.notNull(interceptors, "A CallableProcessingInterceptor is required");
|
||||
for (CallableProcessingInterceptor interceptor : interceptors) {
|
||||
String key = interceptor.getClass().getName() + ":" + interceptor.hashCode();
|
||||
this.callableInterceptors.put(key, interceptor);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -196,13 +205,23 @@ public final class WebAsyncManager {
|
|||
* @param interceptor the interceptor to register
|
||||
*/
|
||||
public void registerDeferredResultInterceptor(Object key, DeferredResultProcessingInterceptor interceptor) {
|
||||
Assert.notNull(interceptor, "interceptor is required");
|
||||
Assert.notNull(key, "Key is required");
|
||||
Assert.notNull(interceptor, "DeferredResultProcessingInterceptor is required");
|
||||
this.deferredResultInterceptors.put(key, interceptor);
|
||||
}
|
||||
|
||||
public void registerAllDeferredResultInterceptors(Map<Object, DeferredResultProcessingInterceptor> interceptors) {
|
||||
Assert.notNull(interceptors);
|
||||
this.deferredResultInterceptors.putAll(interceptors);
|
||||
/**
|
||||
* Register a {@link DeferredResultProcessingInterceptor} without a key.
|
||||
* The key is derived from the class name and hashcode.
|
||||
* @param key the key
|
||||
* @param interceptors the interceptor to register
|
||||
*/
|
||||
public void registerDeferredResultInterceptor(DeferredResultProcessingInterceptor... interceptors) {
|
||||
Assert.notNull(interceptors, "A DeferredResultProcessingInterceptor is required");
|
||||
for (DeferredResultProcessingInterceptor interceptor : interceptors) {
|
||||
String key = interceptors.getClass().getName() + ":" + interceptors.hashCode();
|
||||
this.deferredResultInterceptors.put(key, interceptor);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -138,11 +138,9 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
|
|||
|
||||
private Long asyncRequestTimeout;
|
||||
|
||||
private final Map<Object, CallableProcessingInterceptor> callableInterceptors =
|
||||
new LinkedHashMap<Object, CallableProcessingInterceptor>();
|
||||
private CallableProcessingInterceptor[] callableInterceptors = new CallableProcessingInterceptor[] {};
|
||||
|
||||
private final Map<Object, DeferredResultProcessingInterceptor> deferredResultInterceptors =
|
||||
new LinkedHashMap<Object, DeferredResultProcessingInterceptor>();
|
||||
private DeferredResultProcessingInterceptor[] deferredResultInterceptors = new DeferredResultProcessingInterceptor[] {};
|
||||
|
||||
private boolean ignoreDefaultModelOnRedirect = false;
|
||||
|
||||
|
|
@ -378,10 +376,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
|
|||
*/
|
||||
public void setCallableInterceptors(List<CallableProcessingInterceptor> interceptors) {
|
||||
Assert.notNull(interceptors);
|
||||
for (int index = 0 ; index < interceptors.size(); index++) {
|
||||
CallableProcessingInterceptor interceptor = interceptors.get(index);
|
||||
this.callableInterceptors.put(getInterceptorKey(interceptor, index), interceptor);
|
||||
}
|
||||
this.callableInterceptors = interceptors.toArray(new CallableProcessingInterceptor[interceptors.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -390,14 +385,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
|
|||
*/
|
||||
public void setDeferredResultInterceptors(List<DeferredResultProcessingInterceptor> interceptors) {
|
||||
Assert.notNull(interceptors);
|
||||
for (int index = 0 ; index < interceptors.size(); index++) {
|
||||
DeferredResultProcessingInterceptor interceptor = interceptors.get(index);
|
||||
this.deferredResultInterceptors.put(getInterceptorKey(interceptor, index), interceptor);
|
||||
}
|
||||
}
|
||||
|
||||
private String getInterceptorKey(Object interceptor, int index) {
|
||||
return this.hashCode() + ":" + interceptor.getClass().getName() + "#" + index;
|
||||
this.deferredResultInterceptors = interceptors.toArray(new DeferredResultProcessingInterceptor[interceptors.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -740,8 +728,8 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter i
|
|||
final WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
|
||||
asyncManager.setTaskExecutor(this.taskExecutor);
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
asyncManager.registerAllCallableInterceptors(this.callableInterceptors);
|
||||
asyncManager.registerAllDeferredResultInterceptors(this.deferredResultInterceptors);
|
||||
asyncManager.registerCallableInterceptor(this.callableInterceptors);
|
||||
asyncManager.registerDeferredResultInterceptor(this.deferredResultInterceptors);
|
||||
|
||||
if (asyncManager.hasConcurrentResult()) {
|
||||
Object result = asyncManager.getConcurrentResult();
|
||||
|
|
|
|||
|
|
@ -484,13 +484,13 @@ public class MvcNamespaceTests {
|
|||
assertEquals(ConcurrentTaskExecutor.class, fieldAccessor.getPropertyValue("taskExecutor").getClass());
|
||||
assertEquals(2500L, fieldAccessor.getPropertyValue("asyncRequestTimeout"));
|
||||
|
||||
Map<Object, CallableProcessingInterceptor> callableInterceptors =
|
||||
(Map<Object, CallableProcessingInterceptor>) fieldAccessor.getPropertyValue("callableInterceptors");
|
||||
assertEquals(1, callableInterceptors.size());
|
||||
CallableProcessingInterceptor[] callableInterceptors =
|
||||
(CallableProcessingInterceptor[]) fieldAccessor.getPropertyValue("callableInterceptors");
|
||||
assertEquals(1, callableInterceptors.length);
|
||||
|
||||
Map<Object, DeferredResultProcessingInterceptor> deferredResultInterceptors =
|
||||
(Map<Object, DeferredResultProcessingInterceptor>) fieldAccessor.getPropertyValue("deferredResultInterceptors");
|
||||
assertEquals(1, deferredResultInterceptors.size());
|
||||
DeferredResultProcessingInterceptor[] deferredResultInterceptors =
|
||||
(DeferredResultProcessingInterceptor[]) fieldAccessor.getPropertyValue("deferredResultInterceptors");
|
||||
assertEquals(1, deferredResultInterceptors.length);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -149,13 +149,13 @@ public class WebMvcConfigurationSupportExtensionTests {
|
|||
assertEquals(ConcurrentTaskExecutor.class, fieldAccessor.getPropertyValue("taskExecutor").getClass());
|
||||
assertEquals(2500L, fieldAccessor.getPropertyValue("asyncRequestTimeout"));
|
||||
|
||||
Map<Object, CallableProcessingInterceptor> callableInterceptors =
|
||||
(Map<Object, CallableProcessingInterceptor>) fieldAccessor.getPropertyValue("callableInterceptors");
|
||||
assertEquals(1, callableInterceptors.size());
|
||||
CallableProcessingInterceptor[] callableInterceptors =
|
||||
(CallableProcessingInterceptor[]) fieldAccessor.getPropertyValue("callableInterceptors");
|
||||
assertEquals(1, callableInterceptors.length);
|
||||
|
||||
Map<Object, DeferredResultProcessingInterceptor> deferredResultInterceptors =
|
||||
(Map<Object, DeferredResultProcessingInterceptor>) fieldAccessor.getPropertyValue("deferredResultInterceptors");
|
||||
assertEquals(1, deferredResultInterceptors.size());
|
||||
DeferredResultProcessingInterceptor[] deferredResultInterceptors =
|
||||
(DeferredResultProcessingInterceptor[]) fieldAccessor.getPropertyValue("deferredResultInterceptors");
|
||||
assertEquals(1, deferredResultInterceptors.length);
|
||||
|
||||
assertEquals(false, fieldAccessor.getPropertyValue("ignoreDefaultModelOnRedirect"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue