Added support for the <poller/> sub-element within <service-activator/> and <channel-adapter/>.

This commit is contained in:
Mark Fisher
2008-07-14 19:27:58 +00:00
parent 6438bba84f
commit a645841d66
2 changed files with 12 additions and 1 deletions

View File

@@ -58,6 +58,8 @@ public abstract class AbstractHandlerEndpointParser extends AbstractSingleBeanDe
private static final String SCHEDULE_ELEMENT = "schedule";
private static final String POLLER_ELEMENT = "poller";
private static final String SELECTOR_ATTRIBUTE = "selector";
private static final String SELECTOR_PROPERTY = "messageSelector";
@@ -109,6 +111,10 @@ public abstract class AbstractHandlerEndpointParser extends AbstractSingleBeanDe
if (SCHEDULE_ELEMENT.equals(localName)) {
schedule = this.parseSchedule(childElement);
}
else if (POLLER_ELEMENT.equals(localName)) {
builder.addPropertyReference("poller",
IntegrationNamespaceUtils.parsePoller(childElement, parserContext));
}
else if (INTERCEPTORS_ELEMENT.equals(localName)) {
EndpointInterceptorParser parser = new EndpointInterceptorParser();
ManagedList interceptors = parser.parseEndpointInterceptors(childElement, parserContext);

View File

@@ -90,6 +90,11 @@ public class ChannelAdapterParser extends AbstractSimpleBeanDefinitionParser {
if (scheduleElement != null) {
builder.addPropertyValue("schedule", this.parseSchedule(scheduleElement));
}
Element pollerElement = DomUtils.getChildElementByTagName(element, "poller");
if (pollerElement != null) {
builder.addPropertyReference("poller",
IntegrationNamespaceUtils.parsePoller(pollerElement, parserContext));
}
Element interceptorsElement = DomUtils.getChildElementByTagName(element, "interceptors");
if (interceptorsElement != null) {
EndpointInterceptorParser parser = new EndpointInterceptorParser();
@@ -106,7 +111,7 @@ public class ChannelAdapterParser extends AbstractSimpleBeanDefinitionParser {
adapterDef.getPropertyValues().addPropertyValue("methodName", method);
String adapterBeanName = parserContext.getReaderContext().generateBeanName(adapterDef);
parserContext.registerBeanComponent(new BeanComponentDefinition(adapterDef, adapterBeanName));
return adapterBeanName;
return adapterBeanName;
}
return ref;
}