diff --git a/spring-integration-twitter/pom.xml b/spring-integration-twitter/pom.xml
index 4f7a070454..14768e6022 100644
--- a/spring-integration-twitter/pom.xml
+++ b/spring-integration-twitter/pom.xml
@@ -77,6 +77,12 @@
${project.version}
compile
+
+ org.springframework.integration
+ spring-integration-test
+ ${project.version}
+ compile
+
commons-lang
commons-lang
diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterReceivingMessageSourceParser.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterReceivingMessageSourceParser.java
index d694620ad0..ad2f7c9185 100644
--- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterReceivingMessageSourceParser.java
+++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/config/TwitterReceivingMessageSourceParser.java
@@ -41,19 +41,20 @@ public class TwitterReceivingMessageSourceParser extends AbstractPollingInboundC
String elementName = element.getLocalName().trim();
String className = null;
if ("inbound-update-channel-adapter".equals(elementName)) {
- className = BASE_PACKAGE + ".inbound.TimelineUpdateMessageSource";
+ className = BASE_PACKAGE + ".inbound.TimelineUpdateReceivingMessageSource";
}
else if ("inbound-dm-channel-adapter".equals(elementName)) {
- className = BASE_PACKAGE + ".inbound.DirectMessageMessageSource";
+ className = BASE_PACKAGE + ".inbound.DirectMessageReceivingMessageSource";
}
else if ("inbound-mention-channel-adapter".equals(elementName)) {
- className = BASE_PACKAGE + ".inbound.MentionMessageSource";
+ className = BASE_PACKAGE + ".inbound.MentionReceivingMessageSource";
}
else {
parserContext.getReaderContext().error("element '" + elementName + "' is not supported by this parser.", element);
}
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(className);
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "twitter-connection", "configuration");
+ IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-startup");
String name = BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(), parserContext.getRegistry());
return new RuntimeBeanReference(name);
}
diff --git a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractTwitterMessageSource.java b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractTwitterMessageSource.java
index 7343c429a8..d927bb4738 100644
--- a/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractTwitterMessageSource.java
+++ b/spring-integration-twitter/src/main/java/org/springframework/integration/twitter/inbound/AbstractTwitterMessageSource.java
@@ -99,8 +99,6 @@ public abstract class AbstractTwitterMessageSource extends AbstractEndpoint
protected void onInit() throws Exception{
super.onInit();
Assert.notNull(this.configuration, "'configuration' can't be null");
- this.twitter = this.configuration.getTwitter();
- Assert.notNull(this.twitter, "'twitter' instance can't be null");
if (this.metadataStore == null) {
// first try to look for a 'messageStore' in the context
BeanFactory beanFactory = this.getBeanFactory();
@@ -148,6 +146,8 @@ public abstract class AbstractTwitterMessageSource extends AbstractEndpoint
@Override
protected void doStart(){
+ this.twitter = this.configuration.getTwitter();
+ Assert.notNull(this.twitter, "'twitter' instance can't be null");
historyWritingPostProcessor.setTrackableComponent(this);
RateLimitStatusTrigger trigger = new RateLimitStatusTrigger(this.twitter);
Runnable apiCallback = this.getApiCallback();
diff --git a/spring-integration-twitter/src/main/resources/org/springframework/integration/twitter/config/spring-integration-twitter-2.0.xsd b/spring-integration-twitter/src/main/resources/org/springframework/integration/twitter/config/spring-integration-twitter-2.0.xsd
index 6ee48d41e3..8c124c2bcf 100644
--- a/spring-integration-twitter/src/main/resources/org/springframework/integration/twitter/config/spring-integration-twitter-2.0.xsd
+++ b/spring-integration-twitter/src/main/resources/org/springframework/integration/twitter/config/spring-integration-twitter-2.0.xsd
@@ -1,20 +1,4 @@
-
-
-
@@ -60,6 +43,7 @@
+
@@ -78,8 +62,6 @@
-
@@ -103,6 +85,7 @@
+
@@ -112,8 +95,6 @@
-
@@ -138,6 +119,7 @@
+
diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParser-context.xml b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParser-context.xml
new file mode 100644
index 0000000000..2657da899a
--- /dev/null
+++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParser-context.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParserTests.java b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParserTests.java
new file mode 100644
index 0000000000..69d34522df
--- /dev/null
+++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingMessageSourceParserTests.java
@@ -0,0 +1,48 @@
+/*
+ * 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.twitter.config;
+
+import static junit.framework.Assert.assertFalse;
+
+import org.junit.Test;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.integration.endpoint.SourcePollingChannelAdapter;
+import org.springframework.integration.test.util.TestUtils;
+import org.springframework.integration.twitter.inbound.AbstractTwitterMessageSource;
+
+/**
+ * @author Oleg Zhurakousky
+ *
+ */
+public class TestReceivingMessageSourceParserTests {
+
+ @Test
+ public void testRecievingAdapterConfigurationAutoStartup(){
+ ApplicationContext ac = new ClassPathXmlApplicationContext("TestReceivingMessageSourceParser-context.xml", this.getClass());
+ SourcePollingChannelAdapter spca = ac.getBean("mentionAdapter", SourcePollingChannelAdapter.class);
+ AbstractTwitterMessageSource> ms = (AbstractTwitterMessageSource>) TestUtils.getPropertyValue(spca, "source");
+ assertFalse(ms.isAutoStartup());
+
+ spca = ac.getBean("dmAdapter", SourcePollingChannelAdapter.class);
+ ms = (AbstractTwitterMessageSource>) TestUtils.getPropertyValue(spca, "source");
+ assertFalse(ms.isAutoStartup());
+
+ spca = ac.getBean("updateAdapter", SourcePollingChannelAdapter.class);
+ ms = (AbstractTwitterMessageSource>) TestUtils.getPropertyValue(spca, "source");
+ assertFalse(ms.isAutoStartup());
+ }
+}
diff --git a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingUsingNamespace-context.xml b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingUsingNamespace-context.xml
index a17c20ebd5..36e2552b78 100644
--- a/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingUsingNamespace-context.xml
+++ b/spring-integration-twitter/src/test/java/org/springframework/integration/twitter/config/TestReceivingUsingNamespace-context.xml
@@ -38,10 +38,10 @@
-
-
-
-
+
+
+
+