<commit_before>package org.rakam.config;

import io.airlift.configuration.Config;

import javax.validation.constraints.NotNull;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.Optional;

public class JDBCConfig
{
    private String url;
    private String table;
    private String username;
    private String password = "";
    private Integer maxConnection;
    private String dataSource;
    private Long connectionMaxLifeTime;
    private Long connectionIdleTimeout;
    private boolean connectionDisablePool;

    @Config("url")
    public JDBCConfig setUrl(String url)
            throws URISyntaxException
    {
        if (url.startsWith("jdbc:")) {
            url = url.substring(5);
        }

        URI dbUri = new URI(url);
        String userInfo = dbUri.getUserInfo();
        if(userInfo != null) {
            String[] split = userInfo.split(":");
            this.username = split[0];
            if (split.length > 1) {
                this.password = split[1];
            }
        }

        String query = Optional.ofNullable(dbUri.getQuery()).orElse("");
        if(dbUri.getScheme().equals("postgresql")) {
            if(!query.isEmpty()) {
                query += "&";
            }
            query += "currentSchema=public";
        }

        this.url = "jdbc:" + convertScheme(dbUri.getScheme()) + "://" + dbUri.getHost() + ':' + dbUri.getPort()
                + dbUri.getPath()
                + (query.isEmpty() ? "" : ("?" + query));

        return this;
    }

    @NotNull
    public String getUrl()
    {
        return url;
    }

    @Config("data-source")
    public JDBCConfig setDataSource(String dataSource)
    {
        this.dataSource = dataSource;
        return this;
    }

    public String getDataSource()
    {
        return dataSource;
    }

    @Config("username")
    public JDBCConfig setUsername(String username)
    {
        this.username = username;
        return this;
    }

    public String getUsername()
    {
        return username;
    }

    @Config("max-connection")
    public JDBCConfig setMaxConnection(Integer maxConnection)
    {
        this.maxConnection = maxConnection;
        return this;
    }

    public Integer getMaxConnection()
    {
        return maxConnection;
    }

    @Config("password")
    public JDBCConfig setPassword(String password)
    {
        this.password = password;
        return this;
    }

    public String getPassword()
    {
        return password;
    }

    @Config("table")
    public JDBCConfig setTable(String table)
    {
        this.table = table;
        return this;
    }

    @Config("connection.disable-pool")
    public JDBCConfig setConnectionDisablePool(boolean connectionDisablePool)
    {
        this.connectionDisablePool = connectionDisablePool;
        return this;
    }

    public boolean getConnectionDisablePool()
    {
        return connectionDisablePool;
    }

    public String getTable()
    {
        return table;
    }

    @Config("connection.max-life-time")
    public JDBCConfig setConnectionMaxLifeTime(Long connectionMaxLifeTime)
    {
        this.connectionMaxLifeTime = connectionMaxLifeTime;
        return this;
    }

    public Long getConnectionMaxLifeTime()
    {
        return connectionMaxLifeTime;
    }

    @Config("connection.max-idle-timeout")
    public JDBCConfig setConnectionIdleTimeout(Long connectionIdleTimeout)
    {
        this.connectionIdleTimeout = connectionIdleTimeout;
        return this;
    }

    public Long getConnectionIdleTimeout()
    {
        return connectionIdleTimeout;
    }

    public String convertScheme(String scheme)
    {
        switch (scheme) {
            case "postgres":
                return "postgresql";
            default:
                return scheme;
        }
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) {
            return true;
        }
        if (!(o instanceof JDBCConfig)) {
            return false;
        }

        JDBCConfig that = (JDBCConfig) o;

        if (url != null ? !url.equals(that.url) : that.url != null) {
            return false;
        }
        if (table != null ? !table.equals(that.table) : that.table != null) {
            return false;
        }
        if (username != null ? !username.equals(that.username) : that.username != null) {
            return false;
        }
        if (password != null ? !password.equals(that.password) : that.password != null) {
            return false;
        }
        if (maxConnection != null ? !maxConnection.equals(that.maxConnection) : that.maxConnection != null) {
            return false;
        }
        return !(dataSource != null ? !dataSource.equals(that.dataSource) : that.dataSource != null);
    }

    @Override
    public int hashCode()
    {
        int result = url != null ? url.hashCode() : 0;
        result = 31 * result + (table != null ? table.hashCode() : 0);
        result = 31 * result + (username != null ? username.hashCode() : 0);
        result = 31 * result + (password != null ? password.hashCode() : 0);
        result = 31 * result + (maxConnection != null ? maxConnection.hashCode() : 0);
        result = 31 * result + (dataSource != null ? dataSource.hashCode() : 0);
        return result;
    }

    @Override
    public String toString()
    {
        return username + "@" + url;
    }
}
<commit_msg>Fix minor issue in JDBC url builder<commit_after>package org.rakam.config;

import io.airlift.configuration.Config;

import javax.validation.constraints.NotNull;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.Optional;

public class JDBCConfig
{
    private String url;
    private String table;
    private String username;
    private String password = "";
    private Integer maxConnection;
    private String dataSource;
    private Long connectionMaxLifeTime;
    private Long connectionIdleTimeout;
    private boolean connectionDisablePool;

    @Config("url")
    public JDBCConfig setUrl(String url)
            throws URISyntaxException
    {
        if (url.startsWith("jdbc:")) {
            url = url.substring(5);
        }

        URI dbUri = new URI(url);
        String userInfo = dbUri.getUserInfo();
        if(userInfo != null) {
            String[] split = userInfo.split(":");
            this.username = split[0];
            if (split.length > 1) {
                this.password = split[1];
            }
        }

        String query = Optional.ofNullable(dbUri.getQuery()).orElse("");
        if(dbUri.getScheme().equals("postgresql")) {
            if(!query.isEmpty()) {
                query += "&";
            }
            query += "currentSchema=public";
        }

        this.url = "jdbc:" + convertScheme(dbUri.getScheme()) + ":" +
                (dbUri.getHost() != null ? "//" + dbUri.getHost() : "") +
                (dbUri.getHost() != null && dbUri.getPort() > -1 ? ':' + dbUri.getPort() : "")
                + dbUri.getPath()
                + (query.isEmpty() ? "" : ("?" + query));

        return this;
    }

    @NotNull
    public String getUrl()
    {
        return url;
    }

    @Config("data-source")
    public JDBCConfig setDataSource(String dataSource)
    {
        this.dataSource = dataSource;
        return this;
    }

    public String getDataSource()
    {
        return dataSource;
    }

    @Config("username")
    public JDBCConfig setUsername(String username)
    {
        this.username = username;
        return this;
    }

    public String getUsername()
    {
        return username;
    }

    @Config("max-connection")
    public JDBCConfig setMaxConnection(Integer maxConnection)
    {
        this.maxConnection = maxConnection;
        return this;
    }

    public Integer getMaxConnection()
    {
        return maxConnection;
    }

    @Config("password")
    public JDBCConfig setPassword(String password)
    {
        this.password = password;
        return this;
    }

    public String getPassword()
    {
        return password;
    }

    @Config("table")
    public JDBCConfig setTable(String table)
    {
        this.table = table;
        return this;
    }

    @Config("connection.disable-pool")
    public JDBCConfig setConnectionDisablePool(boolean connectionDisablePool)
    {
        this.connectionDisablePool = connectionDisablePool;
        return this;
    }

    public boolean getConnectionDisablePool()
    {
        return connectionDisablePool;
    }

    public String getTable()
    {
        return table;
    }

    @Config("connection.max-life-time")
    public JDBCConfig setConnectionMaxLifeTime(Long connectionMaxLifeTime)
    {
        this.connectionMaxLifeTime = connectionMaxLifeTime;
        return this;
    }

    public Long getConnectionMaxLifeTime()
    {
        return connectionMaxLifeTime;
    }

    @Config("connection.max-idle-timeout")
    public JDBCConfig setConnectionIdleTimeout(Long connectionIdleTimeout)
    {
        this.connectionIdleTimeout = connectionIdleTimeout;
        return this;
    }

    public Long getConnectionIdleTimeout()
    {
        return connectionIdleTimeout;
    }

    public String convertScheme(String scheme)
    {
        switch (scheme) {
            case "postgres":
                return "postgresql";
            default:
                return scheme;
        }
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) {
            return true;
        }
        if (!(o instanceof JDBCConfig)) {
            return false;
        }

        JDBCConfig that = (JDBCConfig) o;

        if (url != null ? !url.equals(that.url) : that.url != null) {
            return false;
        }
        if (table != null ? !table.equals(that.table) : that.table != null) {
            return false;
        }
        if (username != null ? !username.equals(that.username) : that.username != null) {
            return false;
        }
        if (password != null ? !password.equals(that.password) : that.password != null) {
            return false;
        }
        if (maxConnection != null ? !maxConnection.equals(that.maxConnection) : that.maxConnection != null) {
            return false;
        }
        return !(dataSource != null ? !dataSource.equals(that.dataSource) : that.dataSource != null);
    }

    @Override
    public int hashCode()
    {
        int result = url != null ? url.hashCode() : 0;
        result = 31 * result + (table != null ? table.hashCode() : 0);
        result = 31 * result + (username != null ? username.hashCode() : 0);
        result = 31 * result + (password != null ? password.hashCode() : 0);
        result = 31 * result + (maxConnection != null ? maxConnection.hashCode() : 0);
        result = 31 * result + (dataSource != null ? dataSource.hashCode() : 0);
        return result;
    }

    @Override
    public String toString()
    {
        return username + "@" + url;
    }
}

{'fraction_non_alphanumeric': 0.11017180256340332, 'fraction_numerical': 0.0037269339150986275, 'mean_word_length': 2.0350344827586206, 'pattern_counts': {'":': 6, '<': 3, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '528039', 'n_tokens_mistral': 3122, 'n_tokens_neox': 2988, 'n_words': 694}