/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.management.backup;
import com.emc.storageos.services.util.JmxServerWrapper;
import org.apache.cassandra.service.CassandraDaemon;
/**
* Db Simulator
*/
public class DbSimulator {
private JmxServerWrapper jmxServer;
private CassandraDaemon service;
private String config;
/**
* JMX server wrapper
*/
public void setJmxServer(final JmxServerWrapper jmxServer) {
this.jmxServer = jmxServer;
}
/**
* Gets JMX server
*/
public JmxServerWrapper getJmxServer() {
return this.jmxServer;
}
/**
* Set database config file. It must be in URI form or file must be
* be in classpath
*
* @param config database config file
*/
public void setConfig(String config) {
this.config = config;
}
/**
* Starts Cassandra and JMX service
*
* @throws Exception
*/
public void start() throws Exception {
System.setProperty("cassandra.config", config);
if (jmxServer != null) {
jmxServer.start();
}
service = new CassandraDaemon();
service.init(null);
service.start();
}
/**
* Stops Cassandra and JMX service
*/
public void stop() {
if (jmxServer != null) {
jmxServer.stop();
}
service.stop();
}
}