diff --git a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/XmppConnectionFactoryBean.java b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/XmppConnectionFactoryBean.java index a61d40b946..3c6f263d93 100644 --- a/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/XmppConnectionFactoryBean.java +++ b/spring-integration-xmpp/src/main/java/org/springframework/integration/xmpp/XmppConnectionFactoryBean.java @@ -18,7 +18,9 @@ package org.springframework.integration.xmpp; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.XMPPConnection; +import org.springframework.beans.factory.BeanInitializationException; import org.springframework.beans.factory.config.AbstractFactoryBean; +import org.springframework.context.SmartLifecycle; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -32,9 +34,9 @@ import org.springframework.util.StringUtils; * @see org.jivesoftware.smack.XMPPConnection * @since 2.0 */ -public class XmppConnectionFactoryBean extends AbstractFactoryBean { +public class XmppConnectionFactoryBean extends AbstractFactoryBean implements SmartLifecycle{ - private volatile ConnectionConfiguration connectionConfiguration; + private final ConnectionConfiguration connectionConfiguration; private volatile String resource = "Smack"; // default value used by Smack @@ -43,32 +45,30 @@ public class XmppConnectionFactoryBean extends AbstractFactoryBean getObjectType() { return XMPPConnection.class; @@ -88,24 +84,59 @@ public class XmppConnectionFactoryBean extends AbstractFactoryBean + 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/config/InboundXmppEndpointParserTests-context.xml similarity index 100% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests-context.xml rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/InboundXmppEndpointParserTests-context.xml 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/config/InboundXmppEndpointParserTests.java similarity index 59% rename from spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/messages/InboundXmppEndpointParserTests.java rename to spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/InboundXmppEndpointParserTests.java index 07b2fb2baa..d5f8235152 100644 --- 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/config/InboundXmppEndpointParserTests.java @@ -1,27 +1,38 @@ -/** - * +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ -package org.springframework.integration.xmpp.messages; +package org.springframework.integration.xmpp.config; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import org.jivesoftware.smack.XMPPConnection; -import org.junit.Ignore; 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; +import org.springframework.integration.xmpp.messages.XmppMessageDrivenEndpoint; /** - * @author ozhurakousky + * @author Oleg Zhurakousky * */ public class InboundXmppEndpointParserTests { @Test - @Ignore // temporary public void testInboundAdapter(){ ApplicationContext context = new ClassPathXmlApplicationContext("InboundXmppEndpointParserTests-context.xml", this.getClass()); diff --git a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-simple.xml b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-simple.xml index 58ced8175e..0a25528a65 100644 --- a/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-simple.xml +++ b/spring-integration-xmpp/src/test/java/org/springframework/integration/xmpp/config/XmppConnectionParserTest-simple.xml @@ -7,7 +7,7 @@ xmlns:int="http://www.springframework.org/schema/integration" xmlns:int-xmpp="http://www.springframework.org/schema/integration/xmpp"> - + - 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 673fbaa1b8..602b7fe2dd 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 @@ -1,24 +1,49 @@ -/** - * +/* + * Copyright 2002-2010 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.springframework.integration.xmpp.config; -import static org.mockito.Mockito.when; +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertNull; -import org.junit.Ignore; +import org.jivesoftware.smack.ConnectionConfiguration; +import org.jivesoftware.smack.XMPPConnection; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.integration.test.util.TestUtils; +import org.springframework.integration.xmpp.XmppConnectionFactoryBean; /** - * @author ozhurakousky + * @author Oleg Zhurakousky * */ public class XmppConnectionParserTests { @Test - @Ignore // temporary public void testSimpleConfiguration(){ ApplicationContext ac = new ClassPathXmlApplicationContext("XmppConnectionParserTest-simple.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")); + ConnectionConfiguration configuration = (ConnectionConfiguration) TestUtils.getPropertyValue(connection, "configuration"); + assertEquals("localhost", configuration.getHost()); + assertEquals(5222, configuration.getPort()); } }