Package

Source Code of Monitor

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Arrays;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

/**
* Created by: Matias Rege
*/
public class Monitor  {
   
  private Monitor(CommandLine cmd) throws IOException {
    NioSocketAcceptor acceptor = new NioSocketAcceptor(4);
   
    TextLineCodecFactory factory = new TextLineCodecFactory(Charset.forName("UTF-8"));
    if (cmd.hasOption("buffer"))
      factory.setDecoderMaxLineLength(Integer.valueOf(cmd.getOptionValue("buffer")));
   
    acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(factory));
    MonitorHandler handler = new MonitorHandler();
   
    if (cmd.hasOption("debug"))
      handler.setDebug(Boolean.valueOf(cmd.getOptionValue("debug")));
   
    if (cmd.hasOption("formatdate"))
      handler.setFormatDate(cmd.getOptionValue("formatdate"));
   
    if (cmd.hasOption("buffer"))
      handler.setBuffer(Integer.valueOf(cmd.getOptionValue("buffer")));
        acceptor.setHandler(handler);
       
        int port = cmd.hasOption("port") ? Integer.valueOf(cmd.getOptionValue("port")) : 9999;
         acceptor.bind(new InetSocketAddress(port));
        System.out.println("Listening on port " + port);
  }


  public static void main(String[] args) throws IOException, ParseException {
    // create Options object
    Options options = new Options();

    // add t option
    options.addOption("f", "formatdate",  true, "format date");
    options.addOption("b", "buffer", true, "buffer size");
    options.addOption("d", "debug", true, "debug mode");
    options.addOption("p", "port", true, "port");
       
    CommandLineParser parser = new PosixParser();
    CommandLine cmd = parser.parse( options, args);
   
    System.out.println("Iniciando monitor con parametros: "+Arrays.toString(args));
    new Monitor(cmd);
    System.out.println("Server started.");
  }
}
TOP

Related Classes of Monitor

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.