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}"
/>
-
+