Package ds.controller

Source Code of ds.controller.Main

package ds.controller;

import java.io.FileInputStream;
import java.io.InputStream;
import java.rmi.Naming;
import java.rmi.Remote;
import java.util.Properties;
import java.util.Vector;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import asg.cliche.Shell;
import asg.cliche.ShellFactory;
import ds.controller.helper.NodeInfo;
import ds.controller.helper.NodeSelecter;
import ds.controller.local.TunnelActionImpl;
import ds.controller.rmi.ControllerFileServerImpl;
import ds.shared.socket.ServerSocketHandler;

/**
* Startup code for the node.
*
* @author save
*/
public class Main {
 
  // Define a static logger variable
  private final static Logger LOGGER = Logger.getLogger(Main.class);

  /**
   * @param args
   */
  public static void main(String[] args) {
   
    // Initialise logging
    // BasicConfigurator replaced with PropertyConfigurator.
      PropertyConfigurator.configure("config/logging.conf");
    LOGGER.info("Starting Controller");
     
      // Read general config file
      Properties conf = new Properties();
      try {
      InputStream is = new FileInputStream("config/general.conf");
        conf.load(is);       
    } catch (Exception e) {
      e.printStackTrace();
      LOGGER.warn("Could not read config file");
      return;
    }
   
    // Shared list of registered nodes
    Vector<NodeInfo> nodes = new Vector<NodeInfo>();
   
    // Determine the actions during file operations
    TunnelActionImpl fileAction = new TunnelActionImpl(nodes);
   
    // Initialize the node selector
    NodeSelecter.set_nodes(nodes);
   
    // Create but don't start the server socket handler
    ServerSocketHandler handler = new ServerSocketHandler(fileAction);
    LOGGER.info("ServerSocket created");
   
    // Register remote object
    String name = "Controller";
    try {
      Remote object = new ControllerFileServerImpl(handler, conf, nodes);
      Naming.rebind (name, object);
   
      LOGGER.info("Registered remote object");
       
      // Create a command line
      Commands c = new Commands(name, object, nodes);
      Shell s = ShellFactory.createConsoleShell("controller", "", c);
      s.commandLoop();
     
    } catch (Exception e) {
      e.printStackTrace();
    }
   
    LOGGER.debug("Main thread halted");
  }

}
TOP

Related Classes of ds.controller.Main

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.