Package org.rzo.yajsw.tray.ahessian.server

Source Code of org.rzo.yajsw.tray.ahessian.server.AHessianJmxServer

package org.rzo.yajsw.tray.ahessian.server;

import java.net.InetSocketAddress;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.management.MBeanServer;

import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
import org.jboss.netty.handler.ipfilter.IpFilterRuleHandler;
import org.jboss.netty.handler.ipfilter.IpFilterRuleList;
import org.rzo.netty.mcast.discovery.DiscoveryServer;

public class AHessianJmxServer
{
  public AHessianJmxServer(MBeanServer mbeanServer, String ipFilter, String serviceDiscoveryName, int port, Logger log)
  {
    Executor executor = Executors.newFixedThreadPool(10);

    // Configure the server.
    ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory(executor, executor));

    bootstrap
        .setPipelineFactory(new AHessianServerPipelineFactory(executor, new IpFilterRuleHandler(new IpFilterRuleList(ipFilter)), mbeanServer, log));

    int serverPort = port;
    // Bind and start to accept incoming connections.
    Channel channel = bootstrap.bind(new InetSocketAddress(serverPort));
    if (serverPort == 0)
      serverPort = ((InetSocketAddress) channel.getLocalAddress()).getPort();

    log.info("ahessian jmx service bound to port " + serverPort);

    DiscoveryServer discovery = new DiscoveryServer();
    discovery.setName(serviceDiscoveryName);
    discovery.setPort(serverPort);
    try
    {
      discovery.init();
    }
    catch (Exception e)
    {
      log.log(Level.SEVERE, "error starting tray icon server", e);
    }

  }

}
TOP

Related Classes of org.rzo.yajsw.tray.ahessian.server.AHessianJmxServer

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.