Sha256: 986ad0221d3a80e072fcef607b765e3c16df31746380345f8d763b8282479b06

Contents?: true

Size: 1.72 KB

Versions: 10

Compression:

Stored size: 1.72 KB

Contents

package org.embulk.input.mysql;

import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.io.ByteStreams;
import org.embulk.config.ConfigSource;
import org.embulk.test.EmbulkTests;

import java.io.IOException;

import static java.util.Locale.ENGLISH;

public class MySQLTests
{
    public static ConfigSource baseConfig()
    {
        return EmbulkTests.config("EMBULK_INPUT_MYSQL_TEST_CONFIG");
    }

    public static void execute(String sql)
    {
        ConfigSource config = baseConfig();

        ImmutableList.Builder<String> args = ImmutableList.builder();
        args.add("mysql")
                .add("-u")
                .add(config.get(String.class, "user"));
        if (!config.get(String.class, "password").isEmpty()) {
            args.add("-p" + config.get(String.class, "password"));
        }
        args
                .add("-h")
                .add(config.get(String.class, "host"))
                .add("-P")
                .add(config.get(String.class, "port", "3306"))
                .add(config.get(String.class, "database"))
                .add("-e")
                .add(sql);

        ProcessBuilder pb = new ProcessBuilder(args.build());
        pb.redirectErrorStream(true);
        int code;
        try {
            Process process = pb.start();
            ByteStreams.copy(process.getInputStream(), System.out);
            code = process.waitFor();
        } catch (IOException | InterruptedException ex) {
            throw Throwables.propagate(ex);
        }
        if (code != 0) {
            throw new RuntimeException(String.format(ENGLISH,
                    "Command finished with non-zero exit code. Exit code is %d.", code));
        }
    }
}

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
embulk-input-mysql-0.9.3 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.9.2 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.9.1 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.9.0 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.6 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.5 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.4 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.3 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.2 src/test/java/org/embulk/input/mysql/MySQLTests.java
embulk-input-mysql-0.8.1 src/test/java/org/embulk/input/mysql/MySQLTests.java