// Path: integration_test/src/main/java/com/caseystella/analytics/integration/UnableToStartException.java
// public class UnableToStartException extends Exception {
//     public UnableToStartException(String message) {
//         super(message);
//     }
//     public UnableToStartException(String message, Throwable t) {
//         super(message, t);
//     }
// }


import com.caseystella.analytics.integration.UnableToStartException;
import net.opentsdb.core.TSDB;
import net.opentsdb.uid.UniqueId;
import net.opentsdb.utils.Config;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
package com.caseystella.analytics.integration.components;



public class TSDBComponent extends HBaseComponent {
    private TSDB tsdb;
    private List<String> metrics = new ArrayList<>();
    public TSDB getTSDB() {
        return tsdb;
    }
    public TSDBComponent withMetrics(String... metrics) {
        for(String metric : metrics) {
            this.metrics.add(metric);
        }
        return this;
    }

    static class TSDBConfig extends Config {
        public TSDBConfig(Map<String, String> props) throws IOException {
            this(props.entrySet());
        }
        public TSDBConfig(Iterable<Map.Entry<String, String>> props) throws IOException {
            super(false);
            for(Map.Entry<String, String> prop : props) {
                properties.put(prop.getKey(), prop.getValue());
            }
        }
    }
    @Override
// Path: integration_test/src/main/java/com/caseystella/analytics/integration/UnableToStartException.java
// public class UnableToStartException extends Exception {
//     public UnableToStartException(String message) {
//         super(message);
//     }
//     public UnableToStartException(String message, Throwable t) {
//         super(message, t);
//     }
// }


// Path: integration_test/src/main/java/com/caseystella/analytics/integration/components/TSDBComponent.java
import com.caseystella.analytics.integration.UnableToStartException;
import net.opentsdb.core.TSDB;
import net.opentsdb.uid.UniqueId;
import net.opentsdb.utils.Config;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

package com.caseystella.analytics.integration.components;



public class TSDBComponent extends HBaseComponent {
    private TSDB tsdb;
    private List<String> metrics = new ArrayList<>();
    public TSDB getTSDB() {
        return tsdb;
    }
    public TSDBComponent withMetrics(String... metrics) {
        for(String metric : metrics) {
            this.metrics.add(metric);
        }
        return this;
    }

    static class TSDBConfig extends Config {
        public TSDBConfig(Map<String, String> props) throws IOException {
            this(props.entrySet());
        }
        public TSDBConfig(Iterable<Map.Entry<String, String>> props) throws IOException {
            super(false);
            for(Map.Entry<String, String> prop : props) {
                properties.put(prop.getKey(), prop.getValue());
            }
        }
    }
    @Override
    public void start() throws UnableToStartException {