Class ProtonClientProtocolManager

  • All Implemented Interfaces:
    org.apache.activemq.artemis.core.server.management.NotificationListener, org.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,​AMQPRoutingHandler>, org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager

    public class ProtonClientProtocolManager
    extends ProtonProtocolManager
    implements org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
    Handles proton protocol management for clients, mapping the ProtonProtocolManager to the ClientProtocolManager API. This is currently very basic and only supports Connecting to a broker, which will be useful in scenarios where the broker needs to connect to another broker through AMQP into another broker (like Interconnect) that will perform extra functionality.
    • Constructor Detail

      • ProtonClientProtocolManager

        public ProtonClientProtocolManager​(ProtonProtocolManagerFactory factory,
                                           org.apache.activemq.artemis.core.server.ActiveMQServer server)
    • Method Detail

      • setExecutor

        public org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager setExecutor​(java.util.concurrent.Executor executor)
        Specified by:
        setExecutor in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • stop

        public void stop()
        Specified by:
        stop in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • connect

        public org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connect​(org.apache.activemq.artemis.spi.core.remoting.Connection transportConnection,
                                                                                        long callTimeout,
                                                                                        long callFailoverTimeout,
                                                                                        java.util.List<org.apache.activemq.artemis.api.core.Interceptor> incomingInterceptors,
                                                                                        java.util.List<org.apache.activemq.artemis.api.core.Interceptor> outgoingInterceptors,
                                                                                        org.apache.activemq.artemis.spi.core.remoting.TopologyResponseHandler topologyResponseHandler)
        Specified by:
        connect in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • getCurrentConnection

        public org.apache.activemq.artemis.spi.core.protocol.RemotingConnection getCurrentConnection()
        Specified by:
        getCurrentConnection in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • lockSessionCreation

        public java.util.concurrent.locks.Lock lockSessionCreation()
        Specified by:
        lockSessionCreation in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • waitOnLatch

        public boolean waitOnLatch​(long milliseconds)
                            throws java.lang.InterruptedException
        Specified by:
        waitOnLatch in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
        Throws:
        java.lang.InterruptedException
      • isAlive

        public boolean isAlive()
        Specified by:
        isAlive in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • addChannelHandlers

        public void addChannelHandlers​(io.netty.channel.ChannelPipeline pipeline)
        Specified by:
        addChannelHandlers in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
        Specified by:
        addChannelHandlers in interface org.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,​AMQPRoutingHandler>
        Overrides:
        addChannelHandlers in class ProtonProtocolManager
      • sendSubscribeTopology

        public void sendSubscribeTopology​(boolean isServer)
        Specified by:
        sendSubscribeTopology in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • ping

        public void ping​(long connectionTTL)
        Specified by:
        ping in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • createSessionContext

        public org.apache.activemq.artemis.spi.core.remoting.SessionContext createSessionContext​(java.lang.String name,
                                                                                                 java.lang.String username,
                                                                                                 java.lang.String password,
                                                                                                 boolean xa,
                                                                                                 boolean autoCommitSends,
                                                                                                 boolean autoCommitAcks,
                                                                                                 boolean preAcknowledge,
                                                                                                 int minLargeMessageSize,
                                                                                                 int confirmationWindowSize,
                                                                                                 java.lang.String clientID)
                                                                                          throws org.apache.activemq.artemis.api.core.ActiveMQException
        Specified by:
        createSessionContext in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
        Throws:
        org.apache.activemq.artemis.api.core.ActiveMQException
      • cleanupBeforeFailover

        public boolean cleanupBeforeFailover​(org.apache.activemq.artemis.api.core.ActiveMQException cause)
        Specified by:
        cleanupBeforeFailover in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • checkForFailover

        public boolean checkForFailover​(java.lang.String liveNodeID)
                                 throws org.apache.activemq.artemis.api.core.ActiveMQException
        Specified by:
        checkForFailover in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
        Throws:
        org.apache.activemq.artemis.api.core.ActiveMQException
      • setSessionFactory

        public void setSessionFactory​(org.apache.activemq.artemis.api.core.client.ClientSessionFactory factory)
        Specified by:
        setSessionFactory in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • getSessionFactory

        public org.apache.activemq.artemis.api.core.client.ClientSessionFactory getSessionFactory()
        Specified by:
        getSessionFactory in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface org.apache.activemq.artemis.spi.core.remoting.ClientProtocolManager