Added namespace support for 'auto-startup' on endpoints (INT-463).

This commit is contained in:
Mark Fisher
2008-11-13 16:15:38 +00:00
parent f5cc9b3591
commit 6c554f929d
3 changed files with 12 additions and 0 deletions

View File

@@ -34,6 +34,7 @@ import org.springframework.integration.endpoint.EventDrivenConsumer;
import org.springframework.integration.message.MessageHandler;
import org.springframework.integration.scheduling.IntervalTrigger;
import org.springframework.integration.scheduling.Trigger;
import org.springframework.integration.util.LifecycleSupport.AutoStartMode;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.util.Assert;
@@ -55,6 +56,8 @@ public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAwar
private volatile long receiveTimeout = 1000;
private volatile boolean autoStartup = true;
private volatile TaskExecutor taskExecutor;
private volatile PlatformTransactionManager transactionManager;
@@ -92,6 +95,10 @@ public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAwar
this.receiveTimeout = receiveTimeout;
}
public void setAutoStartup(boolean autoStartup) {
this.autoStartup = autoStartup;
}
public void setTaskExecutor(TaskExecutor taskExecutor) {
this.taskExecutor = taskExecutor;
}
@@ -169,6 +176,9 @@ public class ConsumerEndpointFactoryBean implements FactoryBean, BeanFactoryAwar
throw new IllegalArgumentException(
"unsupported channel type: [" + channel.getClass() + "]");
}
if (!this.autoStartup) {
this.endpoint.setAutoStartMode(AutoStartMode.NONE);
}
this.endpoint.setBeanName(this.beanName);
this.endpoint.setBeanFactory(this.beanFactory);
if (this.endpoint instanceof InitializingBean) {

View File

@@ -112,6 +112,7 @@ public abstract class AbstractConsumerEndpointParser extends AbstractSingleBeanD
}
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, pollerElement, "task-executor");
}
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "auto-startup");
this.postProcess(element, parserContext, builder);
}

View File

@@ -229,6 +229,7 @@
<xsd:attribute name="ref" type="xsd:string"/>
<xsd:attribute name="method" type="xsd:string"/>
<xsd:attribute name="selector" type="xsd:string"/>
<xsd:attribute name="auto-startup" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>