From 355a8e70e995541f22f85b78fbdf2cefc314ce69 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 17 Dec 2008 13:25:05 +0000 Subject: [PATCH] Refactored error-handling demo to use a chain with a transformer instead of the channel-interceptor. --- ...geTransformer.java => ErrorUnwrapper.java} | 18 +++++++---- .../samples/errorhandling/Invitation.java | 5 ++++ .../samples/errorhandling/PartyDemo.java | 10 +++---- .../samples/errorhandling/PartyGuest.java | 4 ++- .../samples/errorhandling/PartyHost.java | 10 +++---- .../errorhandling/errorHandlingDemo.xml | 30 +++++++------------ 6 files changed, 40 insertions(+), 37 deletions(-) rename org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/{UnwrappingErrorMessageTransformer.java => ErrorUnwrapper.java} (69%) diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/UnwrappingErrorMessageTransformer.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/ErrorUnwrapper.java similarity index 69% rename from org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/UnwrappingErrorMessageTransformer.java rename to org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/ErrorUnwrapper.java index dca3b33d45..f940c57870 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/UnwrappingErrorMessageTransformer.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/ErrorUnwrapper.java @@ -12,18 +12,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.errorhandling; +import org.springframework.integration.annotation.MessageEndpoint; +import org.springframework.integration.annotation.Transformer; import org.springframework.integration.core.Message; import org.springframework.integration.core.MessagingException; import org.springframework.integration.message.ErrorMessage; -import org.springframework.integration.transformer.Transformer; -import org.springframework.util.Assert; -public class UnwrappingErrorMessageTransformer implements Transformer { +/** + * @author Iwein Fuld + */ +@MessageEndpoint +public class ErrorUnwrapper { - public Message transform(Message message) { - Assert.isAssignable(ErrorMessage.class, message.getClass()); - return ((MessagingException) ((ErrorMessage) message).getPayload()).getFailedMessage(); + @Transformer + public Message transform(ErrorMessage errorMessage) { + return ((MessagingException) errorMessage.getPayload()).getFailedMessage(); } + } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/Invitation.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/Invitation.java index 79b97b5604..e9e3dbf028 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/Invitation.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/Invitation.java @@ -12,8 +12,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.errorhandling; +/** + * @author Iwein Fuld + */ public class Invitation { private final int number; @@ -26,4 +30,5 @@ public class Invitation { public String toString() { return "Invitation number " + number; } + } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyDemo.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyDemo.java index 6f1919653c..0fdfec2d10 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyDemo.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyDemo.java @@ -12,18 +12,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.errorhandling; import org.springframework.context.support.ClassPathXmlApplicationContext; +/** + * @author Iwein Fuld + */ public class PartyDemo { - /** - * @param args - */ public static void main(String[] args) { - new ClassPathXmlApplicationContext("errorHandlingDemo.xml", PartyDemo.class).start(); - + new ClassPathXmlApplicationContext("errorHandlingDemo.xml", PartyDemo.class); } } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyGuest.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyGuest.java index 7b6e2aced0..54ab6aa0e4 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyGuest.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyGuest.java @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.errorhandling; import org.springframework.integration.annotation.MessageEndpoint; @@ -21,12 +22,13 @@ import org.springframework.integration.annotation.MessageEndpoint; * address exception message. * * @author Iwein Fuld - * */ @MessageEndpoint public class PartyGuest { + public void onInvitation(Invitation invitation) { System.out.println("Guest is throwing exception"); throw new RuntimeException("Wrong address"); } + } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyHost.java b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyHost.java index 92e7661d9a..2d18e8ef60 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyHost.java +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/PartyHost.java @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.integration.samples.errorhandling; import java.util.concurrent.atomic.AtomicInteger; @@ -19,19 +20,18 @@ import java.util.concurrent.atomic.AtomicInteger; import org.springframework.integration.annotation.MessageEndpoint; /** - * Sends invitations to Guests and likes to be notified of delivery - * failures of course. + * Sends invitations to PartyGuests and likes to be notified of + * delivery failures of course. * * @author Iwein Fuld - * */ @MessageEndpoint public class PartyHost { - private final AtomicInteger counter = new AtomicInteger(1); + private final AtomicInteger counter = new AtomicInteger(0); public Invitation nextInvitation() { - return new Invitation(counter.getAndIncrement()); + return new Invitation(counter.incrementAndGet()); } public void onInvitationFailed(Invitation inv) { diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/errorHandlingDemo.xml b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/errorHandlingDemo.xml index f9963032a7..c1d0c8d654 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/errorHandlingDemo.xml +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/errorhandling/errorHandlingDemo.xml @@ -11,15 +11,14 @@ http://www.springframework.org/schema/integration/spring-integration-1.0.xsd http://www.springframework.org/schema/integration/stream http://www.springframework.org/schema/integration/stream/spring-integration-stream-1.0.xsd"> - - + + + - + @@ -30,22 +29,13 @@ - - - - - - - - - + - + + + + - + \ No newline at end of file