com.asuraiv.coordination.menu.RegistTaskMenu.java Source code

Java tutorial

Introduction

Here is the source code for com.asuraiv.coordination.menu.RegistTaskMenu.java

Source

/*
 * @(#)RegistJobView.java $version 2016. 1. 4.
 *
 * Copyright 2007 NHN Corp. All rights Reserved. 
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package com.asuraiv.coordination.menu;

import java.io.IOException;
import java.util.Scanner;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.ZooDefs.Ids;

import com.asuraiv.coordination.enums.TaskStatus;

/**
 * @author Jupyo Hong
 */
public class RegistTaskMenu implements Menu, Watcher {

    private Menu nextMenu;

    @Override
    public void displayMenu() {

        boolean isContinue = true;

        while (isContinue) {

            System.out.println();
            System.out.println();
            System.out.println("###  ? ###");
            System.out.println();
            System.out.print("? ? ?(Y/N)>  ");

            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(System.in);

            switch (scanner.next()) {
            case "N":
            case "n":
                nextMenu = new MainMenu();
                isContinue = false;
                break;
            case "Y":
            case "y":
                registTaskProcess();
                isContinue = true;
                break;
            default:
                System.out.println();
                System.out.println("");
                isContinue = true;
                break;
            }
        }

        nextMenu.displayMenu();
    }

    /**
     * ZooKeeper? Task ?.
     */
    private void registTaskProcess() {

        try {
            ZooKeeper zk = new ZooKeeper("10.113.182.195:2181", 15000, this);

            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(System.in);

            System.out.println();
            System.out.println("Task??  >  ");

            String taskName = scanner.next();

            zk.create("/tasks/" + taskName, TaskStatus.WAITING.name().getBytes(), Ids.OPEN_ACL_UNSAFE,
                    CreateMode.PERSISTENT);

            System.out.println();
            System.out.println("## ??!");

            zk.close();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            if (e.getMessage().contains("NodeExists")) {
                System.out.println("?  ? !");
            } else {
                e.printStackTrace();
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    /**
     * @param event
     * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)
     */
    @Override
    public void process(WatchedEvent event) {
    }
}