All Classes and Interfaces

Class
Description
Collects acks from a number of nodes, waits for all acks.
Manages ACKs from receivers in NAKACK4
Address identifies cluster member.
 
Callback to provide custom addresses.
Class to manage JGroups-internal cluster wide requests and responses (https://redhat.atlassian.net/browse/JGRP-3043).
 
Handles requests / responses in Admin
Header for admin messages
 
Cache which removes its elements after a certain time
 
Iterator over an array of elements of type T.
Simple string implemented as a byte[] array.
Encrypts and decrypts communication in JGroups by using a secret key distributed to all cluster members by the key server (coordinator) using asymmetric (public/private key) encryption.
The secret key is identical for all cluster members and is used to encrypt messages when sending and decrypt them when receiving messages.
 
An asynchronous counter interface.
Used to execute asynchronous tasks, e.g.
 
Defines the type of an attribute exposed by ManagedAttribute or Property.
The AUTH protocol adds a layer of authentication to JGroups.
AuthHeader is a holder object for the token that is passed from the joiner to the coordinator
Abstract AuthToken class used by implementations of AUTH, e.g.
Maintains an approximation of an average of positive (>= 0) values in a window and adding new values at random indices.
This class is lock-less, at the expense of incorrect reads and writes (by multiple threads), but the noise of these errors should be negligible.
Measures min and max in addition to average
All messages up the stack have to go through a barrier (read lock, RL).
Encodes and decodes to and from Base64 notation.
A Base64.InputStream will read data from another java.io.InputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.
A Base64.OutputStream will write data to another java.io.OutputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.
Implements storing of messages in a hashmap and sending of single messages and message batches.
Base interface for all counters
Implements DataOutput in a generic manner, so that subclasses can implement specific behavior.
A common superclass for all Message implementations.
Abstract class for a server handling sending, receiving and connection management.
Shared base class for TCP protocols
Batches messages near the top of the stack.
 
A message that contains a batch of messages.
Class (similar to (and partly copied from) java.nio.Bits) containing helper methods to encode variables (e.g.
Bounded input stream.
Bounded linked hashmap; used by SEQUENCER
A bounded subclass of LinkedList, oldest elements are removed once max capacity is exceeded.
Broadcast PING.
Class which joins the bridge cluster and send and receives messages to/from other sites.
Base class for message buffers.
 
Class to do scattering reads or gathering writes on a sequence of ByteBuffer instances.
Pluggable way to collect messages and send them as batches
Helper for profiling of bundler methods.
 
Byte array with an offset and length.
Note that the underlying byte array must not be changed as long as this instance is in use !
Implements DataInput over a byte[] buffer.
Implements DataOutput over a byte[] buffer.
Class using ByteBuffer and implementing DataInput.
Class using ByteBuffer and implementing DataOutput.
A Message containing a byte array as payload.
Simple cache which maintains keys and value.
 
 
Sample implementation of SSL_KEY_EXCHANGE.SessionVerifier
Allows a listener to be notified when an important channel lifecycle event occurs.
 
Creates a cluster and then randomly has members leave and join for a given time.
 
Maintains a mapping between magic IDs and classes (defined in jg-magic-map.xml), and between protocol IDs and protocol classes (defined in jg-protocol-ids.xml).
Protocol which clears a set of flags in the down or up direction for all messages
Defines common operations for clients (TCP or NIO)
Client part of GMS.
Tools to (1) dump all protocols and the names of their attributes (ManagedAttribute) and properties (Property) to file, (2) read from that file (old) and compare whether old is a proper subset of new, ie.
Utility class with CompletableFuture and CompletionStage useful methods.
Tags components inside of protocols.
A message composed of multiple messages.
Compresses the payload of a message.
 
MPSC queue, based on a ring buffer implementation which optionally blocks on adding or removing of elements.
Concurrent queue which offers optional blocking on empty / full.
A condition variable with methods for (timed) waiting and signalling
The task if this class is to setup and configure the protocol stack.
 
The ConfigurationFactory is a factory that returns a protocol stack configurator.
Represents a connection to a peer
Connection callbacks
Interface returning a supplier which can be called to create an instance
Coordinator role of the Group MemberShip (GMS) protocol.
Protocol which is used by CounterService to provide a distributed atomic counter
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A function to update AsyncCounter or SyncCounter.
Provides a distributed counter (similar to AtomicLong) which can be atomically updated across a cluster.
 
A view representing the counter's state.
Maintains credits for a unicast destination.
Maintains credits for senders, when credits fall below 0, a sender blocks until new credits have been received.
An extension interface allowing to plug in a custom log provider.
// TODO: Document this
Implementation of daisy chaining.
 
 
The default implementation of RouteStatusListener
Default implementation, ignores service names
Thread factory mainly responsible for naming of threads.
Delays incoming/outgoing messages by a random number of milliseconds (range between 0 and n where n is determined by the user) and nanoseconds (constant amount).
Collects actions by key and executes them - if a predicate is true - every N ms.
Subclass of View with a null members field.
Key exchange based on Diffie-Hellman-Merkle (https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange).
Diffie-Hellman is used between a member and a key server (the coordinator) to obtain a session key (only known to the key server and the joiner) which is used by the key server to encrypt the shared secret symmetric (group) key and by the requester to decrypt the group key it gets in the response of the key server.
 
 
The server-side component handling probe requests
 
A message digest containing - for each member - the highest seqno delivered (hd) and the highest seqno received (hr).
Keeps track of one members plus its highest delivered and received seqnos
Executor which runs the command on the caller's thread
Discards up or down messages based on a percentage; e.g., setting property 'up' to 0.1 causes 10% of all up messages to be discarded.
Discards a message whose sequence number (in the payload, as a Long) matches seqno 2 times, before passing it down.
The Discovery protocol retrieves the initial membership (used by GMS and MERGE3) by sending discovery requests.
Records samples (e.g.
 
 
 
 
Shared whiteboard, each new instance joins the same group.
Encapsulates information about a draw command.
Protocol which drops up or down messages according to user-defined filters
Duplicates outgoing or incoming messages by copying them
 
Copy of Table.
Simple TCP server replying back to client with connection information (peer address etc)
A Message without a payload; optimized for sending only headers (e.g.
Super class of symmetric (SYM_ENCRYPT) and asymmetric (ASYM_ENCRYPT) encryption protocols.
 
Event is a JGroups internal class used for inter-stack and intra-stack communication.
Example of a protocol layer.
 
Elements annotated with this annotation are experimental and may get removed from the distribution at any time
Cache which maintains timestamps for keys, and methods to remove/replace expired keys.
Subclass of UUID accommodating additional data such as a flag and a small hashmap.
Base class for all failure detection protocols
 
Simple
Header used by various flow control protocols
Failure detection based on simple heartbeat protocol.
Failure detection based on simple heartbeat protocol.
Failure detection based on simple heartbeat protocol.
 
Failure detection protocol which detects the crash or hanging of entire hosts and suspects all cluster members on those hosts.
 
 
 
Command used to check whether a given host is alive, periodically called
Failure detection protocol based on sockets.
Handles a client connection; multiple client can connect at the same time
 
Failure detection protocol based on TCP connections, successor to FD_SOCK.
 
 
 
 
 
Simple discovery protocol which uses a file on shared storage such as an SMB share, NFS mount or S3.
 
Ring buffer of fixed capacity.
The FixedMemberShipToken object predefines a list of IP addresses and ports that can join the group.
Class copied from BitSet.
Subclass of UUID accommodating additional data such as a flag.
Simple flow control protocol based on a credit system.
The FORK protocol; multiplexes messages to different forks in a stack (https://issues.redhat.com/browse/JGRP-1613).
 
Implementation of a ForkChannel, which is a light-weight channel.
Parses the fork-stacks.xsd schema.
Acts as bottom protocol of a fork-stack.
Protocol stack which maintains the mapping between fork-channel IDs and ForkChannels
Route which forwards all messages to a given site via a given route.
Example: if site HF is reachable via NET1, and NET2 is not directly connected to HF, it needs to have a ForwardConfig with to="HF" and gateway="NET1".
Fragmentation layer.
Fragmentation layer.
Class represents an entry for a message.
Fragmentation protocol which uses less memory to store fragments than FRAG2.
When a message is fragmented, all fragments carry the size of the original message, their offset and length with respect to the original message and a fragment ID (to identify the fragment).
When the first fragment is received, the full message is created and each fragment copies its data into the full message at its offset and length.
 
Fragmentation layer.
 
Base class for all fragmentation protocols.
A message which refers to another message, but only marshals (Streamable.writeTo(DataOutput)) a part of the original message, starting at a given BytesMessage.offset and marshalling only BytesMessage.length bytes.
Given a class, generates code for getters and setters for all attributes and writes it to stdout
Takes a list of methods to profile and generates the Byteman script from them.
Lists all network interfaces on a system
Global is a JGroups internal class defining global variables.
Group membership protocol.
 
 
 
 
Encapsulates data sent between GossipRouter and RouterStub (TCPGOSSIP and TUNNEL)
Router for TCP based group comunication (using layer TCP instead of UDP).
 
 
Types of requests and responses exchanged between GossipRouter and RouterStubs
Subclass of File to iterate through directories and files in a grid
 
Entry point for GridFile and GridInputStream / GridOutputStream
 
 
Sends a message to all members of the group and waits for all responses (or timeout).
Copyright (c) 2005 Brian Goetz and Tim Peierls Released under the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.5) Official home: http://www.jcip.net
Prints the headers of all sent or received messages
Header is a JGroups internal base class for all JGroups headers.
Helper class providing functions to manipulate the headers array in BaseMessage.
Copyright (c) 2005 Brian Goetz and Tim Peierls Released under the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.5) Official home: http://www.jcip.net
Carries random bits of information
Simple protocol to inject an arbitrary view on one or more cluster nodes.
A hashmap where keys have to be ints.
Network-dependent address (Internet).
A channel represents a group communication endpoint (like a socket).
 
An implementation of a DiagnosticsHandler.ProbeHandler for JChannel
 
Discovery protocol using a JDBC connection to a shared database.
New version of JDBC_PING.
Logger that delivers messages to a JDK logger
Registers beans accessed by JMX
Shows how annotations can be used to expose attributes and operations
 
Result of a JOIN request (sent by the GMS client).
Base class for protocols implementing key exchange: a secret key to be used for encryption is exchanged between 2 parties (usually the key server and a new cluster member) securely; ie.
Generates a keystore file that has a SecretKey in it.
JGroups AuthToken Class to for Kerberos v5 authentication.
Support class that implements all the low level Kerberos security calls
 
Policy which picks the new coordinator in a merge from the largest subview.
Cache which doesn't remove elements on remove(), removeAll() or retainAll(), but only removes elements when a configurable size limit has been exceeded.
 
 
List which doesn't remove elements on remove(), removeAll() or retainAll(), but only removes elements when a configurable size limit has been exceeded.
 
 
Lazily names threads: whenever the address or cluster name is changed, all threads are renamed
Handles the leaving of a member from a group.
Interface that defines lifecycle methods.
Discovery protocol for finding members in the local process only.
This is an assertion, checked at startup time.
A local transport is used for sending messages only to single (or all) members of the same host.
Simple logging wrapper for log4j or JDK logging.
Logger that delivers messages to a Log4J2 logger
Factory that creates Log instances.
Message with a long as payload.
Utility class that implements SizeStreamable and LongSupplier to store a long value.
A tuple with a long (primitive) first value
Intercepts individual up messages and creates batches from them, passing the batches up.
Indicates that a public method or a field (any visibility) in an MBean class defines an MBean attribute.
Indicates that a method in an MBean class defines an MBean operation.
MessageProcessingPolicy which processes regular messages and message batches by assigning a max of 1 thread per message from the same sender.
Optional annotation that exposes all public methods in the class hierarchy (excluding Object) as MBean operations.
Represents a membership of a cluster group.
Policy used to determine the new membership after a membership change (join, leave) or a merge.
Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
 
 
Encapsulates data sent with a MERGE_RSP (handleMergeResponse()) and INSTALL_MERGE_VIEW (handleMergeView()).
ID to uniquely identify a merge
Handles merging.
A view that is sent as a result of a cluster merge.
A Message is used to send data to members of a group.
 
 
Represents a message batch; multiple messages from the same sender to the same receiver(s).
 
A cache associating members and messages
Provides synchronous and asynchronous message sending with request-response correlation; i.e., matching responses with the original request.
Factory to create messages.
Policy which decides how to process a received message or message batch.
Class for reading length prefix messages from a channel.
A method call is the JGroups representation of a remote method.
Can be used by RpcDispatcher / MethodCall to invoke a method against a given target object
Find a method given an ID
Extracts all attributes and methods annotated with ManagedAttribute and returns them as a map of names associated with [getter-method/description tuples].
 
Simple flow control protocol based on a credit system.
Address with current time as key.
Generates addresses with current time as key.
A dummy implementation of TP
Uses its own IP multicast socket to send and receive discovery requests/responses.
Class which has all the stats about received/sent messages etc.
A mutable version of Digest.
Generic receiver for a JChannel
Negative AcKnowledgement layer (NAKs).
Negative AcKnowledgement layer (NAKs).
New multicast protocol based on fixed-size xmit windows and message ACKs
Details: https://issues.redhat.com/browse/JGRP-2780
Header used by NAKACK3 and NAKACK4
Header used by NAKACK2
Maintains the mappings between addresses and logical names (moved out of UUID.cache into a separate class)
Generates GraalVM native-image reachability metadata (reachability-metadata.json) from jg-magic-map.xml and jg-protocol-ids.xml.
Base class for NIO clients / servers
Client to access servers based on TCP_NIO2
An NIO based impl of Connection
Reads a peer address from a SocketChannel.
 
A Message with a (heap-based or direct) ByteBuffer as payload.

Note that the payload of an NioMessage must not be modified after sending it (ie.
Server for sending and receiving messages via NIO channels.
Bundler which doesn't bundle :-) Can be used to measure the diff between bundling and non-bundling (e.g.
Detects sends during processing of incoming messages and sets flag Message.TransientFlag.DONT_BLOCK to prevent blocking the incoming thread on a send.
JIRA: https://issues.redhat.com/browse/JGRP-2772
A DiagnosticsHandler.ProbeHandler that does not use reflection.
Provides a no-op Log implementation.
 
Override ObjectInputStream.resolveClass(java.io.ObjectStreamClass) using the passed-in classloader.
A Message with an object as payload.
Wraps a primitive object (e.g.
Wraps an object and its serialized form.
Implementation of AddressGenerator which is configured with an initial value, and after that random values are generated.
Represents an 'owner', which is an address and thread ID
Decorates an output stream (DataOutput) and writes only a subset [start..end] (both indices inclusive) of the original data to the underlying output stream.
Example:
This is the role of a regular member, which has successfully joined the cluster, but is not the coordinator
Injects partitions into a cluster (via injectView()).
 
MessageProcessingPolicy which passes all messages and message batches up directly (on the same thread).
MessageProcessingPolicy which passes regular messages and message batches up directly (on the same thread), but passes OOB messages to the thread pool.
Persistent Discovery Cache.
 
Queues messages per destination ('null' is a special destination).
Protocol measuring latency between stacks.
 
Represents a physical (as opposed to logical) address
The PING protocol retrieves the initial membership by mcasting a discovery request (via the multicast capable transport) to all current cluster members
Encapsulates information about a cluster node, e.g.
Used to send discovery requests and responses
A policy implementation checks that a condition is met or throws an exception if not.
Any element annotated with this annotation is made available as a preview feature and is not yet production-grade.
Implementation of AdminHandler which invokes all DiagnosticsHandler.ProbeHandler instances in the instance and returns the collected responses as strings
A queue with many producers and consumers.
 
Maintains averages for time values measured between Profiler.start() and Profiler.stop().
Generic helper for profiling of methods.
 
 
Allows a thread to submit an asynchronous request and to wait for the result.
MembershipChangePolicy which promotes the newest member when the existing coordinator leaves.
Iterates over all concrete Protocol classes and creates tables with Protocol's properties.
Represents a Protocol property assigned from corresponding field in JGroups properties file.
Represents a property converter that takes an input from corresponding field in JGroups properties file as a String and converts it to a matching Java type.
Groups a set of standard PropertyConverter(s) supplied by JGroups.
 
 
 
 
 
Creates a list of Policy objects from a comma-separated list of classnames
 
The Protocol class provides a set of common services for protocol layers.
Parses and encapsulates the specification for 1 protocol of the protocol stack, e.g.
Provides hook(s) that are called when a protocol has been created
A ProtocolStack manages a number of protocols layered above each other.
 
 
 
 
 
 
Demo of a client which connects to a server (PubServer) and sends it messages which are forwarded to all connected clients
Demo which starts an NioServer that accepts messages from clients (PubClient) and forwards them to all connected clients
Discovery protocol based on Rackspace Cloud Files storage solution
A thread safe Rackspace ReST client
Implementation of SiteMasterPicker which picks random site masters / routes to site masters
 
Measures incoming and outgoing rates: messages/sec, bytes/sec.
Protocol which sends at most max_bytes in time_period milliseconds.
Rate limiter based credits (max_bytes).
Receiver interface to be used with BaseServer instances
Defines the callbacks that are invoked when messages, views etc are received
An impl of Receiver.
Protocols annotated with this annotation should upgrade to a newer version (e.g.
Deprecated, for removal: This API element is subject to removal in a future version.
Functionality replaced by PerDestinationBundler, see https://redhat.atlassian.net/browse/JGRP-3027
Keeps a reference to another object
Methods to get/set attributes and invoke operations of a given instance.
Matches the IP address or logical name of a joiner against a regular expression and accepts or rejects based on pattern matching
Common superclass for RELAY2 and RELAY3
Design: ./doc/design/RELAY2.txt and at https://github.com/belaban/JGroups/blob/master/doc/design/RELAY2.txt.
Provides relaying of messages between autonomous sites.
Design: ./doc/design/RELAY2.txt and at https://github.com/belaban/JGroups/blob/master/doc/design/RELAY2.txt.
JIRA: https://issues.redhat.com/browse/JGRP-1433
Parses and maintains the RELAY2 configuration (in memory)
 
Forwards to site 'to' via route 'gateway'.
 
 
 
Demos RELAY.
Demos RELAY.
Base class for all relayers
Maintains bridges and routing table.
Maintains bridges and routing table.
Header for RELAY2 and RELAY3
Base class for reliable multicast protocols
 
Base class for reliable unicast protocols
 
A X509ExtendedKeyManager which uses a @FileWatcher to check for changes.
A X509ExtendedTrustManager which uses a @FileWatcher to check for changes.
Cache which allows for replication factors per data items; the factor determines how many replicas of a key/value we create across the cluster.
See doc/design/ReplCache.txt for details.
 
 
 
 
 
GUI demo of ReplCache
Implementation of a ConcurrentMap with replication of the contents across a cluster.
 
Uses the ReplicatedHashMap building block, which subclasses java.util.HashMap and overrides the methods that modify the hashmap (e.g.
An implementation of Map which replicates its contents to all members of a cluster.
A tree-like structure that is replicated across several members.
 
 
Abstract class for a unicast or multicast request
Framework to send requests and receive matching responses (on request ID).
The header for RequestCorrelator messages
 
 
Class which captures a bunch of options relevant to remote method invocation or message sending
Table for storing requests associated with monotonically increasing sequence numbers (seqnos).
 
A DynamicMBean wrapping an annotated object instance and exposing attributes annotated with @ManagedAttribute and operations annotated with @ManagedOperation.
 
 
 
 
 
Manages resources such as multicast addresses and multicast ports, and TCP ports.
 
A handback object shipped as a parameter to RequestHandler.handle(Message,Response).
Similar to AckCollector, but collects responses from cluster members, not just acks.
Enum capturing the various response modes for RPCs
Manages responses for the discovery protocol.
 
Reverses the next N messages that are received.
 
Class which maintains the destination address for sending messages to a given site, and the bridge channel to do so.
Client stub that talks to a remote GossipRouter via blocking or non-blocking TCP
 
 
 
Manages a list of RouterStubs (e.g.
Gets notified when a site comes up or goes down
This class allows a programmer to invoke remote methods in all (or single) group members and optionally wait for the return value(s).
Keeps track of stats for sync and async unicasts and multicasts
 
 
 
Class that represents a response from a communication
Interface defining when a group request is done.
Contains responses from all members.
Protocol which implements synchronous messages (https://issues.redhat.com/browse/JGRP-1389).
 
 
Measures round-trip times (RTT) between nodes
Header to measure round-trip times (in nanoseconds) for sync RPCs (https://issues.redhat.com/browse/JGRP-2604)
Runs a given function in a loop (in a separate thread) until it is stopped
 
A bitset of missing messages with a fixed size.
Implementation of total order protocol using a sequencer.
 
Implementation of total order protocol using a sequencer_uum.
 
Serializes the entire message (including payload, headers, flags and destination and src) into the payload of another message that's then sent.
Common super class for CoordGmsImpl and ParticipantGmsImpl
Loopback transport shared by all channels within the same VM.
Discovery protocol running over SHARED_LOOPBACK only.
Reorders messages by buffering them and shuffling the result after TIMEOUT ms.
ShutdownRejectedExecutionHandler is a decorator RejectedExecutionHandler used in all JGroups ThreadPoolExecutor(s).
Address with a site suffix
 
Special address with the UUID part being 0: identifies the current (relay) coordinator of a given site.
Allows an implementation to pick a SiteMaster or a Route from a list (if multiple site masters are enabled).
Maintains the status of sites (up, down, undefined).
 
Implementation of SiteAddress
Protocol which lists how many messages have been received by size: https://issues.redhat.com/browse/JGRP-2893
Don't use this layer in a production stack since the costs are high; only use for debugging/diagnosis.
Records number of messages sent/received based on size
Wraps another input stream and counts the bytes it reads from it.
Extends OutputStream but only counts bytes written, doesn't actually write anything.
Interface implementing Streamable and returning the size of the marshalled object.
Logger that delivers messages to a SLF4J logger
Protocol trying to print message payloads as strings
Factory to create various types of sockets and NIO selector provider and channels.
Periodically fetches some attributes and writes them to a file (https://issues.redhat.com/browse/JGRP-2402)
Key exchange based on SSL sockets.
 
 
SslContextFactory.
 
Computes the broadcast messages that are stable; i.e., have been delivered by all members.
 
 
STATE streams the state (written to an OutputStream) to the state requester in chunks (defined by chunk_size).
STATE_SOCK has the state provider create a server socket to which the state requester connects and from which the latter reads the state.
STATE_TRANSFER protocol based on byte array transfer.
Wraps data for a state request/response.
StateTransferException is thrown to indicate a failure of a state transfer between cluster members.
Contains parameters for state transfer.
Encapsulates the result of a state transfer.
Provides various stats
Picks a local site master or a route based on the sender and caches the decision.
Protocol which provides STOMP (https://stomp.github.io/) support.
 
 
 
 
 
Chat client using STOMP to talk to other clients
STOMP client to access the STOMP [1] protocol.
 
 
Simple STOMP demo client.
Implementations of Streamable can add their state directly to the output stream, enabling them to bypass costly serialization
Base class for state transfer protocols which use streaming (or chunking) to transfer state between two members.
 
Default message processing policy.
Cache which keeps a timestamp and counter for every key.
 
Log (using SuppressCache) which suppresses (certain) messages from the same member for a given time
 
Thrown if a message is sent to a suspected member.
Discovery protocol based on Openstack Swift (object storage).
A thread safe Swift client
Manages the switch from one protocol configuration to another one (same JGroups version).
Listener which gets notifications about the progress of a switch
Encrypts and decrypts communication in JGroups by using a secret key shared by all cluster members.
A synchronous counter interface
A store for elements (typically messages) to be retransmitted or delivered.
 
TCP based protocol.
Protocol using TCP/IP to send and receive messages.
Common base class for TCP based clients and servers
Client for servers based on TCP
Blocking IO (BIO) connection.
Deprecated, for removal: This API element is subject to removal in a future version.
Use PerDestinationBundler with use_single_sender_thread = false instead (https://redhat.atlassian.net/browse/JGRP-3028)
The TCPGOSSIP protocol layer retrieves the initial membership (used by GMS when started by sending event FIND_INITIAL_MBRS down the stack).
The TCPPING protocol defines a static cluster membership.
Class that manages allows to send and receive messages via TCP sockets.
Common functions for all tests
Maintains averages of up- and down-threads
Helper class to create regular or virtual threads.
 
Thread pool based on ThreadPoolExecutor
Protocol measuring delivery times.
Timer-like interface which allows for execution of tasks.
Implementation of TimeScheduler.
 
 
Provides a coarse grained time service.
Component to configure TLS in protocols (TCP and TUNNEL).
 
Lists the types of client auth
Demonstrates the membership service.
Provides a cache of all sites and their members (addresses, IP addresses, site masters etc) in a network of autonomous sites.
Originally written to be a demo for TOTAL order (code to be written by a student).
Generic transport - specific implementations should extend this class.
Base class for TP which captures fields and accessors.
Generic transport header, used by TP.
 
This bundler adds all (unicast or multicast) messages to a queue until max size has been exceeded, but does send messages immediately when no other messages are available.
Holds 3 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate holder object for the values, and don't want to pass the values as a list or array.
Replacement for UDP.
 
Holds 2 values, useful when we have a map with a key, but more than 1 value and we don't want to create a separate holder object for the values, and don't want to pass the values as a list or array.
Component which is used on the sender side.
IP multicast transport based on UDP.
Simple flow control protocol based on a credit system.
Intercepts Protocol.up(MessageBatch) and passes up each message of a message batch as a single message.
Unbatches OOB batches when enabled and virtual threads are available.
https://issues.redhat.com/browse/JGRP-2888
Same as MaxOneThreadPerSender, but for OOB message batches, every message of the batch is passed to the thread pool separately (https://issues.redhat.com/browse/JGRP-2800).
Reliable unicast protocol using a combination of positive and negative acks.
 
New unicast protocol based on fixed-size xmit windows and message ACKs
Details: https://issues.redhat.com/browse/JGRP-2843
Header for subclasses of ReliableUnicast, e.g.
Moved out of UNICAST3 into separate class.
Sends a request to a single target destination
Allows a user of fork to define the handling of a message for which no fork stack or fork channel exists.
Thrown if member in different site cannot be contacted; used by RELAY2
Elements annotated with this annotation are unsupported and may get removed from the distribution at any time
Provides a hook to hijack all events received by a certain channel which has installed this UpHandler.
Collection of various utility routines that can not be assigned to other classes.
 
Logical address which is unique over space and time.
Catches SUSPECT events traveling up the stack.
 
 
Double-checks that a suspected member is really dead.
Details: https://issues.redhat.com/browse/JGRP-2558
Design: https://github.com/belaban/JGroups/blob/master/doc/design/VERIFY_SUSPECT2.txt
 
 
We have 5 bits for major and minor version numbers each and 6 bits for the micro version.
Maintains a version number and adds it to all outbound messages.
 
A view is a local representation of the current membership of a group.
Responsible for dispatching JOIN/LEAVE/MERGE requests to the GMS protocol.
ViewIds are used for ordering views (each view has a ViewId and a list of members).
Extracts version and codename from pom.xml and writes them to ./classes/JGROUPS_VERSION.properties
This is an example of using a preshared token that is encrypted using an X509 certificate for authentication purposes.
Annotation to add attributes to the schema created by XMLSchemaGenerator.
Uses XML to configure a protocol stack
 
Annotation to generate an element in the schema created by XMLSchemaGenerator.
Used to include other schemas by XMLSchemaGenerator.
 
A simple replacement for a W3C DOM node.
Iterates over all concrete Protocol classes and creates XML schema used for validation of configuration files.