removed SmartLifecycleGatewaySender and added SmartLifecycle to GatewaySenderFactoryBean
This commit is contained in:
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.data.gemfire.client.ClientRegionFactoryBean;
|
||||
import org.springframework.data.gemfire.wan.SmartLifecycleGatewaySender;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
@@ -425,8 +424,8 @@ public class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K, V> imple
|
||||
if (!ObjectUtils.isEmpty(gatewaySenders)) {
|
||||
synchronized (gatewaySenders) {
|
||||
for (Object obj : gatewaySenders) {
|
||||
SmartLifecycleGatewaySender gws = (SmartLifecycleGatewaySender) obj;
|
||||
if (gws.isAutoStartup() && !gws.isRunning()) {
|
||||
GatewaySender gws = (GatewaySender) obj;
|
||||
if (!gws.isManualStart() && !gws.isRunning()) {
|
||||
gws.start();
|
||||
}
|
||||
}
|
||||
@@ -443,7 +442,7 @@ public class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K, V> imple
|
||||
if (!ObjectUtils.isEmpty(gatewaySenders)) {
|
||||
synchronized (gatewaySenders) {
|
||||
for (Object obj : gatewaySenders) {
|
||||
SmartLifecycleGatewaySender gws = (SmartLifecycleGatewaySender) obj;
|
||||
GatewaySender gws = (GatewaySender) obj;
|
||||
gws.stop();
|
||||
}
|
||||
}
|
||||
@@ -483,5 +482,4 @@ public class RegionFactoryBean<K, V> extends RegionLookupFactoryBean<K, V> imple
|
||||
stop();
|
||||
callback.run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -49,6 +49,12 @@ public class AsyncEventQueueParser extends AbstractSingleBeanDefinitionParser {
|
||||
ParsingUtils.setPropertyValue(element, builder, "batch-size");
|
||||
ParsingUtils.setPropertyValue(element, builder, "maximum-queue-memory");
|
||||
ParsingUtils.setPropertyValue(element, builder, "disk-store-ref");
|
||||
|
||||
String diskStoreRef = element.getAttribute("disk-store-ref");
|
||||
if (StringUtils.hasText(diskStoreRef)) {
|
||||
builder.addDependsOn(diskStoreRef);
|
||||
}
|
||||
|
||||
ParsingUtils.setPropertyValue(element, builder, "persistent");
|
||||
ParsingUtils.setPropertyValue(element, builder, "parallel");
|
||||
ParsingUtils.setPropertyValue(element, builder, NAME_ATTRIBUTE);
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.data.gemfire.wan;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -33,7 +34,8 @@ import com.gemstone.gemfire.cache.wan.GatewayTransportFilter;
|
||||
* @author David Turanski
|
||||
*
|
||||
*/
|
||||
public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<GatewaySender> {
|
||||
public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<GatewaySender>
|
||||
implements SmartLifecycle {
|
||||
private static List<String> validOrderPolicyValues = Arrays.asList("KEY", "PARTITION", "THREAD");
|
||||
|
||||
private GatewaySender gatewaySender;
|
||||
@@ -82,12 +84,12 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
|
||||
|
||||
@Override
|
||||
public GatewaySender getObject() throws Exception {
|
||||
return new SmartLifecycleGatewaySender(gatewaySender, !manualStart);
|
||||
return gatewaySender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<?> getObjectType() {
|
||||
return SmartLifecycleGatewaySender.class;
|
||||
return GatewaySender.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -233,4 +235,55 @@ public class GatewaySenderFactoryBean extends AbstractWANComponentFactoryBean<Ga
|
||||
public void setSocketReadTimeout(Integer socketReadTimeout) {
|
||||
this.socketReadTimeout = socketReadTimeout;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.Lifecycle#start()
|
||||
*/
|
||||
@Override
|
||||
public synchronized void start() {
|
||||
if (!gatewaySender.isRunning()){
|
||||
gatewaySender.start();
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.Lifecycle#stop()
|
||||
*/
|
||||
@Override
|
||||
public void stop() {
|
||||
gatewaySender.stop();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.Lifecycle#isRunning()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRunning() {
|
||||
return gatewaySender.isRunning();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.Phased#getPhase()
|
||||
*/
|
||||
@Override
|
||||
public int getPhase() {
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.SmartLifecycle#isAutoStartup()
|
||||
*/
|
||||
@Override
|
||||
public boolean isAutoStartup() {
|
||||
return !manualStart;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.SmartLifecycle#stop(java.lang.Runnable)
|
||||
*/
|
||||
@Override
|
||||
public void stop(Runnable callback) {
|
||||
stop();
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,277 +0,0 @@
|
||||
/*
|
||||
* Copyright 2002-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.List;
|
||||
|
||||
import org.springframework.context.SmartLifecycle;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import com.gemstone.gemfire.cache.util.Gateway.OrderPolicy;
|
||||
import com.gemstone.gemfire.cache.wan.GatewayEventFilter;
|
||||
import com.gemstone.gemfire.cache.wan.GatewaySender;
|
||||
import com.gemstone.gemfire.cache.wan.GatewayTransportFilter;
|
||||
|
||||
/**
|
||||
* A {@link GatewaySender} controlled by {@link SmartLifecycle}
|
||||
* @author David Turanski
|
||||
*
|
||||
*/
|
||||
public class SmartLifecycleGatewaySender implements GatewaySender, SmartLifecycle {
|
||||
|
||||
private final GatewaySender delegate;
|
||||
private final boolean autoStartup;
|
||||
|
||||
public SmartLifecycleGatewaySender(GatewaySender delegate, boolean autoStartup) {
|
||||
Assert.notNull(delegate);
|
||||
this.delegate = delegate;
|
||||
this.autoStartup = autoStartup;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#addGatewayEventFilter(com.gemstone.gemfire.cache.wan.GatewayEventFilter)
|
||||
*/
|
||||
@Override
|
||||
public void addGatewayEventFilter(GatewayEventFilter eventFilter) {
|
||||
this.delegate.addGatewayEventFilter(eventFilter);
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getAlertThreshold()
|
||||
*/
|
||||
@Override
|
||||
public int getAlertThreshold() {
|
||||
return this.delegate.getAlertThreshold();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getBatchSize()
|
||||
*/
|
||||
@Override
|
||||
public int getBatchSize() {
|
||||
return this.delegate.getBatchSize();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getBatchTimeInterval()
|
||||
*/
|
||||
@Override
|
||||
public int getBatchTimeInterval() {
|
||||
return this.delegate.getBatchTimeInterval();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getDiskStoreName()
|
||||
*/
|
||||
@Override
|
||||
public String getDiskStoreName() {
|
||||
return this.delegate.getDiskStoreName();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getDispatcherThreads()
|
||||
*/
|
||||
@Override
|
||||
public int getDispatcherThreads() {
|
||||
return this.delegate.getDispatcherThreads();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getGatewayEventFilters()
|
||||
*/
|
||||
@Override
|
||||
public List<GatewayEventFilter> getGatewayEventFilters() {
|
||||
return this.delegate.getGatewayEventFilters();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getGatewayTransportFilters()
|
||||
*/
|
||||
@Override
|
||||
public List<GatewayTransportFilter> getGatewayTransportFilters() {
|
||||
return this.delegate.getGatewayTransportFilters();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getId()
|
||||
*/
|
||||
@Override
|
||||
public String getId() {
|
||||
return this.delegate.getId();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getMaximumQueueMemory()
|
||||
*/
|
||||
@Override
|
||||
public int getMaximumQueueMemory() {
|
||||
return this.delegate.getMaximumQueueMemory();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getOrderPolicy()
|
||||
*/
|
||||
@Override
|
||||
public OrderPolicy getOrderPolicy() {
|
||||
return this.delegate.getOrderPolicy();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getRemoteDSId()
|
||||
*/
|
||||
@Override
|
||||
public int getRemoteDSId() {
|
||||
return this.delegate.getRemoteDSId();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getSocketBufferSize()
|
||||
*/
|
||||
@Override
|
||||
public int getSocketBufferSize() {
|
||||
return this.delegate.getSocketBufferSize();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#getSocketReadTimeout()
|
||||
*/
|
||||
@Override
|
||||
public int getSocketReadTimeout() {
|
||||
return this.delegate.getSocketReadTimeout();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isBatchConflationEnabled()
|
||||
*/
|
||||
@Override
|
||||
public boolean isBatchConflationEnabled() {
|
||||
return this.delegate.isBatchConflationEnabled();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isDiskSynchronous()
|
||||
*/
|
||||
@Override
|
||||
public boolean isDiskSynchronous() {
|
||||
return this.delegate.isDiskSynchronous();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isManualStart()
|
||||
*/
|
||||
@Override
|
||||
public boolean isManualStart() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isParallel()
|
||||
*/
|
||||
@Override
|
||||
public boolean isParallel() {
|
||||
return this.delegate.isParallel();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isPaused()
|
||||
*/
|
||||
@Override
|
||||
public boolean isPaused() {
|
||||
return this.delegate.isPaused();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isPersistenceEnabled()
|
||||
*/
|
||||
@Override
|
||||
public boolean isPersistenceEnabled() {
|
||||
return this.delegate.isPersistenceEnabled();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#isRunning()
|
||||
*/
|
||||
@Override
|
||||
public boolean isRunning() {
|
||||
return this.delegate.isRunning();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#pause()
|
||||
*/
|
||||
@Override
|
||||
public void pause() {
|
||||
this.delegate.pause();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#removeGatewayEventFilter(com.gemstone.gemfire.cache.wan.GatewayEventFilter)
|
||||
*/
|
||||
@Override
|
||||
public void removeGatewayEventFilter(GatewayEventFilter eventFilter) {
|
||||
this.delegate.removeGatewayEventFilter(eventFilter);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#resume()
|
||||
*/
|
||||
@Override
|
||||
public void resume() {
|
||||
this.delegate.resume();
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#start()
|
||||
*/
|
||||
@Override
|
||||
public void start() {
|
||||
this.delegate.start();
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.gemstone.gemfire.cache.wan.GatewaySender#stop()
|
||||
*/
|
||||
@Override
|
||||
public void stop() {
|
||||
this.delegate.stop();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.Phased#getPhase()
|
||||
*/
|
||||
@Override
|
||||
public int getPhase() {
|
||||
return Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.SmartLifecycle#isAutoStartup()
|
||||
*/
|
||||
@Override
|
||||
public boolean isAutoStartup() {
|
||||
return this.autoStartup ;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.SmartLifecycle#stop(java.lang.Runnable)
|
||||
*/
|
||||
@Override
|
||||
public void stop(Runnable callback) {
|
||||
stop();
|
||||
callback.run();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user