DATACASS-226 - Enable CassandraCqlClusterFactoryBean to set QueryOptions at cluster level.

We now allow configuring QueryOptions on Cluster level.

Original pull request: #31
This commit is contained in:
Jorge Davison
2015-02-25 17:28:34 -02:00
committed by Mark Paluch
parent 24e3788ae4
commit 1a3a9d9c56
2 changed files with 36 additions and 15 deletions

View File

@@ -15,12 +15,25 @@
*/
package org.springframework.cassandra.config;
import com.datastax.driver.core.AuthProvider;
import com.datastax.driver.core.Cluster;
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.QueryOptions;
import com.datastax.driver.core.SSLOptions;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.ReconnectionPolicy;
import com.datastax.driver.core.policies.RetryPolicy;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
@@ -37,20 +50,6 @@ import org.springframework.dao.DataAccessException;
import org.springframework.dao.support.PersistenceExceptionTranslator;
import org.springframework.util.StringUtils;
import com.datastax.driver.core.AuthProvider;
import com.datastax.driver.core.Cluster;
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;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.ReconnectionPolicy;
import com.datastax.driver.core.policies.RetryPolicy;
/**
* Convenient factory for configuring a Cassandra Cluster.
*
@@ -58,6 +57,7 @@ import com.datastax.driver.core.policies.RetryPolicy;
* @author Matthew T. Adams
* @author David Webb
* @author Kirk Clemens
* @author Jorge Davison
*/
public class CassandraCqlClusterFactoryBean
implements FactoryBean<Cluster>, InitializingBean, DisposableBean, PersistenceExceptionTranslator {
@@ -80,6 +80,7 @@ public class CassandraCqlClusterFactoryBean
private CompressionType compressionType;
private PoolingOptions poolingOptions;
private SocketOptions socketOptions;
private QueryOptions queryOptions;
private AuthProvider authProvider;
private String username;
private String password;
@@ -144,6 +145,10 @@ public class CassandraCqlClusterFactoryBean
builder.withSocketOptions(socketOptions);
}
if (queryOptions != null) {
builder.withQueryOptions(queryOptions);
}
if (authProvider != null) {
builder.withAuthProvider(authProvider);
@@ -329,6 +334,15 @@ public class CassandraCqlClusterFactoryBean
this.socketOptions = socketOptions;
}
/**
* Set the {@link QueryOptions}.
*
* @param queryOptions
*/
public void setQueryOptions(QueryOptions queryOptions) {
this.queryOptions = queryOptions;
}
/**
* Set the {@link AuthProvider}. Default is unauthenticated.
*

View File

@@ -29,6 +29,7 @@ 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.QueryOptions;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.ReconnectionPolicy;
import com.datastax.driver.core.policies.RetryPolicy;
@@ -38,6 +39,7 @@ import com.datastax.driver.core.policies.RetryPolicy;
* shutdown, and optionally drop namespaces.
*
* @author Matthew T. Adams
* @author Jorge Davison
*/
@Configuration
public abstract class AbstractClusterConfiguration {
@@ -59,6 +61,7 @@ public abstract class AbstractClusterConfiguration {
bean.setRetryPolicy(getRetryPolicy());
bean.setShutdownScripts(getShutdownScripts());
bean.setSocketOptions(getSocketOptions());
bean.setQueryOptions(getQueryOptions());
bean.setStartupScripts(getStartupScripts());
bean.setProtocolVersion(getProtocolVersion());
@@ -73,6 +76,10 @@ public abstract class AbstractClusterConfiguration {
return null;
}
protected QueryOptions getQueryOptions() {
return null;
}
protected List<String> getShutdownScripts() {
return Collections.emptyList();
}