Interface ProtocolManager<P extends org.apache.activemq.artemis.api.core.BaseInterceptor, R extends org.apache.activemq.artemis.core.server.routing.RoutingHandler>

All Known Implementing Classes:
AbstractProtocolManager

public interface ProtocolManager<P extends org.apache.activemq.artemis.api.core.BaseInterceptor, R extends org.apache.activemq.artemis.core.server.routing.RoutingHandler>
Info: ProtocolManager is loaded by RemotingServiceImpl.loadProtocolManagerFactories(Iterable)
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    If this protocols accepts connectoins without an initial handshake.
    void
    addChannelHandlers(io.netty.channel.ChannelPipeline pipeline)
     
    org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry
    createConnectionEntry(Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection connection)
     
     
    Map<org.apache.activemq.artemis.api.core.SimpleString, org.apache.activemq.artemis.api.core.RoutingType>
     
     
     
    void
    handleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
     
    void
    handshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
     
    boolean
    isProtocol(byte[] array)
     
    default void
     
    void
    setAnycastPrefix(String anycastPrefix)
     
    void
    setMulticastPrefix(String multicastPrefix)
     
    void
    setSecurityDomain(String securityDomain)
     
    void
    updateInterceptors(List<org.apache.activemq.artemis.api.core.BaseInterceptor> incomingInterceptors, List<org.apache.activemq.artemis.api.core.BaseInterceptor> outgoingInterceptors)
    This method will receive all the interceptors on the system and you should filter them out
    A list of the IANA websocket subprotocol identifiers (https://www.iana.org/assignments/websocket/websocket.xhtml) supported by this protocol manager.
  • Method Details

    • getFactory

      ProtocolManagerFactory<P> getFactory()
    • updateInterceptors

      void updateInterceptors(List<org.apache.activemq.artemis.api.core.BaseInterceptor> incomingInterceptors, List<org.apache.activemq.artemis.api.core.BaseInterceptor> outgoingInterceptors)
      This method will receive all the interceptors on the system and you should filter them out
    • createConnectionEntry

      org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry createConnectionEntry(Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection connection)
    • removeHandler

      default void removeHandler(String name)
    • handleBuffer

      void handleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
    • addChannelHandlers

      void addChannelHandlers(io.netty.channel.ChannelPipeline pipeline)
    • isProtocol

      boolean isProtocol(byte[] array)
    • acceptsNoHandshake

      boolean acceptsNoHandshake()
      If this protocols accepts connectoins without an initial handshake. If true this protocol will be the failback case no other connections are made. New designed protocols should always require a handshake. This is only useful for legacy protocols.
    • handshake

      void handshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
    • websocketSubprotocolIdentifiers

      List<String> websocketSubprotocolIdentifiers()
      A list of the IANA websocket subprotocol identifiers (https://www.iana.org/assignments/websocket/websocket.xhtml) supported by this protocol manager. These are used during the websocket subprotocol handshake.
      Returns:
      A list of subprotocol ids
    • setAnycastPrefix

      void setAnycastPrefix(String anycastPrefix)
    • setMulticastPrefix

      void setMulticastPrefix(String multicastPrefix)
    • getPrefixes

      Map<org.apache.activemq.artemis.api.core.SimpleString, org.apache.activemq.artemis.api.core.RoutingType> getPrefixes()
    • setSecurityDomain

      void setSecurityDomain(String securityDomain)
    • getSecurityDomain

      String getSecurityDomain()
    • getRoutingHandler

      R getRoutingHandler()