diff --git a/spring-integration-xmpp/pom.xml b/spring-integration-xmpp/pom.xml index e5a00a90b4..0245b64538 100644 --- a/spring-integration-xmpp/pom.xml +++ b/spring-integration-xmpp/pom.xml @@ -74,6 +74,12 @@ ${project.version} compile + + org.springframework.integration + spring-integration-test + ${project.version} + test + commons-lang commons-lang diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java index 1c68347154..6e6846c4f1 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppNamespaceHandler.java @@ -123,6 +123,8 @@ public class XmppNamespaceHandler extends NamespaceHandlerSupport { protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { configureXMPPConnection(element, builder, parserContext); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "channel", "requestChannel"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "extract-payload"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-startup"); } } @@ -153,6 +155,8 @@ public class XmppNamespaceHandler extends NamespaceHandlerSupport { protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { configureXMPPConnection(element, builder, parserContext); IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "channel", "requestChannel"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "extract-payload"); + IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-startup"); } } diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java index a885e9434b..038b47fb23 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/messages/XmppMessageDrivenEndpoint.java @@ -25,6 +25,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Packet; import org.springframework.context.Lifecycle; +import org.springframework.context.SmartLifecycle; import org.springframework.integration.MessageChannel; import org.springframework.integration.core.MessagingTemplate; import org.springframework.integration.endpoint.AbstractEndpoint; @@ -67,7 +68,7 @@ import org.springframework.integration.xmpp.XmppHeaders; * @see XMPPConnection the XMPPConnection (as * created by {@link XmppConnectionFactory} */ -public class XmppMessageDrivenEndpoint extends AbstractEndpoint implements Lifecycle { +public class XmppMessageDrivenEndpoint extends AbstractEndpoint { private static final Log logger = LogFactory.getLog(XmppMessageDrivenEndpoint.class); diff --git a/spring-integration-xmpp/src/main/resources/org/springframework/integration/xmpp/config/spring-integration-xmpp-2.0.xsd b/spring-integration-xmpp/src/main/resources/org/springframework/integration/xmpp/config/spring-integration-xmpp-2.0.xsd index add6e22bf9..1baa6ee0f3 100644 --- a/spring-integration-xmpp/src/main/resources/org/springframework/integration/xmpp/config/spring-integration-xmpp-2.0.xsd +++ b/spring-integration-xmpp/src/main/resources/org/springframework/integration/xmpp/config/spring-integration-xmpp-2.0.xsd @@ -101,6 +101,8 @@ + + @@ -130,6 +132,8 @@ + + diff --git a/spring-integration-xmpp/src/test/java/log4j.properties b/spring-integration-xmpp/src/test/java/log4j.properties new file mode 100644 index 0000000000..0b734686ab --- /dev/null +++ b/spring-integration-xmpp/src/test/java/log4j.properties @@ -0,0 +1,11 @@ +log4j.rootCategory=WARN, stdout + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n + + +log4j.category.org.springframework=WARN +# log4j.category.org.springframework.integration=DEBUG +# log4j.category.org.springframework.integration.jdbc=DEBUG +log4j.category.org.springframework=DEBUG diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests-context.xml new file mode 100644 index 0000000000..391acbcfa9 --- /dev/null +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests-context.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests.java new file mode 100644 index 0000000000..131ae52e1e --- /dev/null +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests.java @@ -0,0 +1,33 @@ +/** + * + */ +package org.springframework.integration.xmpp.messages; + +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; + +import org.jivesoftware.smack.XMPPConnection; +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.integration.channel.DirectChannel; +import org.springframework.integration.test.util.TestUtils; + +/** + * @author ozhurakousky + * + */ +public class InboundXmppEndpointParserTests { + + @Test + public void testInboundAdapter(){ + ApplicationContext context = + new ClassPathXmlApplicationContext("InboundXmppEndpointParserTests-context.xml", this.getClass()); + XmppMessageDrivenEndpoint xmde = context.getBean("xmppInboundAdapter", XmppMessageDrivenEndpoint.class); + assertFalse(xmde.isAutoStartup()); + DirectChannel channel = (DirectChannel) TestUtils.getPropertyValue(xmde, "requestChannel"); + assertEquals("xmppInbound", channel.getComponentName()); + XMPPConnection connection = (XMPPConnection)TestUtils.getPropertyValue(xmde, "xmppConnection"); + assertEquals(connection, context.getBean("testConnection")); + } +} diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml index 8eb9125809..2f903c62e5 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointTests-context.xml @@ -1,19 +1,4 @@ - - + @@ -51,7 +36,7 @@ service-name="${user.2.service}" /> - +