SGF-398 - Provide early support of Apache Geode (Pivotal GemFire OSS).

Source compilation and resource processing build step complete.
This commit is contained in:
John Blum
2015-04-27 11:47:46 -07:00
parent d6dc23a440
commit 8c2d01262a
26 changed files with 52 additions and 1926 deletions

View File

@@ -71,7 +71,6 @@ public abstract class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K,
private boolean destroy = false;
private boolean running;
private Boolean enableGateway;
private Boolean persistent;
private CacheListener<K, V>[] cacheListeners;
@@ -94,7 +93,6 @@ public abstract class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K,
private Scope scope;
private String diskStoreName;
private String hubId;
@Override
public void afterPropertiesSet() throws Exception {
@@ -112,23 +110,7 @@ public abstract class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K,
RegionFactory<K, V> regionFactory = createRegionFactory(cache);
if (hubId != null) {
enableGateway = (enableGateway == null || enableGateway);
Assert.isTrue(enableGateway, "The 'hubId' requires the 'enableGateway' property to be true.");
regionFactory.setGatewayHubId(hubId);
}
if (enableGateway != null) {
if (enableGateway) {
Assert.notNull(hubId, "The 'enableGateway' property requires the 'hubId' property to be set.");
}
regionFactory.setEnableGateway(enableGateway);
}
if (!ObjectUtils.isEmpty(gatewaySenders)) {
Assert.isTrue(hubId == null, "It is invalid to configure a region with both a hubId and gatewaySenders."
+ " Note that the enableGateway and hubId properties are deprecated since Gemfire 7.0");
for (Object gatewaySender : gatewaySenders) {
regionFactory.addGatewaySenderId(((GatewaySender) gatewaySender).getId());
}
@@ -666,10 +648,6 @@ public abstract class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K,
this.diskStoreName = diskStoreName;
}
public void setEnableGateway(boolean enableGateway) {
this.enableGateway = enableGateway;
}
/**
*
* @param gatewaySenders defined as Object for backward compatibility with
@@ -679,10 +657,6 @@ public abstract class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K,
this.gatewaySenders = gatewaySenders;
}
public void setHubId(String hubId) {
this.hubId = hubId;
}
public void setPersistent(Boolean persistent) {
this.persistent = persistent;
}

View File

@@ -33,15 +33,13 @@ import org.springframework.data.gemfire.client.InterestResultPolicyConverter;
import org.springframework.data.gemfire.server.SubscriptionEvictionPolicy;
import org.springframework.data.gemfire.server.SubscriptionEvictionPolicyConverter;
import org.springframework.data.gemfire.wan.OrderPolicyConverter;
import org.springframework.data.gemfire.wan.StartupPolicyConverter;
import org.springframework.data.gemfire.wan.StartupPolicyType;
import com.gemstone.gemfire.cache.EvictionAction;
import com.gemstone.gemfire.cache.ExpirationAction;
import com.gemstone.gemfire.cache.InterestPolicy;
import com.gemstone.gemfire.cache.InterestResultPolicy;
import com.gemstone.gemfire.cache.Scope;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.wan.GatewaySender;
/**
* The CustomEditorRegistrationBeanFactoryPostProcessor class is a Spring BeanFactoryPostProcessor used to register
@@ -64,9 +62,8 @@ public class CustomEditorRegistrationBeanFactoryPostProcessor implements BeanFac
beanFactory.registerCustomEditor(IndexType.class, IndexTypeConverter.class);
beanFactory.registerCustomEditor(InterestPolicy.class, InterestPolicyConverter.class);
beanFactory.registerCustomEditor(InterestResultPolicy.class, InterestResultPolicyConverter.class);
beanFactory.registerCustomEditor(Gateway.OrderPolicy.class, OrderPolicyConverter.class);
beanFactory.registerCustomEditor(GatewaySender.OrderPolicy.class, OrderPolicyConverter.class);
beanFactory.registerCustomEditor(Scope.class, ScopeConverter.class);
beanFactory.registerCustomEditor(StartupPolicyType.class, StartupPolicyConverter.class);
beanFactory.registerCustomEditor(SubscriptionEvictionPolicy.class, SubscriptionEvictionPolicyConverter.class);
}

View File

@@ -1,151 +0,0 @@
/*
* Copyright 2010-2013 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.data.gemfire.config;
import java.util.List;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.ManagedList;
import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.data.gemfire.wan.GatewayHubFactoryBean;
import org.springframework.data.gemfire.wan.GatewayProxy;
import org.springframework.util.CollectionUtils;
import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
/**
* Parser for the &lt;gateway-hub&gt; SDG XML namespace element used to create GemFire GatewayHubs.
*
* @author David Turanski
* @author John Blum
* @see org.springframework.beans.factory.config.BeanDefinition
* @see org.springframework.beans.factory.support.BeanDefinitionBuilder
* @see org.springframework.beans.factory.support.ManagedList
* @see org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser
* @see org.springframework.beans.factory.xml.ParserContext
* @see org.springframework.data.gemfire.wan.GatewayHubFactoryBean
* @see org.springframework.data.gemfire.wan.GatewayProxy
*/
class GatewayHubParser extends AbstractSimpleBeanDefinitionParser {
@Override
protected Class<?> getBeanClass(Element element) {
return GatewayHubFactoryBean.class;
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
builder.addConstructorArgReference(ParsingUtils.resolveCacheReference(element.getAttribute("cache-ref")));
builder.setLazyInit(false);
ParsingUtils.setPropertyValue(element, builder, "bind-address");
ParsingUtils.setPropertyValue(element, builder, "manual-start");
ParsingUtils.setPropertyValue(element, builder, "max-connections");
ParsingUtils.setPropertyValue(element, builder, "max-time-between-pings", "maximumTimeBetweenPings");
ParsingUtils.setPropertyValue(element, builder, "port");
ParsingUtils.setPropertyValue(element, builder, "socket-buffer-size");
ParsingUtils.setPropertyValue(element, builder, "startup-policy");
parseGateways(element, parserContext, builder);
}
private void parseGateways(Element element, ParserContext parserContext, BeanDefinitionBuilder gatewayHubBuilder) {
List<Element> gatewayElements = DomUtils.getChildElementsByTagName(element, "gateway");
if (!CollectionUtils.isEmpty(gatewayElements)) {
ManagedList<BeanDefinition> gateways = new ManagedList<BeanDefinition>();
for (Element gatewayElement : gatewayElements) {
BeanDefinitionBuilder gatewayBuilder = BeanDefinitionBuilder.genericBeanDefinition(GatewayProxy.class);
ParsingUtils.setPropertyValue(gatewayElement, gatewayBuilder, "gateway-id", "id");
ParsingUtils.setPropertyValue(gatewayElement, gatewayBuilder, "concurrency-level");
ParsingUtils.setPropertyValue(gatewayElement, gatewayBuilder, "order-policy");
ParsingUtils.setPropertyValue(gatewayElement, gatewayBuilder, "socket-buffer-size");
ParsingUtils.setPropertyValue(gatewayElement, gatewayBuilder, "socket-read-timeout");
parseGatewayEndpoints(gatewayElement, gatewayBuilder);
parseGatewayListeners(gatewayElement, parserContext, gatewayBuilder);
parseGatewayQueue(gatewayElement, gatewayBuilder);
gateways.add(gatewayBuilder.getBeanDefinition());
}
gatewayHubBuilder.addPropertyValue("gateways", gateways);
}
}
private void parseGatewayEndpoints(Element gatewayElement, BeanDefinitionBuilder gatewayBuilder) {
List<Element> endpointElements = DomUtils.getChildElementsByTagName(gatewayElement, "gateway-endpoint");
if (!CollectionUtils.isEmpty(endpointElements)) {
ManagedList<BeanDefinition> endpoints = new ManagedList<BeanDefinition>();
for (Element endpointElement : endpointElements) {
BeanDefinitionBuilder endpointBuilder = BeanDefinitionBuilder.genericBeanDefinition(
GatewayProxy.GatewayEndpoint.class);
ParsingUtils.setPropertyValue(endpointElement, endpointBuilder, "endpoint-id", "id");
ParsingUtils.setPropertyValue(endpointElement, endpointBuilder, "host");
ParsingUtils.setPropertyValue(endpointElement, endpointBuilder, "port");
endpoints.add(endpointBuilder.getBeanDefinition());
}
gatewayBuilder.addPropertyValue("endpoints", endpoints);
}
}
private void parseGatewayListeners(Element gatewayElement, ParserContext parserContext,
BeanDefinitionBuilder gatewayBuilder) {
Element gatewayListenerElement = DomUtils.getChildElementByTagName(gatewayElement, "gateway-listener");
if (gatewayListenerElement != null) {
gatewayBuilder.addPropertyValue("listeners", ParsingUtils.parseRefOrNestedBeanDeclaration(
parserContext, gatewayListenerElement, gatewayBuilder));
}
}
private void parseGatewayQueue(Element gatewayElement, BeanDefinitionBuilder gatewayBuilder) {
Element gatewayQueueElement = DomUtils.getChildElementByTagName(gatewayElement, "gateway-queue");
if (gatewayQueueElement != null) {
BeanDefinitionBuilder queueBuilder = BeanDefinitionBuilder.genericBeanDefinition(
GatewayProxy.GatewayQueue.class);
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "alert-threshold");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "batch-size");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "batch-time-interval");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "disk-store-ref");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "enable-batch-conflation");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "maximum-queue-memory");
ParsingUtils.setPropertyValue(gatewayQueueElement, queueBuilder, "persistent");
/* Make sure any disk store is created first */
if (gatewayQueueElement.hasAttribute("disk-store-ref")) {
gatewayBuilder.getBeanDefinition().setDependsOn(new String[] {
gatewayQueueElement.getAttribute("disk-store-ref") });
}
gatewayBuilder.addPropertyValue("queue", queueBuilder.getBeanDefinition());
}
}
}

View File

@@ -35,8 +35,11 @@ import org.w3c.dom.Element;
@SuppressWarnings("unused")
class GemfireNamespaceHandler extends NamespaceHandlerSupport {
protected static final List<String> GEMFIRE7_ELEMENTS = Arrays.asList("async-event-queue", "gateway-sender",
"gateway-receiver");
protected static final List<String> GEMFIRE7_ELEMENTS = Arrays.asList(
"async-event-queue",
"gateway-receiver",
"gateway-sender"
);
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
@@ -66,7 +69,6 @@ class GemfireNamespaceHandler extends NamespaceHandlerSupport {
registerBeanDefinitionParser("async-event-queue", new AsyncEventQueueParser());
registerBeanDefinitionParser("disk-store", new DiskStoreParser());
registerBeanDefinitionParser("function-service", new FunctionServiceParser());
registerBeanDefinitionParser("gateway-hub", new GatewayHubParser());
registerBeanDefinitionParser("gateway-receiver", new GatewayReceiverParser());
registerBeanDefinitionParser("gateway-sender", new GatewaySenderParser());
registerBeanDefinitionParser("index", new IndexParser());

View File

@@ -22,7 +22,7 @@ import com.gemstone.gemfire.cache.CacheClosedException;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue;
import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueueFactory;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.wan.GatewaySender;
/**
* FactoryBean for creating GemFire {@link AsyncEventQueue}s.
@@ -124,7 +124,7 @@ public class AsyncEventQueueFactoryBean extends AbstractWANComponentFactoryBean<
Assert.isTrue(VALID_ORDER_POLICIES.contains(orderPolicy.toUpperCase()), String.format(
"The value of Order Policy '$1%s' is invalid.", orderPolicy));
asyncEventQueueFactory.setOrderPolicy(Gateway.OrderPolicy.valueOf(orderPolicy.toUpperCase()));
asyncEventQueueFactory.setOrderPolicy(GatewaySender.OrderPolicy.valueOf(orderPolicy.toUpperCase()));
}
if (persistent != null) {

View File

@@ -1,222 +0,0 @@
/*
* Copyright 2010-2013 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.data.gemfire.wan;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import org.springframework.data.gemfire.wan.GatewayProxy.GatewayQueue;
import org.springframework.util.Assert;
import com.gemstone.gemfire.cache.Cache;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.util.GatewayEventListener;
import com.gemstone.gemfire.cache.util.GatewayHub;
import com.gemstone.gemfire.cache.util.GatewayQueueAttributes;
import com.gemstone.gemfire.management.internal.cli.util.spring.StringUtils;
/**
* FactoryBean for creating a GemFire {@link GatewayHub} (deprecated in Gemfire 7).
*
* @author David Turanski
* @author John Blum
* @see org.springframework.data.gemfire.wan.AbstractWANComponentFactoryBean
* @see com.gemstone.gemfire.cache.Cache
* @see com.gemstone.gemfire.cache.util.Gateway
* @see com.gemstone.gemfire.cache.util.GatewayHub
* @see com.gemstone.gemfire.cache.util.GatewayEventListener
* @see com.gemstone.gemfire.cache.util.GatewayQueueAttributes
*/
@SuppressWarnings({"deprecation", "unused" })
public class GatewayHubFactoryBean extends AbstractWANComponentFactoryBean<GatewayHub> {
private Boolean manualStart;
private GatewayHub gatewayHub;
private Integer maxConnections;
private Integer maximumTimeBetweenPings;
private Integer port;
private Integer socketBufferSize;
private List<GatewayProxy> gateways;
private StartupPolicyType startupPolicy;
private String bindAddress;
/**
* Constructs an instance of the GatewayHubFactoryBean class used to create GemFire WAN GatewayHubs initialized
* with the specified GemFire Cache.
*
* @param cache a reference to the Gemfire Cache.
* @see com.gemstone.gemfire.cache.Cache
*/
public GatewayHubFactoryBean(final Cache cache) {
super(cache);
}
@Override
public GatewayHub getObject() throws Exception {
return gatewayHub;
}
@Override
public Class<?> getObjectType() {
return (gatewayHub != null ? gatewayHub.getClass() : GatewayHub.class);
}
@Override
protected void doInit() {
gatewayHub = cache.addGatewayHub(getName(), getPort());
if (log.isDebugEnabled()) {
log.debug(String.format("Adding GemFire GatewayHub (%1$s)", getName()));
}
Assert.notNull(cache.getGatewayHub(getName()));
gatewayHub.setBindAddress(getBindAddress());
gatewayHub.setManualStart(isManualStart(GatewayHub.DEFAULT_MANUAL_START));
gatewayHub.setMaxConnections(getMaxConnections());
gatewayHub.setMaximumTimeBetweenPings(getMaximumTimeBetweenPings());
gatewayHub.setSocketBufferSize(getSocketBufferSize());
gatewayHub.setStartupPolicy(getStartupPolicy().getName());
configureGateways();
autoStart();
}
private void configureGateways() {
for (GatewayProxy gatewayProxy : getGateways()) {
Gateway gateway = gatewayHub.addGateway(gatewayProxy.getId(), gatewayProxy.getConcurrencyLevel());
for (GatewayProxy.GatewayEndpoint endpoint : gatewayProxy.getEndpoints()) {
gateway.addEndpoint(endpoint.getId(), endpoint.getHost(), endpoint.getPort());
}
for (GatewayEventListener listener : gatewayProxy.getListeners()) {
gateway.addListener(listener);
}
gateway.setOrderPolicy(gatewayProxy.getOrderPolicy());
gateway.setSocketBufferSize(gatewayProxy.getSocketBufferSize());
gateway.setSocketReadTimeout(gatewayProxy.getSocketReadTimeout());
if (gatewayProxy.getQueue() != null) {
GatewayQueue queue = gatewayProxy.getQueue();
GatewayQueueAttributes queueAttributes = gateway.getQueueAttributes();
queueAttributes.setAlertThreshold(queue.getAlertThreshold());
queueAttributes.setBatchConflation(queue.getEnableBatchConflation());
queueAttributes.setBatchSize(queue.getBatchSize());
queueAttributes.setBatchTimeInterval(queue.getBatchTimeInterval());
queueAttributes.setMaximumQueueMemory(queue.getMaximumQueueMemory());
queueAttributes.setEnablePersistence(queue.getPersistent());
if (queue.getDiskStoreRef() != null) {
queueAttributes.setDiskStoreName(queue.getDiskStoreRef());
}
}
}
}
private void autoStart() {
if (!gatewayHub.getManualStart()) {
try {
gatewayHub.start();
}
catch (IOException e) {
throw new RuntimeException(e);
}
}
}
public void setBindAddress(String bindAddress) {
this.bindAddress = bindAddress;
}
/* (non-Javadoc) */
String getBindAddress() {
return (StringUtils.hasText(bindAddress) ? bindAddress : GatewayHub.DEFAULT_BIND_ADDRESS);
}
public void setGateways(List<GatewayProxy> gateways) {
this.gateways = gateways;
}
/* (non-Javadoc) */
List<GatewayProxy> getGateways() {
return (gateways != null ? gateways : Collections.<GatewayProxy>emptyList());
}
public void setManualStart(Boolean manualStart) {
this.manualStart = manualStart;
}
/* (non-Javadoc) */
boolean isManualStart(final boolean defaultManualStart) {
return (manualStart != null ? manualStart : defaultManualStart);
}
public void setMaxConnections(Integer maxConnections) {
this.maxConnections = maxConnections;
}
// (non-Javadoc)
Integer getMaxConnections() {
return (maxConnections != null ? maxConnections : GatewayHub.DEFAULT_MAX_CONNECTIONS);
}
public void setMaximumTimeBetweenPings(Integer maximumTimeBetweenPings) {
this.maximumTimeBetweenPings = maximumTimeBetweenPings;
}
// (non-Javadoc)
Integer getMaximumTimeBetweenPings() {
return (maximumTimeBetweenPings != null ? maximumTimeBetweenPings
: GatewayHub.DEFAULT_MAXIMUM_TIME_BETWEEN_PINGS);
}
public void setPort(Integer port) {
this.port = port;
}
/* (non-Javadoc) */
Integer getPort() {
return (port != null ? port : GatewayHub.DEFAULT_PORT);
}
public void setSocketBufferSize(Integer socketBufferSize) {
this.socketBufferSize = socketBufferSize;
}
/* (non-Javadoc) */
Integer getSocketBufferSize() {
return (socketBufferSize != null ? socketBufferSize : GatewayHub.DEFAULT_SOCKET_BUFFER_SIZE);
}
public void setStartupPolicy(StartupPolicyType startupPolicy) {
this.startupPolicy = startupPolicy;
}
/* (non-Javadoc) */
StartupPolicyType getStartupPolicy() {
return (startupPolicy != null ? startupPolicy : StartupPolicyType.DEFAULT);
}
}

View File

@@ -1,215 +0,0 @@
/*
* Copyright 2010-2013 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.data.gemfire.wan;
import java.util.Collections;
import java.util.List;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.util.GatewayEventListener;
import com.gemstone.gemfire.cache.util.GatewayQueueAttributes;
/**
* The GatewayProxy class used to allow decoupling of 'gateway' parsing from 'gateway-hub' parsing.
*
* @author David Turanski
* @author John Blum
* @since com.gemstone.gemfire.cache.util.Gateway
*/
@SuppressWarnings({ "deprecation", "unused" })
public class GatewayProxy {
private Gateway.OrderPolicy orderPolicy;
private GatewayQueue queue;
private Integer concurrencyLevel = Gateway.DEFAULT_CONCURRENCY_LEVEL;
private Integer socketBufferSize = Gateway.DEFAULT_SOCKET_BUFFER_SIZE;
private Integer socketReadTimeout = Gateway.DEFAULT_SOCKET_READ_TIMEOUT;
private List<GatewayEndpoint> endpoints;
private List<GatewayEventListener> listeners;
private String id;
public void setConcurrencyLevel(Integer concurrencyLevel) {
this.concurrencyLevel = concurrencyLevel;
}
public Integer getConcurrencyLevel() {
return (concurrencyLevel != null ? concurrencyLevel : Gateway.DEFAULT_CONCURRENCY_LEVEL);
}
public void setEndpoints(List<GatewayEndpoint> endpoints) {
this.endpoints = endpoints;
}
public List<GatewayEndpoint> getEndpoints() {
return (endpoints != null ? endpoints : Collections.<GatewayEndpoint>emptyList());
}
public void setId(String id) {
this.id = id;
}
public String getId() {
return this.id;
}
public void setListeners(List<GatewayEventListener> listeners) {
this.listeners = listeners;
}
public List<GatewayEventListener> getListeners() {
return (listeners != null ? listeners : Collections.<GatewayEventListener>emptyList());
}
public void setOrderPolicy(Gateway.OrderPolicy orderPolicy) {
this.orderPolicy = orderPolicy;
}
public Gateway.OrderPolicy getOrderPolicy() {
return this.orderPolicy;
}
public void setQueue(GatewayQueue queue) {
this.queue = queue;
}
public GatewayQueue getQueue() {
return this.queue;
}
public void setSocketBufferSize(int socketBufferSize) {
this.socketBufferSize = socketBufferSize;
}
public Integer getSocketBufferSize() {
return (socketBufferSize != null ? socketBufferSize : Gateway.DEFAULT_SOCKET_BUFFER_SIZE);
}
public void setSocketReadTimeout(final Integer socketReadTimeout) {
this.socketReadTimeout = socketReadTimeout;
}
public Integer getSocketReadTimeout() {
return (socketReadTimeout != null ? socketReadTimeout : Gateway.DEFAULT_SOCKET_READ_TIMEOUT);
}
public static class GatewayEndpoint {
private int port;
private String host;
private String id;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
public static class GatewayQueue {
private Boolean enableBatchConflation;
private Boolean persistent;
private Integer alertThreshold;
private Integer batchSize;
private Integer batchTimeInterval;
private Integer maximumQueueMemory;
private String diskStoreRef;
public void setAlertThreshold(Integer alertThreshold) {
this.alertThreshold = alertThreshold;
}
public Integer getAlertThreshold() {
return (alertThreshold != null ? alertThreshold : GatewayQueueAttributes.DEFAULT_ALERT_THRESHOLD);
}
public void setBatchSize(Integer batchSize) {
this.batchSize = batchSize;
}
public Integer getBatchSize() {
return (batchSize != null ? batchSize : GatewayQueueAttributes.DEFAULT_BATCH_SIZE);
}
public void setBatchTimeInterval(Integer batchTimeInterval) {
this.batchTimeInterval = batchTimeInterval;
}
public Integer getBatchTimeInterval() {
return (batchTimeInterval != null ? batchTimeInterval : GatewayQueueAttributes.DEFAULT_BATCH_TIME_INTERVAL);
}
public void setDiskStoreRef(String diskStoreRef) {
this.diskStoreRef = diskStoreRef;
}
public String getDiskStoreRef() {
return diskStoreRef;
}
public void setEnableBatchConflation(Boolean enableBatchConflation) {
this.enableBatchConflation = enableBatchConflation;
}
public Boolean getEnableBatchConflation() {
return (enableBatchConflation != null ? enableBatchConflation
: GatewayQueueAttributes.DEFAULT_BATCH_CONFLATION);
}
public void setMaximumQueueMemory(Integer maximumQueueMemory) {
this.maximumQueueMemory = maximumQueueMemory;
}
public Integer getMaximumQueueMemory() {
return (maximumQueueMemory != null ? maximumQueueMemory
: GatewayQueueAttributes.DEFAULT_MAXIMUM_QUEUE_MEMORY);
}
public void setPersistent(Boolean persistent) {
this.persistent = persistent;
}
public Boolean getPersistent() {
return (persistent != null ? persistent : GatewayQueueAttributes.DEFAULT_ENABLE_PERSISTENCE);
}
}
}

View File

@@ -22,7 +22,6 @@ import org.springframework.util.Assert;
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;
@@ -37,7 +36,6 @@ import com.gemstone.gemfire.cache.wan.GatewayTransportFilter;
* @see org.springframework.context.SmartLifecycle
* @see org.springframework.data.gemfire.wan.AbstractWANComponentFactoryBean
* @see com.gemstone.gemfire.cache.Cache
* @see com.gemstone.gemfire.cache.util.Gateway
* @see com.gemstone.gemfire.cache.wan.GatewaySender
* @see com.gemstone.gemfire.cache.wan.GatewaySenderFactory
* @since 1.2.2
@@ -149,7 +147,7 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
Assert.isTrue(VALID_ORDER_POLICIES.contains(orderPolicy.toUpperCase()),
String.format("The value for Order Policy '%1$s' is invalid.", orderPolicy));
gatewaySenderFactory.setOrderPolicy(Gateway.OrderPolicy.valueOf(orderPolicy.toUpperCase()));
gatewaySenderFactory.setOrderPolicy(GatewaySender.OrderPolicy.valueOf(orderPolicy.toUpperCase()));
}
gatewaySenderFactory.setParallel(isParallelGatewaySender());

View File

@@ -17,7 +17,6 @@ import java.util.List;
import org.springframework.util.Assert;
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;
@@ -176,7 +175,7 @@ public class GatewaySenderWrapper implements GatewaySender {
@Override
@SuppressWarnings("deprecation")
public Gateway.OrderPolicy getOrderPolicy() {
public GatewaySender.OrderPolicy getOrderPolicy() {
return delegate.getOrderPolicy();
}

View File

@@ -18,7 +18,7 @@ package org.springframework.data.gemfire.wan;
import org.springframework.data.gemfire.support.AbstractPropertyEditorConverterSupport;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.wan.GatewaySender;
/**
* The OrderPolicyConverter class is a Spring Converter and JavaBeans PropertyEditor used to convert a String value
@@ -27,11 +27,11 @@ import com.gemstone.gemfire.cache.util.Gateway;
* @author John Blum
* @see org.springframework.data.gemfire.support.AbstractPropertyEditorConverterSupport
* @see org.springframework.data.gemfire.wan.OrderPolicyType
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
* @since 1.7.0
*/
@SuppressWarnings({ "deprecation", "unused" })
public class OrderPolicyConverter extends AbstractPropertyEditorConverterSupport<Gateway.OrderPolicy> {
public class OrderPolicyConverter extends AbstractPropertyEditorConverterSupport<GatewaySender.OrderPolicy> {
/**
* Converts the given String into a GemFire Gateway.OrderPolicy enum.
@@ -44,9 +44,9 @@ public class OrderPolicyConverter extends AbstractPropertyEditorConverterSupport
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
*/
@Override
public Gateway.OrderPolicy convert(final String source) {
public GatewaySender.OrderPolicy convert(final String source) {
return assertConverted(source, OrderPolicyType.getOrderPolicy(OrderPolicyType.valueOfIgnoreCase(source)),
Gateway.OrderPolicy.class);
GatewaySender.OrderPolicy.class);
}
}

View File

@@ -16,31 +16,31 @@
package org.springframework.data.gemfire.wan;
import com.gemstone.gemfire.cache.util.Gateway;
import com.gemstone.gemfire.cache.wan.GatewaySender;
/**
* The OrderPolicyType class is an enumeration of GemFire Gateway Order Policies.
*
* @author John Blum
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
* @since 1.7.0
*/
@SuppressWarnings({ "deprecation", "unused" })
@SuppressWarnings("unused")
public enum OrderPolicyType {
KEY(Gateway.OrderPolicy.KEY),
PARTITION(Gateway.OrderPolicy.PARTITION),
THREAD(Gateway.OrderPolicy.THREAD);
KEY(GatewaySender.OrderPolicy.KEY),
PARTITION(GatewaySender.OrderPolicy.PARTITION),
THREAD(GatewaySender.OrderPolicy.THREAD);
private final Gateway.OrderPolicy orderPolicy;
private final GatewaySender.OrderPolicy orderPolicy;
/**
* Constructs an instance of the OrderPolicyType enum initialized with the matching GemFire Gateway.OrderPolicy
* enumerated value.
*
* @param orderPolicy the matching GemFire Gateway.OrderPolicy enumerated value.
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
*/
OrderPolicyType(final Gateway.OrderPolicy orderPolicy) {
OrderPolicyType(final GatewaySender.OrderPolicy orderPolicy) {
this.orderPolicy = orderPolicy;
}
@@ -51,10 +51,10 @@ public enum OrderPolicyType {
* @param orderPolicyType the OrderPolicyType enum from which to extract the GemFire-based
* Gateway.OrderPolicy enumerated value.
* @return the GemFire Gateway.OrderPolicy enumerated value for the given OrderPolicyType.
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
* @see #getOrderPolicy()
*/
public static Gateway.OrderPolicy getOrderPolicy(final OrderPolicyType orderPolicyType) {
public static GatewaySender.OrderPolicy getOrderPolicy(final OrderPolicyType orderPolicyType) {
return (orderPolicyType != null ? orderPolicyType.getOrderPolicy() : null);
}
@@ -64,10 +64,10 @@ public enum OrderPolicyType {
* @param orderPolicy the GemFire Gateway.OrderPolicy enumerated value used to match
* the desired OrderPolicyType.
* @return a OrderPolicyType matching the given GemFire Gateway.OrderPolicy enumerated value.
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
* @see #getOrderPolicy()
*/
public static OrderPolicyType valueOf(final Gateway.OrderPolicy orderPolicy) {
public static OrderPolicyType valueOf(final GatewaySender.OrderPolicy orderPolicy) {
for (OrderPolicyType orderPolicyType : values()) {
if (orderPolicyType.getOrderPolicy().equals(orderPolicy)) {
return orderPolicyType;
@@ -99,9 +99,9 @@ public enum OrderPolicyType {
* Gets the GemFire Gateway.OrderPolicy corresponding to this OrderPolicyType enum.
*
* @return a GemFire Gateway.OrderPolicy for this enum.
* @see com.gemstone.gemfire.cache.util.Gateway.OrderPolicy
* @see com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy
*/
public Gateway.OrderPolicy getOrderPolicy() {
public GatewaySender.OrderPolicy getOrderPolicy() {
return orderPolicy;
}

View File

@@ -1,48 +0,0 @@
/*
* Copyright 2010-2013 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.data.gemfire.wan;
import org.springframework.data.gemfire.support.AbstractPropertyEditorConverterSupport;
/**
* The StartupPolicyConverter class is a Spring Converter and JavaBeans PropertyEditor responsible for
* converting String values into appropriate StartupPolicyType enumerated values.
*
* @author John Blum
* @see org.springframework.data.gemfire.support.AbstractPropertyEditorConverterSupport
* @see org.springframework.data.gemfire.wan.StartupPolicyType
* @since 1.7.0
*/
@SuppressWarnings("unused")
public class StartupPolicyConverter extends AbstractPropertyEditorConverterSupport<StartupPolicyType> {
/**
* Converts the given String value into an appropriate StartupPolicyType enumerated value.
*
* @param source the String to convert.
* @return a StartupPolicyType enumerated value for the given String.
* @throws java.lang.IllegalArgumentException if the String is not a valid GatewayHub Startup Policy.
* @see StartupPolicyType#valueOfIgnoreCase(String)
* @see #assertConverted(String, Object, Class)
*/
@Override
public StartupPolicyType convert(final String source) {
return assertConverted(source, StartupPolicyType.valueOfIgnoreCase(source),
StartupPolicyType.class);
}
}

View File

@@ -1,78 +0,0 @@
/*
* Copyright 2010-2013 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.data.gemfire.wan;
import com.gemstone.gemfire.cache.util.GatewayHub;
/**
* The StartupPolicyType class is an enumeration of GemFire GatewayHub Startup Policies.
*
* @author John Blum
* @see com.gemstone.gemfire.cache.util.GatewayHub
* @since 1.7.0
*/
@SuppressWarnings({"deprecation", "unused" })
public enum StartupPolicyType {
NONE(GatewayHub.STARTUP_POLICY_NONE),
PRIMARY(GatewayHub.STARTUP_POLICY_PRIMARY),
SECONDARY(GatewayHub.STARTUP_POLICY_SECONDARY);
public static final StartupPolicyType DEFAULT = StartupPolicyType.valueOfIgnoreCase(
GatewayHub.DEFAULT_STARTUP_POLICY);
private final String name;
/**
* Constructs an instance of the StartupPolicyType enum initialized with the given GemFire "named",
* GatewayHub Startup Policy.
*
* @param name a String specifying the name used by GemFire for the GatewayHub Startup Policy.
*/
StartupPolicyType(final String name) {
this.name = name;
}
/**
* Returns a StartupPolicyType enumerated value matching the given official, case-insensitve "name"
* for the GatewayHub Startup Policy used by GemFire.
*
* @param name a String specifying the name used by GemFire for the GatewayHub Startup Policy.
* @return a StartupPolicyType enumerated value matching the given name used by GemFire to specify
* the GatewayHub Startup Policy.
* @see java.lang.String#equalsIgnoreCase(String)
* @see #getName()
*/
public static StartupPolicyType valueOfIgnoreCase(final String name) {
for (StartupPolicyType startupPolicyType : values()) {
if (startupPolicyType.getName().equalsIgnoreCase(name)) {
return startupPolicyType;
}
}
return null;
}
/**
* Gets the official name used by GemFire to specify the GatewayHub Startup Policy.
*
* @return the official GatewayHub Startup Policy name used by GemFire.
*/
public String getName() {
return name;
}
}