DATACASS-231 - Add ProtocolVersion to CassandraCqlClusterFactoryBean.

Original pull request: #41.
CLA: 134320150813044603 (Kirk Clemens)
This commit is contained in:
Kirk Clemens
2015-08-13 12:07:37 -05:00
committed by Mark Paluch
parent 09f8de4603
commit 0f14ade35a
3 changed files with 59 additions and 0 deletions

View File

@@ -43,6 +43,7 @@ import com.datastax.driver.core.Host;
import com.datastax.driver.core.LatencyTracker;
import com.datastax.driver.core.PoolingOptions;
import com.datastax.driver.core.ProtocolOptions.Compression;
import com.datastax.driver.core.ProtocolVersion;
import com.datastax.driver.core.SSLOptions;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.SocketOptions;
@@ -85,6 +86,7 @@ public class CassandraCqlClusterFactoryBean implements FactoryBean<Cluster>, Ini
private LoadBalancingPolicy loadBalancingPolicy;
private ReconnectionPolicy reconnectionPolicy;
private RetryPolicy retryPolicy;
private ProtocolVersion protocolVersion;
private boolean metricsEnabled = DEFAULT_METRICS_ENABLED;
private boolean jmxReportingEnabled = DEFAULT_JMX_REPORTING_ENABLED;
private boolean sslEnabled = DEFAULT_SSL_ENABLED;
@@ -178,6 +180,10 @@ public class CassandraCqlClusterFactoryBean implements FactoryBean<Cluster>, Ini
}
}
if(protocolVersion != null) {
builder.withProtocolVersion(protocolVersion);
}
cluster = builder.build();
if (hostStateListener != null) {
@@ -286,6 +292,10 @@ public class CassandraCqlClusterFactoryBean implements FactoryBean<Cluster>, Ini
this.poolingOptions = poolingOptions;
}
public void setProtocolVersion(ProtocolVersion protocolVersion){
this.protocolVersion = protocolVersion;
}
public void setSocketOptions(SocketOptions socketOptions) {
this.socketOptions = socketOptions;
}

View File

@@ -27,6 +27,7 @@ import org.springframework.context.annotation.Configuration;
import com.datastax.driver.core.AuthProvider;
import com.datastax.driver.core.PoolingOptions;
import com.datastax.driver.core.ProtocolVersion;
import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.ReconnectionPolicy;
@@ -59,6 +60,7 @@ public abstract class AbstractClusterConfiguration {
bean.setShutdownScripts(getShutdownScripts());
bean.setSocketOptions(getSocketOptions());
bean.setStartupScripts(getStartupScripts());
bean.setProtocolVersion(getProtocolVersion());
return bean;
}
@@ -118,4 +120,8 @@ public abstract class AbstractClusterConfiguration {
protected AuthProvider getAuthProvider() {
return null;
}
protected ProtocolVersion getProtocolVersion(){
return null;
}
}

View File

@@ -0,0 +1,43 @@
package org.springframework.cassandra.test.unit.config;
import com.datastax.driver.core.ProtocolVersion;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.cassandra.config.CassandraCqlClusterFactoryBean;
/**
* JUnit test case for CassandraCqlClusterFactoryBean
*
* @author Kirk Clemens
*/
public class CassandraCqlClusterFactoryBeanTest{
@Test
public void testProtocolVersion(){
final CassandraCqlClusterFactoryBean cassandraCqlClusterFactoryBean = new CassandraCqlClusterFactoryBean();
cassandraCqlClusterFactoryBean.setProtocolVersion(ProtocolVersion.V2);
try {
cassandraCqlClusterFactoryBean.afterPropertiesSet();
Assert.assertEquals(
ProtocolVersion.V2,
cassandraCqlClusterFactoryBean.getObject().getConfiguration().getProtocolOptions().getProtocolVersionEnum()
);
} catch (Exception e) {
Assert.fail("Unable to create CQL cluster bean" + e.getMessage());
}
}
@Test
public void testDefaultProtocolVersion(){
final CassandraCqlClusterFactoryBean cassandraCqlClusterFactoryBean = new CassandraCqlClusterFactoryBean();
try {
cassandraCqlClusterFactoryBean.afterPropertiesSet();
Assert.assertNull(
cassandraCqlClusterFactoryBean.getObject().getConfiguration().getProtocolOptions().getProtocolVersionEnum()
);
} catch (Exception e) {
Assert.fail("Unable to create CQL cluster bean" + e.getMessage());
}
}
}