diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppConnectionParser.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppConnectionParser.java index 5057317f44..634c20e44a 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppConnectionParser.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/config/XmppConnectionParser.java @@ -57,7 +57,7 @@ public class XmppConnectionParser extends AbstractSingleBeanDefinitionParser { Assert.hasText(serviceName, "'serviceName' is requuired if 'host' is not provided"); } if (StringUtils.hasText(serviceName)){ - connectionConfigurationBuilder.addConstructorArgValue(port); + connectionConfigurationBuilder.addConstructorArgValue(serviceName); } for (String attribute : connectionFactoryAttributes) { IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, attribute); 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 fd0decd895..675bc63d63 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 @@ -42,8 +42,8 @@ - - + + diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-complete.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-complete.xml new file mode 100644 index 0000000000..58b091ed2c --- /dev/null +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-complete.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTests.java b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTests.java index 602b7fe2dd..77424eded9 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTests.java +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTests.java @@ -42,8 +42,26 @@ public class XmppConnectionParserTests { XmppConnectionFactoryBean xmppFb = ac.getBean("&connection", XmppConnectionFactoryBean.class); assertEquals("happy.user", TestUtils.getPropertyValue(xmppFb, "user")); assertEquals("blah", TestUtils.getPropertyValue(xmppFb, "password")); + assertEquals("Smack", TestUtils.getPropertyValue(xmppFb, "resource")); + assertEquals("accept_all", TestUtils.getPropertyValue(xmppFb, "subscriptionMode")); ConnectionConfiguration configuration = (ConnectionConfiguration) TestUtils.getPropertyValue(connection, "configuration"); assertEquals("localhost", configuration.getHost()); assertEquals(5222, configuration.getPort()); } + @Test + public void testCompleteConfiguration(){ + ApplicationContext ac = new ClassPathXmlApplicationContext("XmppConnectionParserTest-complete.xml", this.getClass()); + XMPPConnection connection = ac.getBean("connection", XMPPConnection.class); + assertNull(connection.getServiceName()); + assertFalse(connection.isConnected()); + XmppConnectionFactoryBean xmppFb = ac.getBean("&connection", XmppConnectionFactoryBean.class); + assertEquals("happy.user", TestUtils.getPropertyValue(xmppFb, "user")); + assertEquals("blah", TestUtils.getPropertyValue(xmppFb, "password")); + assertEquals("SpringSource", TestUtils.getPropertyValue(xmppFb, "resource")); + assertEquals("reject_all", TestUtils.getPropertyValue(xmppFb, "subscriptionMode")); + ConnectionConfiguration configuration = (ConnectionConfiguration) TestUtils.getPropertyValue(connection, "configuration"); + assertEquals("localhost", configuration.getHost()); + assertEquals(6222, configuration.getPort()); + assertEquals("foogle.com", configuration.getServiceName()); + } }