From bc4a20f6c572e02f120dfaccbb896212c9e2b65d Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 9 Dec 2008 21:32:29 +0000 Subject: [PATCH] All pre-defined internal header names are now valid Java identifiers. Dot delimiters have been replaced by underscores, and hyphenated names are now camelCase. The SimpleHeaderEnricherParser uses Conventions.attributeToPropertyName(). The attributes are now legal for passing as JMS properties (INT-511). --- .../integration/file/FileHeaders.java | 4 +++- .../integration/jms/JmsHeaders.java | 8 +++++--- .../integration/mail/MailHeaders.java | 10 ++++++---- .../samples/ws/temperatureConversion.xml | 2 +- .../integration/ws/WebServiceHeaders.java | 6 ++++-- .../config/xml/SimpleHeaderEnricherParser.java | 2 ++ .../integration/core/MessageHeaders.java | 14 +++++++------- .../interceptor/ChannelInterceptorTests.java | 4 ++-- 8 files changed, 30 insertions(+), 20 deletions(-) diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileHeaders.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileHeaders.java index b50b3cb873..14352b8eae 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileHeaders.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/FileHeaders.java @@ -16,6 +16,8 @@ package org.springframework.integration.file; +import org.springframework.integration.core.MessageHeaders; + /** * Pre-defined header names to be used when storing or retrieving * File-related values to/from integration Message Headers. @@ -24,7 +26,7 @@ package org.springframework.integration.file; */ public abstract class FileHeaders { - public static final String PREFIX = "spring.integration.file."; + public static final String PREFIX = MessageHeaders.PREFIX + "file_"; public static final String FILENAME = PREFIX + "name"; diff --git a/org.springframework.integration.jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java b/org.springframework.integration.jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java index 722dd19d07..35cc633878 100644 --- a/org.springframework.integration.jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java +++ b/org.springframework.integration.jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java @@ -16,6 +16,8 @@ package org.springframework.integration.jms; +import org.springframework.integration.core.MessageHeaders; + /** * Pre-defined names and prefixes to be used for setting and/or retrieving JMS * attributes from/to integration Message Headers. @@ -27,11 +29,11 @@ public abstract class JmsHeaders { /** * Prefix for any message header that should be passed for usage by the JMS transport. */ - public static final String PREFIX = "spring.integration.jms."; + public static final String PREFIX = MessageHeaders.PREFIX + "jms_"; - public static final String CORRELATION_ID = PREFIX + "correlation-id"; + public static final String CORRELATION_ID = PREFIX + "correlationId"; - public static final String REPLY_TO = PREFIX + "reply-to"; + public static final String REPLY_TO = PREFIX + "replyTo"; public static final String REDELIVERED = PREFIX + "redelivered"; diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/MailHeaders.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/MailHeaders.java index 5f34ff8289..503a30a19e 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/MailHeaders.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/MailHeaders.java @@ -16,6 +16,8 @@ package org.springframework.integration.mail; +import org.springframework.integration.core.MessageHeaders; + /** * Pre-defined header names to be used for setting and/or retrieving Mail * Message attributes from/to integration Message Headers. @@ -24,7 +26,7 @@ package org.springframework.integration.mail; */ public abstract class MailHeaders { - public static final String PREFIX = "spring.integration.mail."; + public static final String PREFIX = MessageHeaders.PREFIX + "mail_"; public static final String SUBJECT = PREFIX + "subject"; @@ -36,10 +38,10 @@ public abstract class MailHeaders { public static final String FROM = PREFIX + "from"; - public static final String REPLY_TO = PREFIX+ "reply-to"; + public static final String REPLY_TO = PREFIX+ "replyTo"; - public static final String MULTIPART_MODE = PREFIX + "multipart-mode"; + public static final String MULTIPART_MODE = PREFIX + "multipartMode"; - public static final String ATTACHMENT_FILENAME = PREFIX + "attachment-filename"; + public static final String ATTACHMENT_FILENAME = PREFIX + "attachmentFilename"; } diff --git a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml index 3226cbf4bb..85a9c4e2f1 100644 --- a/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml +++ b/org.springframework.integration.samples/src/main/java/org/springframework/integration/samples/ws/temperatureConversion.xml @@ -18,7 +18,7 @@ Web Service for the given URI, and the reply Message is sent to the 'celsiusChannel'. --> -
+
diff --git a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/WebServiceHeaders.java b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/WebServiceHeaders.java index bed2c9f098..3c542d92bb 100644 --- a/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/WebServiceHeaders.java +++ b/org.springframework.integration.ws/src/main/java/org/springframework/integration/ws/WebServiceHeaders.java @@ -16,6 +16,8 @@ package org.springframework.integration.ws; +import org.springframework.integration.core.MessageHeaders; + /** * Pre-defined header names to be used when storing or retrieving * Web Service properties to/from integration Message Headers. @@ -24,8 +26,8 @@ package org.springframework.integration.ws; */ public abstract class WebServiceHeaders { - public static final String PREFIX = "spring.integration.ws."; + public static final String PREFIX = MessageHeaders.PREFIX + "ws_"; - public static final String SOAP_ACTION = PREFIX + "soap-action"; + public static final String SOAP_ACTION = PREFIX + "soapAction"; } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java index c70abf4193..b2116d4b0d 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.ParserContext; +import org.springframework.core.Conventions; import org.springframework.integration.transformer.HeaderEnricher; import org.springframework.integration.transformer.Transformer; import org.springframework.util.ObjectUtils; @@ -84,6 +85,7 @@ public class SimpleHeaderEnricherParser extends AbstractTransformerParser { Node node = attributes.item(i); String name = node.getNodeName(); if (this.isEligibleHeaderName(name)) { + name = Conventions.attributeNameToPropertyName(name); Object value = (this.referenceAttributes.contains(name)) ? new RuntimeBeanReference(node.getNodeValue()) : node.getNodeValue(); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/core/MessageHeaders.java b/org.springframework.integration/src/main/java/org/springframework/integration/core/MessageHeaders.java index 99a17ed6b5..c5332f2cc4 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/core/MessageHeaders.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/core/MessageHeaders.java @@ -42,25 +42,25 @@ public final class MessageHeaders implements Map, Serializable { private static final Log logger = LogFactory.getLog(MessageHeaders.class); - public static final String PREFIX = "spring.integration."; + public static final String PREFIX = "springintegration_"; public static final String ID = PREFIX + "id"; public static final String TIMESTAMP = PREFIX + "timestamp"; - public static final String CORRELATION_ID = PREFIX + "correlation-id"; + public static final String CORRELATION_ID = PREFIX + "correlationId"; - public static final String REPLY_CHANNEL = PREFIX + "reply-channel"; + public static final String REPLY_CHANNEL = PREFIX + "replyChannel"; - public static final String ERROR_CHANNEL = PREFIX + "error-channel"; + public static final String ERROR_CHANNEL = PREFIX + "errorChannel"; - public static final String EXPIRATION_DATE = PREFIX + "expiration-date"; + public static final String EXPIRATION_DATE = PREFIX + "expirationDate"; public static final String PRIORITY = PREFIX + "priority"; - public static final String SEQUENCE_NUMBER = PREFIX + "sequence-number"; + public static final String SEQUENCE_NUMBER = PREFIX + "sequenceNumber"; - public static final String SEQUENCE_SIZE = PREFIX + "sequence-size"; + public static final String SEQUENCE_SIZE = PREFIX + "sequenceSize"; private final Map headers; diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/channel/interceptor/ChannelInterceptorTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/channel/interceptor/ChannelInterceptorTests.java index d9d79b73a8..4a4d447f80 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/channel/interceptor/ChannelInterceptorTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/channel/interceptor/ChannelInterceptorTests.java @@ -48,7 +48,7 @@ public class ChannelInterceptorTests { Message result = channel.receive(0); assertNotNull(result); assertEquals("test", result.getPayload()); - assertEquals(1, result.getHeaders().get(PreSendReturnsMessageInterceptor.class.getName())); + assertEquals(1, result.getHeaders().get(PreSendReturnsMessageInterceptor.class.getSimpleName())); } @Test @@ -161,7 +161,7 @@ public class ChannelInterceptorTests { public Message preSend(Message message, MessageChannel channel) { assertNotNull(message); Message reply = MessageBuilder.fromMessage(message) - .setHeader(this.getClass().getName(), counter.incrementAndGet()).build(); + .setHeader(this.getClass().getSimpleName(), counter.incrementAndGet()).build(); return reply; } }