package io.cattle.platform.app;
import io.cattle.platform.hazelcast.dao.impl.HazelcastDaoImpl;
import io.cattle.platform.hazelcast.factory.HazelcastFactory;
import io.cattle.platform.hazelcast.membership.DBDiscoveryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Profile;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
@Configuration
public class HzCommonConfig {
@Configuration
@Profile("hazelcast.config.basic")
@Lazy
class Basic {
@Bean
HazelcastFactory HazelcastFactory() {
return new HazelcastFactory();
}
@Bean
HazelcastInstance Hazelcast(HazelcastFactory factory) {
return factory.newInstance();
}
@Bean
HazelcastDaoImpl HazelcastDaoImpl() {
return new HazelcastDaoImpl();
}
@Bean
DBDiscoveryFactory DBDiscoveryFactory() {
return new DBDiscoveryFactory();
}
}
@Configuration
@Profile("hazelcast.config.custom")
@Lazy
class Custom {
@Bean
HazelcastInstance Hazelcast() {
return Hazelcast.newHazelcastInstance();
}
}
}