blob: 6674989a19aaba4204d971393f6629f5366c4ee9 [file] [log] [blame]
Yuta HIGUCHI41f2ec02014-10-27 09:54:43 -07001package org.onlab.onos.store.hz;
tomdc66b382014-09-22 17:05:47 -07002
tom1a2908c2014-09-23 16:37:39 -07003import com.hazelcast.config.Config;
4import com.hazelcast.config.FileSystemXmlConfig;
tomdc66b382014-09-22 17:05:47 -07005import com.hazelcast.core.Hazelcast;
6import com.hazelcast.core.HazelcastInstance;
Yuta HIGUCHI497c8842014-09-25 14:23:34 -07007
tomdc66b382014-09-22 17:05:47 -07008import org.apache.felix.scr.annotations.Activate;
9import org.apache.felix.scr.annotations.Component;
10import org.apache.felix.scr.annotations.Deactivate;
11import org.apache.felix.scr.annotations.Service;
tomdc66b382014-09-22 17:05:47 -070012import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
tom1a2908c2014-09-23 16:37:39 -070015import java.io.FileNotFoundException;
tom0872a172014-09-23 11:24:26 -070016
tomdc66b382014-09-22 17:05:47 -070017/**
18 * Auxiliary bootstrap of distributed store.
19 */
20@Component(immediate = true)
21@Service
22public class StoreManager implements StoreService {
23
Yuta HIGUCHIb4139d82014-09-23 18:41:33 -070024 protected static final String HAZELCAST_XML_FILE = "etc/hazelcast.xml";
tom1a2908c2014-09-23 16:37:39 -070025
tomdc66b382014-09-22 17:05:47 -070026 private final Logger log = LoggerFactory.getLogger(getClass());
27
tom85ff08b2014-09-22 17:14:18 -070028 protected HazelcastInstance instance;
tomdc66b382014-09-22 17:05:47 -070029
30 @Activate
31 public void activate() {
tom1a2908c2014-09-23 16:37:39 -070032 try {
33 Config config = new FileSystemXmlConfig(HAZELCAST_XML_FILE);
34 instance = Hazelcast.newHazelcastInstance(config);
tom1a2908c2014-09-23 16:37:39 -070035 log.info("Started");
36 } catch (FileNotFoundException e) {
37 log.error("Unable to configure Hazelcast", e);
38 }
tomdc66b382014-09-22 17:05:47 -070039 }
40
41 @Deactivate
42 public void deactivate() {
tom0872a172014-09-23 11:24:26 -070043 instance.shutdown();
tomdc66b382014-09-22 17:05:47 -070044 log.info("Stopped");
45 }
46
47 @Override
48 public HazelcastInstance getHazelcastInstance() {
49 return instance;
50 }
tom0872a172014-09-23 11:24:26 -070051
tomdc66b382014-09-22 17:05:47 -070052}