Package org.eurekaj.manager.server

Source Code of org.eurekaj.manager.server.EurekaJNettyPipeline

package org.eurekaj.manager.server;

import java.io.File;
import java.util.LinkedHashMap;

import org.apache.log4j.Logger;
import org.eurekaj.api.util.IntegerParser;
import org.eurekaj.manager.server.handlers.*;
import org.eurekaj.manager.server.router.RouterHandler;
import org.jboss.netty.channel.ChannelHandler;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.handler.codec.http.HttpChunkAggregator;
import org.jboss.netty.handler.codec.http.HttpContentCompressor;
import org.jboss.netty.handler.codec.http.HttpRequestDecoder;
import org.jboss.netty.handler.codec.http.HttpResponseEncoder;
import org.jboss.netty.handler.stream.ChunkedWriteHandler;

public class EurekaJNettyPipeline implements ChannelPipelineFactory {
  private static Logger logger = Logger.getLogger(EurekaJNettyPipeline.class.getName());
  private RouterHandler routerHandler = null;
 
  public EurekaJNettyPipeline() {
   
  }
 
  @Override
  public ChannelPipeline getPipeline() throws Exception {
    String webappDir = System.getProperty("basedir");
    Integer cacheSeconds = IntegerParser.parseIntegerFromString(System.getProperty("org.eurekaj.indexCacheSeconds"), 0);
   
    ChannelPipeline pipeline = Channels.pipeline();
        pipeline.addLast("decoder", new HttpRequestDecoder());
        pipeline.addLast("aggregator", new HttpChunkAggregator(1048576));
        pipeline.addLast("encoder", new HttpResponseEncoder());
        pipeline.addLast("gzip", new HttpContentCompressor(6));
        pipeline.addLast("chunkedWriter", new ChunkedWriteHandler());

        if (routerHandler == null) {
          logger.info("Building routerHandler for pipeline");
          LinkedHashMap<String, ChannelHandler> routes = new LinkedHashMap<String, ChannelHandler>();
            routes.put("startsWith:/mainMenu.json", new MainMenuChannelHandler());
            routes.put("equals:/mainMenus", new MainMenuChannelHandler());
            routes.put("startsWith:/adminMenus", new MainMenuChannelHandler());
            routes.put("startsWith:/charts", new ChartChannelHandler());
            routes.put("startsWith:/alerts", new AlertChannelHandler());
            routes.put("startsWith:/chartGroups", new InstrumentationGroupChannelHandler());
            routes.put("startsWith:/accessToken", new AccessTokenHandler());
            routes.put("equals:/liveStatistics", new LiveStatisticsChannelHandler());
            routes.put("startsWith:/user", new UserChannelhandler());
            routes.put("startsWith:/account", new AccountHandler());
            routes.put("startsWith:/alertPlugins", new AlertPluginsHandler());
            routes.put("startsWith:/alertRecipients", new AlertRecipientsHandler());
            routes.put("startsWith:/cachedScript", new CachedScriptHandler(webappDir));
            routes.put("equals:/", new CachedIndexHandler(webappDir, cacheSeconds));
            routes.put("equals:/index.html", new CachedIndexHandler(webappDir, cacheSeconds));
            
        routerHandler = new RouterHandler(routes, false,
          new CacheableFileServerHandler(
            webappDir,
            IntegerParser.parseIntegerFromString(System.getProperty("org.eurekaj.indexCacheSeconds"), 0)
          ));
        }
       
        pipeline.addLast("handler_routeHandler", routerHandler);
        return pipeline;
  }

 
}
TOP

Related Classes of org.eurekaj.manager.server.EurekaJNettyPipeline

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.