DefaultEndpointPoller now implements InitializingBean (to prepare the transactionTemplate), and the poller element parsing now includes the PROPAGATION_ and ISOLATION_ prefixes to properly configure those transaction attributes from the enumerated values defined in the schema.

This commit is contained in:
Mark Fisher
2008-07-14 20:01:09 +00:00
parent a645841d66
commit 77022d0519
2 changed files with 5 additions and 3 deletions

View File

@@ -25,6 +25,7 @@ import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
import org.springframework.beans.factory.xml.BeanDefinitionParserDelegate;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.endpoint.DefaultEndpointPoller;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
@@ -108,8 +109,8 @@ public abstract class IntegrationNamespaceUtils {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(DefaultEndpointPoller.class);
if (txElement != null) {
builder.addPropertyReference("transactionManager", txElement.getAttribute("transaction-manager"));
builder.addPropertyValue("propagationBehaviorName", txElement.getAttribute("propagation"));
builder.addPropertyValue("isolationLevelName", txElement.getAttribute("isolation"));
builder.addPropertyValue("propagationBehaviorName", DefaultTransactionDefinition.PREFIX_PROPAGATION + txElement.getAttribute("propagation"));
builder.addPropertyValue("isolationLevelName", DefaultTransactionDefinition.PREFIX_ISOLATION + txElement.getAttribute("isolation"));
builder.addPropertyValue("transactionTimeout", txElement.getAttribute("timeout"));
builder.addPropertyValue("transactionReadOnly", txElement.getAttribute("read-only"));
}

View File

@@ -19,6 +19,7 @@ package org.springframework.integration.endpoint;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.task.TaskExecutor;
import org.springframework.integration.message.MessageSource;
import org.springframework.integration.message.MessageTarget;
@@ -34,7 +35,7 @@ import org.springframework.transaction.support.TransactionTemplate;
*
* @author Mark Fisher
*/
public class DefaultEndpointPoller extends SimplePoller {
public class DefaultEndpointPoller extends SimplePoller implements InitializingBean {
private final Log logger = LogFactory.getLog(this.getClass());