SGF-332 - Add support for the GatewaySender 'eventSubstitutionFilter' property in the SDG XSD and GatewaySenderFactoryBean API.

This commit is contained in:
John Blum
2014-09-25 21:39:23 -07:00
parent d8b4b97834
commit fccb737849
7 changed files with 252 additions and 54 deletions

View File

@@ -66,6 +66,13 @@ class GatewaySenderParser extends AbstractSimpleBeanDefinitionParser {
parserContext, eventFilterElement, builder));
}
Element eventSubstitutionFilterElement = DomUtils.getChildElementByTagName(element, "event-substitution-filter");
if (eventSubstitutionFilterElement != null) {
builder.addPropertyValue("eventSubstitutionFilter", ParsingUtils.parseRefOrSingleNestedBeanDeclaration(
parserContext, eventSubstitutionFilterElement, builder));
}
ParsingUtils.parseTransportFilters(element, parserContext, builder);
// set the name for the GatewaySender as an inner bean

View File

@@ -251,13 +251,12 @@ abstract class ParsingUtils {
return false;
}
static void parseTransportFilters(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
Element transportFilterElement = DomUtils.getChildElementByTagName(element, "transport-filter");
if (transportFilterElement != null) {
builder.addPropertyValue("transportFilters",
parseRefOrNestedBeanDeclaration(parserContext, transportFilterElement, builder));
builder.addPropertyValue("transportFilters", parseRefOrNestedBeanDeclaration(parserContext,
transportFilterElement, builder));
}
}

View File

@@ -24,6 +24,7 @@ import org.springframework.util.CollectionUtils;
import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.wan.GatewayEventFilter;
import com.gemstone.gemfire.cache.wan.GatewayEventSubstitutionFilter;
import com.gemstone.gemfire.cache.wan.GatewaySender;
import com.gemstone.gemfire.cache.wan.GatewaySenderFactory;
import com.gemstone.gemfire.cache.wan.GatewayTransportFilter;
@@ -60,6 +61,8 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
private Boolean parallel;
private Boolean persistent;
private GatewayEventSubstitutionFilter eventSubstitutionFilter;
private Integer alertThreshold;
private Integer batchSize;
private Integer batchTimeInterval;
@@ -130,6 +133,10 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
}
}
if (eventSubstitutionFilter != null) {
gatewaySenderFactory.setGatewayEventSubstitutionFilter(eventSubstitutionFilter);
}
gatewaySenderFactory.setManualStart(true);
if (maximumQueueMemory != null) {
@@ -209,6 +216,10 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
this.dispatcherThreads = dispatcherThreads;
}
public void setEventSubstitutionFilter(final GatewayEventSubstitutionFilter eventSubstitutionFilter) {
this.eventSubstitutionFilter = eventSubstitutionFilter;
}
public void setManualStart(Boolean manualStart) {
this.manualStart = Boolean.TRUE.equals(manualStart);
}