/embed-influxDB

Download and start influxDB servers at runtime

Primary LanguageJavaApache License 2.0Apache-2.0

Travis Codecov Maven Central Code Climate Code Climate

Embedded InfluxDB

Start influx servers at runtime.

Usage

import de.flapdoodle.embed.process.runtime.Network;
import io.apisense.embed.influx.InfluxServer;
import io.apisense.embed.influx.ServerAlreadyRunningException;
import io.apisense.embed.influx.ServerNotRunningException;
import io.apisense.embed.influx.configuration.CustomInfluxVersion;
import io.apisense.embed.influx.configuration.InfluxConfigurationWriter;
import io.apisense.embed.influx.configuration.InfluxVersion;
import io.apisense.embed.influx.configuration.OSArchitecture;
import io.apisense.embed.influx.configuration.OSType;
import io.apisense.embed.influx.configuration.VersionConfiguration;

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException, ServerAlreadyRunningException, InterruptedException, ServerNotRunningException {
        InfluxServer.Builder builder = new InfluxServer.Builder();
        int freeHttpPort = Network.getFreeServerPort();
        int freeUdpPort = Network.getFreeServerPort();

        // configuration to start InfluxDB server with HTTP on port `freeHttpPort`
        // and default backup restore port
        InfluxConfigurationWriter influxConfig = new InfluxConfigurationWriter.Builder()
                .setHttp(freeHttpPort) // by default auth is disabled
                .setUdp(freeUdpPort) // If you happen to need udp enabled, by default to 'udp' database
                .build();

        builder.setInfluxConfiguration(influxConfig); // let's start both of protocols, HTTP and UDP

        // You can either autodetect the Runtime environment to use, or fully customize your distribution.
        // Using an already integrated or a custom version number.
        builder.setVersionConfig(VersionConfiguration.fromRuntime(new CustomInfluxVersion("2.5.1")));
        //  builder.setVersionConfig(new VersionConfiguration(OSType.LINUX, OSArchitecture.x86_64, InfluxVersion.2_5_1));

        InfluxServer server = builder.build();

        server.start();
        Thread.sleep(10 * 1000);
        server.stop();
    }
}

Notes