Removed MessageHandlerDecorator (the target object of any Method-invoking adapter can now use standard AOP).
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-2008 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.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.handler;
|
||||
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.message.MessageHandlingException;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* A message handler implementation that intercepts calls to another handler.
|
||||
*
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public abstract class MessageHandlerDecorator implements MessageHandler {
|
||||
|
||||
private MessageHandler handler;
|
||||
|
||||
|
||||
public MessageHandlerDecorator(MessageHandler handler) {
|
||||
Assert.notNull(handler, "handler must not be null");
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
public MessageHandlerDecorator() {
|
||||
}
|
||||
|
||||
|
||||
public void setHandler(MessageHandler handler) {
|
||||
Assert.notNull(handler, "handler must not be null");
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
public final Message<?> handle(Message<?> message) {
|
||||
if (this.handler == null) {
|
||||
throw new MessageHandlingException(message,
|
||||
"MessageHandlerDecorator's handler must not be null");
|
||||
}
|
||||
return this.handleInternal(message, this.handler);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The handler method for subclasses to implement.
|
||||
*
|
||||
* @param message the message to handle
|
||||
* @param handler the intercepted handler
|
||||
* @return a reply message or null
|
||||
*/
|
||||
public abstract Message<?> handleInternal(Message<?> message, MessageHandler handler);
|
||||
|
||||
}
|
||||
@@ -29,7 +29,7 @@ import org.springframework.integration.message.StringMessage;
|
||||
public class MessageHandlerChainTests {
|
||||
|
||||
@Test
|
||||
public void testSimpleChain() {
|
||||
public void testChain() {
|
||||
MessageHandlerChain chain = new MessageHandlerChain();
|
||||
chain.add(new TestHandler("a"));
|
||||
chain.add(new TestHandler("b"));
|
||||
@@ -39,20 +39,6 @@ public class MessageHandlerChainTests {
|
||||
assertEquals("!abcd", result.getPayload());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChainWithDecorators() {
|
||||
MessageHandler handler1 = new TestHandler("*");
|
||||
MessageHandler handler2 = new TestHandlerDecorator("2", handler1);
|
||||
MessageHandler handler3 = new TestHandlerDecorator("3", handler2);
|
||||
MessageHandler handler4 = new TestHandlerDecorator("4", handler3);
|
||||
MessageHandlerChain chain = new MessageHandlerChain();
|
||||
chain.add(new TestHandler("a"));
|
||||
chain.add(handler4);
|
||||
chain.add(new TestHandler("b"));
|
||||
Message<?> result = chain.handle(new StringMessage("!"));
|
||||
assertEquals("234!a*234b", result.getPayload());
|
||||
}
|
||||
|
||||
|
||||
private static class TestHandler implements MessageHandler {
|
||||
|
||||
@@ -67,21 +53,4 @@ public class MessageHandlerChainTests {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static class TestHandlerDecorator extends MessageHandlerDecorator {
|
||||
|
||||
private String text;
|
||||
|
||||
TestHandlerDecorator(String text, MessageHandler handler) {
|
||||
super(handler);
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message<?> handleInternal(Message<?> message, MessageHandler handler) {
|
||||
message = handler.handle(new StringMessage(text + message.getPayload()));
|
||||
return new StringMessage(message.getPayload() + text);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user