All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.server.resp.RespChannelInitializer Maven / Gradle / Ivy

There is a newer version: 15.1.4.Final
Show newest version
package org.infinispan.server.resp;

import org.infinispan.server.core.transport.ConnectionMetadata;
import org.infinispan.server.core.transport.NettyInitializer;

import io.netty.channel.Channel;
import io.netty.channel.ChannelPipeline;

/**
 * Creates Netty Channels for the resp server.
 *
 * @author William Burns
 */
public class RespChannelInitializer implements NettyInitializer {

   private final RespServer respServer;

   /**
    * Creates new {@link RespChannelInitializer}.
    *
    * @param respServer Resp Server this initializer belongs to.
    */
   public RespChannelInitializer(RespServer respServer) {
      this.respServer = respServer;
   }

   @Override
   public void initializeChannel(Channel ch) {
      ConnectionMetadata metadata = ConnectionMetadata.getInstance(ch);
      metadata.protocolVersion("RESP3");
      ChannelPipeline pipeline = ch.pipeline();
      RespRequestHandler initialHandler;
      if (respServer.getConfiguration().authentication().enabled()) {
         initialHandler = new Resp3AuthHandler(respServer);
      } else {
         initialHandler = respServer.newHandler();
      }

      RespDecoder decoder = new RespDecoder();
      pipeline.addLast(decoder);
      pipeline.addLast(new RespHandler(decoder, initialHandler));
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy