All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.boot.cassandra.autoconfig.CassandraSessionAutoConfiguration Maven / Gradle / Ivy

There is a newer version: 2.2
Show newest version
package org.zalando.boot.cassandra.autoconfig;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import org.zalando.boot.cassandra.CassandraSessionFactoryBean;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
import com.datastax.driver.mapping.MappingManager;


/**
 *
 */
@Configuration
@ConditionalOnBean(Cluster.class)
@ConditionalOnMissingBean(Session.class)
@EnableConfigurationProperties(CassandraPropertiesExt.class)
public class CassandraSessionAutoConfiguration {

	@Autowired
	private CassandraPropertiesExt properties;
	
	@Autowired
	private Cluster cluster;
	
	@Bean
	public CassandraSessionFactoryBean session() {
		CassandraSessionFactoryBean factory = new CassandraSessionFactoryBean();
		factory.setCluster(cluster);
		if (StringUtils.hasText(properties.getKeyspaceName())) {
			factory.setKeyspace(properties.getKeyspaceName());
		}
		
		return factory;
	}
	
	@Bean
	@ConditionalOnClass(MappingManager.class)
	public MappingManager mappingManager(Session session) {
		return new MappingManager(session);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy