Package com.yahoo.omid.tso

Source Code of com.yahoo.omid.tso.TSOServerConfig

/**
* Copyright (c) 2011 Yahoo! Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. See accompanying LICENSE file.
*/

package com.yahoo.omid.tso;

import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;

/**
* Holds the configuration parameters of a TSO server instance.
*
*/
public class TSOServerConfig {
   
    static public TSOServerConfig configFactory(){
        return new TSOServerConfig();
    }
   
    static public TSOServerConfig configFactory(int port, int batch, boolean recoveryEnabled, int ensSize, int qSize, String zkservers){
        return new TSOServerConfig(port, batch, recoveryEnabled, ensSize, qSize, zkservers);
    }

    static public TSOServerConfig parseConfig(String args[]){
        TSOServerConfig config = new TSOServerConfig();

        if (args.length == 0) {
            new JCommander(config).usage();
            System.exit(0);
        }

        new JCommander(config, args);

        return config;
    }

    @Parameter(names = "-port", description = "Port reserved by the Status Oracle", required = true)
    private int port;

    @Parameter(names = "-batch", description = "Threshold for the batch sent to the WAL")
    private int batch;

    @Parameter(names = "-ha", description = "Highly Available status oracle: logs operations to the WAL and recovers from a crash")
    private boolean recoveryEnabled;

    @Parameter(names = "-zk", description = "ZooKeeper ensemble: host1:port1,host2:port2...")
    private String zkServers;

    @Parameter(names = "-ensemble", description = "WAL ensemble size")
    private int ensemble;

    @Parameter(names = "-quorum", description = "WAL quorum size")
    private int quorum;
   
    TSOServerConfig(){
        this.port = Integer.parseInt(System.getProperty("PORT", "1234"));
        this.batch = Integer.parseInt(System.getProperty("BATCH", "0"));
        this.recoveryEnabled = Boolean.parseBoolean(System.getProperty("RECOVERABLE", "false"));
        this.zkServers = System.getProperty("ZKSERVERS");
        this.ensemble = Integer.parseInt(System.getProperty("ENSEMBLE", "3"));
        this.quorum = Integer.parseInt(System.getProperty("QUORUM", "2"));
    }
   
    TSOServerConfig(int port, int batch, boolean recoveryEnabled, int ensemble, int quorum, String zkServers){
        this.port = port;
        this.batch = batch;
        this.recoveryEnabled = recoveryEnabled;
        this.zkServers = zkServers;
        this.ensemble = ensemble;
        this.quorum = quorum;
    }
   
    public int getPort(){
        return port;
    }
   
    public int getBatchSize(){
        return batch;
    }
   
    public boolean isRecoveryEnabled(){
        return recoveryEnabled;
    }
   
    public String getZkServers(){
        return zkServers;
    }

    public int getEnsembleSize(){
        return ensemble;
    }
   
    public int getQuorumSize(){
        return quorum;
    }
}
TOP

Related Classes of com.yahoo.omid.tso.TSOServerConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.