public static void main(String[] args) {
        MessagePasser messagePasser = null;
        TestApp app = null;
        if (args != null) {
            String configFilePath = null;
            String localName = null;

            HashMap<String, Integer> clockMap = new HashMap<String, Integer>();
            clockMap.put("logical", Constant.LOGICAL_CLOCK);
            clockMap.put("vector", Constant.VECTOR_CLOCK);

            int clockType = 0;
            switch (args.length) {
            case 3:
                configFilePath = args[0];
                localName = args[1];
                clockType = clockMap.get(args[2]);
                break;
            case 2:
                configFilePath = args[0];
                localName = args[1];
                break;
            case 1:
                configFilePath = CONFIG_FILE_PATH;
                localName = args[0];
                break;
            default:
                System.out
                        .println("Usage: java TestApp [config_file_path] [local_name] [logical | vector]");
                return;
            }
            if (new File(configFilePath).exists()) {
                messagePasser = new MessagePasser(configFilePath, localName,
                        clockType);
                List<Node> nodeList = messagePasser.getNodeList();
                List<Group> groupList = messagePasser.getGroupList();
                messagePasser.start();
                app = new TestApp(localName, messagePasser, nodeList, groupList);
                app.display();
            } else {
                System.out.println("Config file is not found!");
            }
        } else {
            System.out
                    .println("Usage: java TestApp [config_file_path] [local_name]");
        }
        while (messagePasser != null) {
            Message message = messagePasser.receive();
            // System.out.println(message);
            app.updateMessage(message);
        }
    }