Class ProtonProtocolManager
- java.lang.Object
-
- org.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<AMQPMessage,AmqpInterceptor,ActiveMQProtonRemotingConnection,AMQPRoutingHandler>
-
- org.apache.activemq.artemis.protocol.amqp.broker.ProtonProtocolManager
-
- All Implemented Interfaces:
org.apache.activemq.artemis.core.server.management.NotificationListener,org.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
- Direct Known Subclasses:
ProtonClientProtocolManager
public class ProtonProtocolManager extends org.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<AMQPMessage,AmqpInterceptor,ActiveMQProtonRemotingConnection,AMQPRoutingHandler> implements org.apache.activemq.artemis.core.server.management.NotificationListener
A proton protocol manager, basically reads the Proton Input and maps proton resources to ActiveMQ Artemis resources
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMIRROR_ADDRESS
-
Constructor Summary
Constructors Constructor Description ProtonProtocolManager(ProtonProtocolManagerFactory factory, org.apache.activemq.artemis.core.server.ActiveMQServer server, java.util.List<org.apache.activemq.artemis.api.core.BaseInterceptor> incomingInterceptors, java.util.List<org.apache.activemq.artemis.api.core.BaseInterceptor> outgoingInterceptors)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacceptsNoHandshake()voidaddChannelHandlers(io.netty.channel.ChannelPipeline pipeline)ProtonClientProtocolManagercreateClientManager()for outgoingorg.apache.activemq.artemis.spi.core.protocol.ConnectionEntrycreateConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection)org.apache.activemq.artemis.spi.core.protocol.ConnectionEntrycreateOutgoingConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection)This method is not part of the ProtocolManager interface because it only makes sense on AMQP.org.apache.activemq.artemis.spi.core.protocol.ConnectionEntrycreateOutgoingConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection, ClientSASLFactory saslFactory)intgetAmqpCredits()java.lang.LonggetAmqpIdleTimeout()intgetAmqpLowCredits()intgetAmqpMinLargeMessageSize()org.apache.activemq.artemis.spi.core.protocol.ProtocolManagerFactory<AmqpInterceptor>getFactory()intgetInitialRemoteMaxFrameSize()intgetMaxFrameSize()static java.lang.StringgetMirrorAddress(java.lang.String connectionName)java.util.Map<org.apache.activemq.artemis.api.core.SimpleString,org.apache.activemq.artemis.api.core.RoutingType>getPrefixes()java.lang.StringgetPubSubPrefix()ReferenceNodeStoregetReferenceIDSupplier()AMQPRoutingHandlergetRoutingHandler()java.lang.StringgetSaslLoginConfigScope()java.lang.String[]getSaslMechanisms()org.apache.activemq.artemis.core.server.ActiveMQServergetServer()voidhandleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)voidhandshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)java.lang.StringinvokeIncoming(AMQPMessage message, ActiveMQProtonRemotingConnection connection)java.lang.StringinvokeOutgoing(AMQPMessage message, ActiveMQProtonRemotingConnection connection)booleanisAmqpDuplicateDetection()booleanisAmqpTreatRejectAsUnmodifiedDeliveryFailed()booleanisDirectDeliver()booleanisProtocol(byte[] array)booleanisUseModifiedForTransientDeliveryErrors()Returns true if transient delivery errors should be handled with a Modified disposition (if permitted by link)voidonNotification(org.apache.activemq.artemis.core.server.management.Notification notification)ProtonProtocolManagersetAmqpCredits(int amqpCredits)ProtonProtocolManagersetAmqpDuplicateDetection(boolean duplicateDetection)ProtonProtocolManagersetAmqpIdleTimeout(java.lang.Long ttl)ProtonProtocolManagersetAmqpLowCredits(int amqpLowCredits)ProtonProtocolManagersetAmqpMinLargeMessageSize(int amqpMinLargeMessageSize)voidsetAmqpTreatRejectAsUnmodifiedDeliveryFailed(boolean amqpTreatRejectAsUnmodifiedDeliveryFailed)ProtonProtocolManagersetAmqpUseModifiedForTransientDeliveryErrors(boolean amqpUseModifiedForTransientDeliveryErrors)Sets if transient delivery errors should be handled with a Modified disposition (if permitted by link)voidsetAnycastPrefix(java.lang.String anycastPrefix)ProtonProtocolManagersetDirectDeliver(boolean directDeliver)voidsetInitialRemoteMaxFrameSize(int initialRemoteMaxFrameSize)voidsetMaxFrameSize(int maxFrameSize)voidsetMulticastPrefix(java.lang.String multicastPrefix)voidsetPubSubPrefix(java.lang.String pubSubPrefix)voidsetSaslLoginConfigScope(java.lang.String saslLoginConfigScope)voidsetSaslMechanisms(java.lang.String[] saslMechanisms)voidupdateInterceptors(java.util.List incoming, java.util.List outgoing)java.util.List<java.lang.String>websocketSubprotocolIdentifiers()-
Methods inherited from class org.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager
getSecurityDomain, invokeInterceptors, setSecurityDomain
-
-
-
-
Field Detail
-
MIRROR_ADDRESS
public static final java.lang.String MIRROR_ADDRESS
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ProtonProtocolManager
public ProtonProtocolManager(ProtonProtocolManagerFactory factory, org.apache.activemq.artemis.core.server.ActiveMQServer server, java.util.List<org.apache.activemq.artemis.api.core.BaseInterceptor> incomingInterceptors, java.util.List<org.apache.activemq.artemis.api.core.BaseInterceptor> outgoingInterceptors)
-
-
Method Detail
-
getMirrorAddress
public static java.lang.String getMirrorAddress(java.lang.String connectionName)
-
getReferenceIDSupplier
public ReferenceNodeStore getReferenceIDSupplier()
-
getServer
public org.apache.activemq.artemis.core.server.ActiveMQServer getServer()
-
onNotification
public void onNotification(org.apache.activemq.artemis.core.server.management.Notification notification)
- Specified by:
onNotificationin interfaceorg.apache.activemq.artemis.core.server.management.NotificationListener
-
getAmqpMinLargeMessageSize
public int getAmqpMinLargeMessageSize()
-
setAmqpMinLargeMessageSize
public ProtonProtocolManager setAmqpMinLargeMessageSize(int amqpMinLargeMessageSize)
-
isAmqpDuplicateDetection
public boolean isAmqpDuplicateDetection()
-
setAmqpDuplicateDetection
public ProtonProtocolManager setAmqpDuplicateDetection(boolean duplicateDetection)
-
getFactory
public org.apache.activemq.artemis.spi.core.protocol.ProtocolManagerFactory<AmqpInterceptor> getFactory()
- Specified by:
getFactoryin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
updateInterceptors
public void updateInterceptors(java.util.List incoming, java.util.List outgoing)- Specified by:
updateInterceptorsin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
acceptsNoHandshake
public boolean acceptsNoHandshake()
- Specified by:
acceptsNoHandshakein interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
getAmqpIdleTimeout
public java.lang.Long getAmqpIdleTimeout()
-
setAmqpIdleTimeout
public ProtonProtocolManager setAmqpIdleTimeout(java.lang.Long ttl)
-
isDirectDeliver
public boolean isDirectDeliver()
-
setDirectDeliver
public ProtonProtocolManager setDirectDeliver(boolean directDeliver)
-
createClientManager
public ProtonClientProtocolManager createClientManager()
for outgoing
-
createConnectionEntry
public org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry createConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Acceptor acceptorUsed, org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection)- Specified by:
createConnectionEntryin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
createOutgoingConnectionEntry
public org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry createOutgoingConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection)
This method is not part of the ProtocolManager interface because it only makes sense on AMQP. More specifically on AMQP Bridges
-
createOutgoingConnectionEntry
public org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry createOutgoingConnectionEntry(org.apache.activemq.artemis.spi.core.remoting.Connection remotingConnection, ClientSASLFactory saslFactory)
-
handleBuffer
public void handleBuffer(org.apache.activemq.artemis.spi.core.protocol.RemotingConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)- Specified by:
handleBufferin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
addChannelHandlers
public void addChannelHandlers(io.netty.channel.ChannelPipeline pipeline)
- Specified by:
addChannelHandlersin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
getAmqpCredits
public int getAmqpCredits()
-
setAmqpCredits
public ProtonProtocolManager setAmqpCredits(int amqpCredits)
-
getAmqpLowCredits
public int getAmqpLowCredits()
-
setAmqpLowCredits
public ProtonProtocolManager setAmqpLowCredits(int amqpLowCredits)
-
isProtocol
public boolean isProtocol(byte[] array)
- Specified by:
isProtocolin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
handshake
public void handshake(org.apache.activemq.artemis.core.remoting.impl.netty.NettyServerConnection connection, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)- Specified by:
handshakein interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
websocketSubprotocolIdentifiers
public java.util.List<java.lang.String> websocketSubprotocolIdentifiers()
- Specified by:
websocketSubprotocolIdentifiersin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
getPubSubPrefix
public java.lang.String getPubSubPrefix()
-
setPubSubPrefix
public void setPubSubPrefix(java.lang.String pubSubPrefix)
-
getMaxFrameSize
public int getMaxFrameSize()
-
setMaxFrameSize
public void setMaxFrameSize(int maxFrameSize)
-
getSaslMechanisms
public java.lang.String[] getSaslMechanisms()
-
setSaslMechanisms
public void setSaslMechanisms(java.lang.String[] saslMechanisms)
-
getSaslLoginConfigScope
public java.lang.String getSaslLoginConfigScope()
-
setSaslLoginConfigScope
public void setSaslLoginConfigScope(java.lang.String saslLoginConfigScope)
-
setAnycastPrefix
public void setAnycastPrefix(java.lang.String anycastPrefix)
- Specified by:
setAnycastPrefixin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>- Overrides:
setAnycastPrefixin classorg.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<AMQPMessage,AmqpInterceptor,ActiveMQProtonRemotingConnection,AMQPRoutingHandler>
-
setMulticastPrefix
public void setMulticastPrefix(java.lang.String multicastPrefix)
- Specified by:
setMulticastPrefixin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>- Overrides:
setMulticastPrefixin classorg.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<AMQPMessage,AmqpInterceptor,ActiveMQProtonRemotingConnection,AMQPRoutingHandler>
-
getPrefixes
public java.util.Map<org.apache.activemq.artemis.api.core.SimpleString,org.apache.activemq.artemis.api.core.RoutingType> getPrefixes()
- Specified by:
getPrefixesin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>- Overrides:
getPrefixesin classorg.apache.activemq.artemis.spi.core.protocol.AbstractProtocolManager<AMQPMessage,AmqpInterceptor,ActiveMQProtonRemotingConnection,AMQPRoutingHandler>
-
getRoutingHandler
public AMQPRoutingHandler getRoutingHandler()
- Specified by:
getRoutingHandlerin interfaceorg.apache.activemq.artemis.spi.core.protocol.ProtocolManager<AmqpInterceptor,AMQPRoutingHandler>
-
invokeIncoming
public java.lang.String invokeIncoming(AMQPMessage message, ActiveMQProtonRemotingConnection connection)
-
invokeOutgoing
public java.lang.String invokeOutgoing(AMQPMessage message, ActiveMQProtonRemotingConnection connection)
-
getInitialRemoteMaxFrameSize
public int getInitialRemoteMaxFrameSize()
-
setInitialRemoteMaxFrameSize
public void setInitialRemoteMaxFrameSize(int initialRemoteMaxFrameSize)
-
isUseModifiedForTransientDeliveryErrors
public boolean isUseModifiedForTransientDeliveryErrors()
Returns true if transient delivery errors should be handled with a Modified disposition (if permitted by link)
-
setAmqpUseModifiedForTransientDeliveryErrors
public ProtonProtocolManager setAmqpUseModifiedForTransientDeliveryErrors(boolean amqpUseModifiedForTransientDeliveryErrors)
Sets if transient delivery errors should be handled with a Modified disposition (if permitted by link)
-
setAmqpTreatRejectAsUnmodifiedDeliveryFailed
public void setAmqpTreatRejectAsUnmodifiedDeliveryFailed(boolean amqpTreatRejectAsUnmodifiedDeliveryFailed)
-
isAmqpTreatRejectAsUnmodifiedDeliveryFailed
public boolean isAmqpTreatRejectAsUnmodifiedDeliveryFailed()
-
-