INT-1489 removed unnecessary instanceof checks in RouterFactoryBean
This commit is contained in:
@@ -52,6 +52,7 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
|
|
||||||
private volatile Boolean ignoreSendFailures;
|
private volatile Boolean ignoreSendFailures;
|
||||||
|
|
||||||
|
|
||||||
public void setChannelResolver(ChannelResolver channelResolver) {
|
public void setChannelResolver(ChannelResolver channelResolver) {
|
||||||
this.channelResolver = channelResolver;
|
this.channelResolver = channelResolver;
|
||||||
}
|
}
|
||||||
@@ -86,10 +87,8 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
MessageHandler createMethodInvokingHandler(Object targetObject, String targetMethodName) {
|
MessageHandler createMethodInvokingHandler(Object targetObject, String targetMethodName) {
|
||||||
|
|
||||||
Assert.notNull(targetObject, "target object must not be null");
|
Assert.notNull(targetObject, "target object must not be null");
|
||||||
AbstractMessageRouter router = extractRouter(targetObject);
|
AbstractMessageRouter router = extractRouter(targetObject);
|
||||||
|
|
||||||
if (router == null) {
|
if (router == null) {
|
||||||
router = this.createRouter(targetObject, targetMethodName);
|
router = this.createRouter(targetObject, targetMethodName);
|
||||||
this.configureRouter(router);
|
this.configureRouter(router);
|
||||||
@@ -99,12 +98,10 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
Assert.isTrue(!StringUtils.hasText(targetMethodName), "target method should not be provided when the target "
|
Assert.isTrue(!StringUtils.hasText(targetMethodName), "target method should not be provided when the target "
|
||||||
+ "object is an implementation of AbstractMessageRouter");
|
+ "object is an implementation of AbstractMessageRouter");
|
||||||
this.configureRouter(router);
|
this.configureRouter(router);
|
||||||
|
|
||||||
if (targetObject instanceof MessageHandler) {
|
if (targetObject instanceof MessageHandler) {
|
||||||
return (MessageHandler) targetObject;
|
return (MessageHandler) targetObject;
|
||||||
}
|
}
|
||||||
return router;
|
return router;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractMessageRouter extractRouter(Object targetObject) {
|
private AbstractMessageRouter extractRouter(Object targetObject) {
|
||||||
@@ -122,13 +119,12 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
if (targetSource == null) {
|
if (targetSource == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Object target;
|
|
||||||
try {
|
try {
|
||||||
target = targetSource.getTarget();
|
return extractRouter(targetSource.getTarget());
|
||||||
} catch (Exception e) {
|
}
|
||||||
|
catch (Exception e) {
|
||||||
throw new IllegalStateException(e);
|
throw new IllegalStateException(e);
|
||||||
}
|
}
|
||||||
return extractRouter(target);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -137,17 +133,18 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private AbstractMessageRouter createRouter(Object targetObject, String targetMethodName) {
|
private AbstractMessageRouter createRouter(Object targetObject, String targetMethodName) {
|
||||||
MethodInvokingRouter router = (StringUtils.hasText(targetMethodName)) ? new MethodInvokingRouter(targetObject,
|
MethodInvokingRouter router = (StringUtils.hasText(targetMethodName))
|
||||||
targetMethodName) : new MethodInvokingRouter(targetObject);
|
? new MethodInvokingRouter(targetObject, targetMethodName)
|
||||||
|
: new MethodInvokingRouter(targetObject);
|
||||||
return router;
|
return router;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractMessageRouter configureRouter(AbstractMessageRouter router) {
|
private AbstractMessageRouter configureRouter(AbstractMessageRouter router) {
|
||||||
if (this.channelResolver != null && router instanceof AbstractMessageRouter) {
|
if (this.channelResolver != null) {
|
||||||
((AbstractMessageRouter) router).setChannelResolver(this.channelResolver);
|
router.setChannelResolver(this.channelResolver);
|
||||||
}
|
}
|
||||||
if (this.channelIdentifierMap != null && router instanceof AbstractMessageRouter) {
|
if (this.channelIdentifierMap != null) {
|
||||||
((AbstractMessageRouter) router).setChannelIdentifierMap(this.channelIdentifierMap);
|
router.setChannelIdentifierMap(this.channelIdentifierMap);
|
||||||
}
|
}
|
||||||
if (this.defaultOutputChannel != null) {
|
if (this.defaultOutputChannel != null) {
|
||||||
router.setDefaultOutputChannel(this.defaultOutputChannel);
|
router.setDefaultOutputChannel(this.defaultOutputChannel);
|
||||||
@@ -156,11 +153,7 @@ public class RouterFactoryBean extends AbstractMessageHandlerFactoryBean {
|
|||||||
router.setTimeout(timeout.longValue());
|
router.setTimeout(timeout.longValue());
|
||||||
}
|
}
|
||||||
if (this.ignoreChannelNameResolutionFailures != null) {
|
if (this.ignoreChannelNameResolutionFailures != null) {
|
||||||
Assert.isTrue(router instanceof AbstractMessageRouter,
|
router.setIgnoreChannelNameResolutionFailures(ignoreChannelNameResolutionFailures);
|
||||||
"The 'ignoreChannelNameResolutionFailures' property can only be set on routers that extend "
|
|
||||||
+ AbstractMessageRouter.class.getName());
|
|
||||||
((AbstractMessageRouter) router)
|
|
||||||
.setIgnoreChannelNameResolutionFailures(ignoreChannelNameResolutionFailures);
|
|
||||||
}
|
}
|
||||||
if (this.applySequence != null) {
|
if (this.applySequence != null) {
|
||||||
router.setApplySequence(this.applySequence);
|
router.setApplySequence(this.applySequence);
|
||||||
|
|||||||
Reference in New Issue
Block a user