Commit e8610eee authored by tristaZero's avatar tristaZero
Browse files

add config parameter.

parent d57c112f
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -45,7 +45,9 @@ public final class Bootstrap {
    
    private static final int DEFAULT_PORT = 3307;
    
    private static final String CONFIG_YAML = "/conf/config.yaml";
    private static final String DEFAULT_CONFIG_PATH = "/conf/";
    
    private static final String DEFAULT_CONFIG_FILE = "config.yaml";
    
    /**
     * Main Entrance.
@@ -55,7 +57,7 @@ public final class Bootstrap {
     * @throws IOException IO exception
     */
    public static void main(final String[] args) throws InterruptedException, IOException {
        OrchestrationProxyConfiguration localConfig = loadLocalConfiguration(new File(Bootstrap.class.getResource(CONFIG_YAML).getFile()));
        OrchestrationProxyConfiguration localConfig = loadLocalConfiguration(new File(Bootstrap.class.getResource(getConfig(args)).getFile()));
        int port = getPort(args);
        if (null == localConfig.getOrchestration()) {
            startWithoutRegistryCenter(localConfig, port);
@@ -70,7 +72,7 @@ public final class Bootstrap {
                InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8")
        ) {
            OrchestrationProxyConfiguration result = new Yaml(new Constructor(OrchestrationProxyConfiguration.class)).loadAs(inputStreamReader, OrchestrationProxyConfiguration.class);
            Preconditions.checkNotNull(result, String.format("Configuration file `%s` is invalid.", CONFIG_YAML));
            Preconditions.checkNotNull(result, String.format("Configuration file `%s` is invalid.", yamlFile.getName()));
            Preconditions.checkState(!result.getDataSources().isEmpty(), "Data sources configuration can not be empty.");
            Preconditions.checkState(null != result.getShardingRule() || null != result.getMasterSlaveRule() || null != result.getOrchestration(), 
                    "Configuration invalid, sharding rule, local and orchestration configuration can not be both null.");
@@ -90,6 +92,13 @@ public final class Bootstrap {
        }
    }
    
    private static String getConfig(final String[] args) {
        if (2 != args.length) {
            return DEFAULT_CONFIG_PATH + DEFAULT_CONFIG_FILE;
        }
        return DEFAULT_CONFIG_PATH + args[1];
    }
    
    private static void startWithoutRegistryCenter(final OrchestrationProxyConfiguration config, final int port) throws InterruptedException, MalformedURLException {
        RuleRegistry.getInstance().init(config);
        AtomikosXaTransaction.init();