summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/App.java
blob: cc8b9ce9645728adb1199db6dad29b009395ec2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.orbekk.same;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.orbekk.same.config.Configuration;

public class App {
    private Logger logger = LoggerFactory.getLogger(getClass());

    private Services.MasterState getMasterInfo(Configuration configuration) {
        return Services.MasterState.newBuilder()
                .setMasterUrl(configuration.get("masterUrl"))
                .setMasterLocation(configuration.get("masterLocation"))
                .build();
    }
    
    public void run(String[] args) {
        Configuration configuration = Configuration.loadOrDie();
        SameController controller = SameController.create(configuration);
        try {
            controller.start();
            if ("true".equals(configuration.get("isMaster"))) {
                controller.createNetwork(configuration.get("networkName"));
            } else {
                controller.joinNetwork(getMasterInfo(configuration));
            }
            controller.join();
        } catch (Exception e) {
            logger.error("Error in App.", e);
        }
    }

    public static void main(String[] args) {
        new App().run(args);
    }
}