Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -37,27 +50,14 @@
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.
*
* @author Alex Shvid
* @author Matthew T. Adams
* @author David Webb
* @author Kirk Clemens
* @author Jorge Davison
*/
public class CassandraCqlClusterFactoryBean
implements FactoryBean<Cluster>, InitializingBean, DisposableBean, PersistenceExceptionTranslator {
Expand All @@ -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;
Expand Down Expand Up @@ -144,6 +145,10 @@ public void afterPropertiesSet() throws Exception {
builder.withSocketOptions(socketOptions);
}

if (queryOptions != null) {
builder.withQueryOptions(queryOptions);
}

if (authProvider != null) {
builder.withAuthProvider(authProvider);

Expand Down Expand Up @@ -329,6 +334,15 @@ public void setSocketOptions(SocketOptions socketOptions) {
this.socketOptions = socketOptions;
}

/**
* Set the {@link QueryOptions}.
*
* @param queryOptions
*/
public void setQueryOptions(QueryOptions queryOptions) {
this.queryOptions = queryOptions;
}

/**
* Set the {@link AuthProvider}. Default is unauthenticated.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
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;
Expand All @@ -38,6 +39,7 @@
* shutdown, and optionally drop namespaces.
*
* @author Matthew T. Adams
* @author Jorge Davison
*/
@Configuration
public abstract class AbstractClusterConfiguration {
Expand All @@ -59,6 +61,7 @@ public CassandraCqlClusterFactoryBean cluster() {
bean.setRetryPolicy(getRetryPolicy());
bean.setShutdownScripts(getShutdownScripts());
bean.setSocketOptions(getSocketOptions());
bean.setQueryOptions(getQueryOptions());
bean.setStartupScripts(getStartupScripts());
bean.setProtocolVersion(getProtocolVersion());

Expand All @@ -73,6 +76,10 @@ protected SocketOptions getSocketOptions() {
return null;
}

protected QueryOptions getQueryOptions() {
return null;
}

protected List<String> getShutdownScripts() {
return Collections.emptyList();
}
Expand Down