All Classes and Interfaces
Class
Description
Collects acks from a number of nodes, waits for all acks.
Keeps track of messages received from various senders.
Keeps track of ACKs from receivers for each message.
Called by retransmitter thread whenever a message needs to be re-sent
to a destination.
Counterpart of AckSenderWindow.
ACK-based sliding window for a sender.
Subclass of
UUID which adds a string as payload.Abstract address.
Callback to provide custom addresses.
Cache which removes its elements after a certain time
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.
All messages up the stack have to go through a barrier (read lock, RL).
Shared class for TCP connection tables.
Used to be notified about connection establishment and teardown.
Used for message reception.
Shared base class for tcpip protocols
Trivial object that represents a block event.
A bounded subclass of LinkedList, oldest elements are removed once max capacity is exceeded.
Broadcast PING.
Beanshell (www.beanshell.org) interpreter class.
Buffer with an offset and length.
Simple cache which maintains keys and value.
Simple causal demo where each member bcast a consecutive letter from the
alphabet and picks the next member to transmit the next letter.
This is a central executor service where each request is sent to the coordinator
for either a task or a current waiting thread.
Implementation of a locking protocol which acquires locks by contacting the coordinator.
A channel represents a group communication endpoint (like BSD datagram sockets).
Thrown if an operation is attemped on a closed channel.
This class represents the super class for all exception types thrown by
JGroups.
Deprecated.
Might get removed in 3.0.
Allows a listener to be notified when important channel events occur.
Class which implements
ChannelListenerThrown if an operation is attemped on an unconnected channel.
This class will be replaced with the class that read info
from the magic number configurator that reads info from the xml file.
Client part of GMS.
The Command patttern (see Gamma et al.).
Compresses the payload of a message.
Attempt at writing a fast transfer queue, which is bounded.
The task if this class is to setup and configure the protocol stack.
The ConfigurationFactory is a factory that returns a protocol stack configurator.
Manages incoming and outgoing TCP connections.
Coordinator role of the Group MemberShip (GMS) protocol.
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.
Implementation of daisy chaining.
Class will be utilized
Maintains a pool of sequence numbers of messages that need to be retransmitted.
Default implementation, ignores service names
Thread factory mainly responsible for naming of threads.
Implementation of
TimeScheduler by extending
ScheduledThreadPoolExecutor to keep tasks sorted.Delays incoming/outgoing messages by a random number of milliseconds (range between 0 and n
where n is determined by the user).
Discards 2 JOIN-REQs then accepts 1, then discards 2 more and so on
Represents an array of deprecated Protocol properties
A message digest, which is used by the PBCAST layer for gossiping (also used by NAKACK for
keeping track of current seqnos for all members).
Class keeping track of the lowest and highest sequence numbers delivered, and the highest
sequence numbers received, per member.
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 layer retrieves the initial membership (used by the
GMS when started by sending event FIND_INITIAL_MBRS down the stack).
Deprecated.
Succeessor is
LockService.This class represents the lock to be released.
This class represents the lock
This class represents the lock that has to be marked as multilocked
This class represents the lock to be released.
Provides the abstraction of a java.util.LinkedList that is replicated at several
locations.
Uses the DistributedQueue building block.
A tree-like structure that is replicated across several members.
Demo showing the DistributedTree class.
Shared whiteboard, each new instance joins the same group.
Same as Draw but using 2 channels: one for view changes (control channel) and the other one for drawing
(data channel).
Encapsulates information about a draw command.
Replicates the whiteboard demo by intercepting central AWT event queue and mcasting events to
all members.
Duplicates outgoing or incoming messages by copying them
ENCRYPT layer.
Used for inter-stack and intra-stack communication.
Example of a protocol layer.
This is the base protocol used for executions.
A
CompletionService that uses a supplied ExecutionService
to execute tasks.This class is to be used to pick up execution requests and actually run
them.
This is a jgroups implementation of an ExecutorService, where the consumers
are running on any number of nodes.
This is basically a copy of the FutureTask in java.util.concurrent but
added serializable to it.
Synchronization control for FutureTask.
This is copied from class which
contains RunnableAdapter.
Sorts 2 byte arrys into a larger byte array
Defines an event class for the execution of an entity.
Elements annotated with this annotation are experimental and may get removed from the distribution at any time
Extends ByteArrayOutputStream, but exposes the internal buffer.
ExtendedMessageListener has additional callbacks for:
partial state transfer - http://jira.jboss.com/jira/browse/JGRP-118
streaming state transfer - http://jira.jboss.com/jira/browse/JGRP-89
Extends Receiver, plus the partial state transfer methods.
Simple flow control protocol based on a credit system.
Header used by various flow control protocols
Failure detection based on simple heartbeat protocol.
Failure detection based on simple heartbeat protocol.
Protocol which uses InetAddress.isReachable() to check whether a given host
is up or not, taking 1 argument; the host name of the host to be pinged.
Protocol which uses an executable (e.g.
Simple failure detection protocol.
Failure detection protocol based on sockets.
Deprecated.
Will be removed together with the Multiplexer in 3.0
Simple discovery protocol which uses a file on shared storage such as an SMB share, NFS mount or S3.
The FixedMemberShipToken object predefines a list of IP addresses and ports that can join the
group.
Class copied from
BitSet.Simple flow control protocol based on a credit system.
Flush, as it name implies, forces group members to flush their pending messages while blocking
them to send any additional messages.
Fragmentation layer.
Fragmentation layer.
A listener that is called back when a future is done.
Lists all network interfaces on a system
Represents a GetState event.
Globals used by JGroups packages.
Group membership protocol.
Encapsulates data sent between GossipRouter and GossipClient
Router for TCP based group comunication (using layer TCP instead of UDP).
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
Adopted from Java Concurrency in Practice.
Implementation of
TimeScheduler.Simple task wrapper, always executed by at most 1 thread.
Example of a protocol layer.
Abstract base class for all headers to be added to a Message.
Open addressing based implementation of a hashmap (not supporting the Map interface though) for message
headers.
Implementation of UTO-TCP as designed by EPFL.
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
Adopted from Java Concurrency in Practice.
Simple class that holds an immutable reference to another object (or to
null).Interface which returns a time series, one value at a time calling next()
Network-dependent address (Internet).
JChannel is a pure Java implementation of Channel.
Deprecated.
Might get removed in 3.0.
Discovery protocol using a JDBC connection to a shared database.
Logger that delivers messages to a JDK logger
Shows how annotations can be used to expose attributes and operations
Result of a JOIN request (sent by the GMS client).
Listener generating XML output suitable to be processed by JUnitReport.
Generates a keystore file that has a SecretKey in it.
Cache which doesn't remove elements on remove(), removeAll() or retainAll(), but only removes elements when a
configurable size limit has been exceeded.
Hash set 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
This is an assertion, checked at startup time.
Base locking protocol, handling most of the protocol communication with other instances.
Deprecated.
Thrown by the
DistributedLockManager.unlock(Object, Object, boolean) method if a lock is only locally released, because it is locked
by multiple DistributedLockManagers.This exception indicated that lock manager refused to give a lock on
some resource.
This exception indicated that lock manager refused to release a lock on
some resource.
LockService is the main class for to use for distributed locking functionality.
Demos the LockService
Simple logging wrapper for log4j or JDK logging.
Logger that delivers messages to a Log4J logger
Factory that creates
Log instances.Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.
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.
Deprecated.
Optional annotation that exposes all public methods in the class
hierarchy (excluding Object) as MBean operations.
This is an example of using a preshared token that is encrypted using an MD5/SHA hash for
authentication purposes.
Class to keep track of Addresses.
Allows a listener to be notified when group membership changes.
This class provides multiplexing possibilities for
MembershipListener
instances.Class which listens on a server socket for memcached clients, reads the requests, forwards them to an instance of
PartitionedHashMap and sends the response.
Server process which listens for memcached requests and forwards them to an instance of PartitionedHashMap.
Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
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()).
The coordinator attaches a small header with its view to each (or every nth) message.
ID to uniquely identify a merge
Handles merging.
A view that is sent as a result of a merge.
A Message encapsulates data sent to members of a group.
Provides synchronous and asynchronous message sending with request-response
correlation; i.e., matching responses with the original request.
Allows a listener to be notified when a message arrives.
This class provides multiplexing possibilities for
MessageListener
instances.A method call is the JGroups representation of a remote method.
Simple flow control protocol based on a credit system.
Uses its own IP multicast socket to send and receive discovery requests/responses.
Deprecated.
Sends a request to multiple destinations.
A mutable version of Digest (which is immutable
Deprecated.
Allows registration/deregistrator of multiplexed handlers by mux id.
Header that identifies the target handler for multiplexed dispatches.
Header used for multiplexing and de-multiplexing between service components on top of a Multiplexer (Channel)
A multiplexed message dispatcher.
A request correlator that adds a mux header to incoming and outgoing messages.
A multiplexed message dispatcher.
Allows up handler multiplexing.
Simple receiver which buffers all messages
Negative AcKnowledgement layer (NAKs).
Keeps track of messages according to their sequence numbers.
Returned by
MuxUpHandler when a message is received with a specific MuxHeader, but no corresponding handler is registered.Response filter that reject any
NoMuxHandler responses.Deprecated.
Will be pulled in 3.0, use a JChannel directly instead
Demoes the NotificationBus (without caching).
A sub-interface of a Future, that allows for listeners to be attached so that observers can be notified when the
future completes.
Represents the owner of a lock.
Hashmap which distributes its keys and values across the cluster.
Uses arrays to store hash values of addresses, plus addresses.
Subclass of
UUID which adds a string as payload.Implementation of a locking protocol which acquires locks by contacting all of the nodes of a cluster.
Measures the time for a message to travel from the channel to the transport
Deprecated.
Deprecated.
Represents a physical (as opposed to logical) address
The PING protocol layer retrieves the initial membership (used by the GMS when started
by sending event FIND_INITIAL_MBRS down the stack).
Encapsulates information about a cluster node, e.g.
A ProtocolStackConfigurator for the old style properties.
This protocol will provide message sending and receiving prioritization.
This Header class is used in conjunction with the PRIO protocol to prioritize message sending/receiving
Priority values are from 0 to 255 where 0 is the highest priority
Example of setting a message priority:
// Create a message to send to everyone
Message message = new Message( null, null, messagePayload );
// Add the priority protocol header
PrioHeader header = new PrioHeader( 1 );
short protocolId = ClassConfigurator.getProtocolId(PRIO.class);
message.putHeader( protocolId, header);
Allows to time execution of 'named' statements, counts number of times called and total
execution time.
Allows a thread to submit an asynchronous request and to wait for the result.
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.
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.
A ProtocolStack manages a number of protocols layered above each other.
Keeps track of the number os times init()/destroy() and start()/stop have been called.
Generic class to test one or more protocol layers directly.
Redirects incoming TCP connections to other hosts/ports.
Deprecated.
Use
Receiver instead, this class will be removed in JGroups 3.0Elements are added at the tail and removed from the head.
Used in conjunction with QuoteServer: a client is member of a group of quote servers which replicate
stock quotes among themselves.
Example of a replicated quote server.
This retransmitter is specialized in maintaining ranges of seqnos, e.g.
Protocol which sends at most max_bytes in time_period milliseconds.
Defines the callbacks that are invoked when messages, views etc are received on a channel
Matches the IP address or logical name of a joiner against a regular expression and accepts or rejects based on
pattern matching
Simple relaying protocol: RELAY is added to the top of the stack, creates a channel to a bridge cluster,
and - if coordinator - relays all multicast messages via the bridge cluster to the remote cluster.
Contains local and remote views, and UUID information
Demos RELAY.
Demos RELAY.
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.
See doc/design/ReplCache.txt for details.
Uses arrays to store hash values of addresses, plus addresses.
GUI demo of ReplCache
Subclass of a
ConcurrentHashMap 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.
A tree-like structure that is replicated across several members.
Graphical view of a ReplicatedTree
Abstract class for a unicast or multicast request
Framework to send requests and receive matching responses (matching on
request ID).
The header for RequestCorrelator messages
Class which captures a bunch of options relevant to remote method invocation or message sending
A DynamicMBean wrapping an annotated object instance.
Manages resources such as multicast addresses and multicast ports, and TCP
ports.
Similar to AckCollector, but collects responses, not just acks.
A store for messages to be retransmitted or delivered.
Abstract class of a retransmitter.
Retransmit command (see Gamma et al.) used to retrieve missing messages
Client stub that talks to a remote GossipRouter
This class allows a programmer to invoke remote methods in all (or single)
group members and optionally wait for the return value(s).
Used to provide a Marshaller2 interface to a Marshaller.
class that represents a response from a communication
Interface defining when a group request is done.
Contains responses from all members.
Discovery protocol using Amazon's S3 storage.
Implements https://jira.jboss.org/jira/browse/JGRP-822, which allows for concurrent delivery of messages from the
same sender based on scopes.
Keeps track of a single message to retransmit
Keeps track of a range of messages to be retransmitted.
Maintains the highest received and highest delivered seqno per member
Implementation of total order protocol using a sequencer.
Common super class for CoordGmsImpl and ParticipantGmsImpl
Class used for service state communication between Multiplexers
Encapsulates a state returned by
Channel.receive(), as requested by
Channel.getState(s) previously.Deprecated.
Loopback transport shared by all channels within the same VM.
Reorders messages by buffering them and shuffling the result after TIMEOUT ms.
ShutdownRejectedExecutionHandler is a decorator RejectedExecutionHandler used
in all JGroups ThreadPoolExecutor(s).
This is an example of using a preshared token for authentication purposes.
Tests one or more protocols independently.
Interface for a class which determines if a message should be
dropped or not.
Address with a cluster name.
Protocol which prints out the real size of a message.
Simple Multicast ACK protocol.
Factory to create various types of sockets.
Computes the broadcast messages that are stable; i.e., have been received by
all members.
STATE_TRANSFER protocol based on byte array transfer.
Wraps data for a state request/response.
StateTransferException is thrown to indicate failure of
state transfer between cluster members.Contains parameters for state transfer.
Manages retransmission timeouts.
Provides various stats
Protocol which provides STOMP (http://stomp.codehaus.org/) 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
STREAMING_STATE_TRANSFER, as its name implies, allows a
streaming state transfer between two channel instances.Represents an event returned by
channel.receive(), as a result
of another channel instance requesting a state from this channel.Represents an event returned by
channel.receive(), as requested by
channel.getState() previously.Thrown if a message is sent to a suspected member.
Represents a suspect event.
TCP based protocol.
Transport using NIO
Used for message reception.
The TCPGOSSIP protocol layer retrieves the initial membership (used by the
GMS when started by sending event FIND_INITIAL_MBRS down the stack).
The TCPPING protocol layer retrieves the initial membership in answer to the
GMS's FIND_INITIAL_MBRS event.
An object that can alter the state of a thread when it receives a callback from a
ThreadManager notifying
it that the thread has been created or released from use.An object that manages threads and provides callbacks to a
ThreadDecorator to allow it to alter their state.ThreadPoolExecutor subclass that implements @{link ThreadManager}.
Thrown if members fail to respond in time.
Timer-like interface which allows for execution of tasks.
The interface that dynamic tasks
(
TimeScheduler.scheduleWithDynamicInterval(org.jgroups.util.TimeScheduler.Task)) must implementImplementation of
TimeScheduler.Simple task wrapper, always executed by at most 1 thread.
Demonstrates the membership service.
Subclass of
UUID which adds 3 strings (siteId, rackId and machineId)as payload.Originally written to be a demo for TOTAL order (code to be written by a student).
Demonstration of TOTAL_TOKEN protocol stack implementing total
order.
Generic transport - specific implementations should extend this abstract class.
Used when the transport is shared (singleton_name is not null).
Generic transport header, used by TP.
Defines a very small subset of the functionality of a channel,
essentially only the methods for sending and receiving messages.
Lighweight representation of the VectorTime clock suitable for network transport
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.
This adapter introduces simple two-phase voting on a specified decree.
Wrapper of the decree to voting decree.
Implementations of this interface can participate in two-phase voting process.
IP multicast transport based on UDP.
Simple flow control protocol based on a credit system.
Trivial object that represents a block event.
Reliable unicast layer.
The following types and fields are serialized:
Reliable unicast layer.
The following types and fields are serialized:
Sends a request to a single target destination
Vector which cannot be modified
Elements annotated with this annotation are unsupported and may get removed from the distribution at any time
Provides a way of taking over a channel's tasks.
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.
We're using the scheme described at http://www.jboss.com/index.html?module=bbinvalid input: '&op'=viewtopicinvalid input: '&t'=77231
for major, minor and micro version numbers.
A view is a local representation of the current membership of a group.
Periodically sends the view to the group.
Demos the reception of views using a PullPushAdapter.
ViewIds are used for ordering views (each view has a ViewId and a list of members).
This exception is thrown when voting listener cannot vote on the
specified decree.
VoteResultProcessor
Applications that use the VotingAdapter and/or TwoPhaseVotingAdapter can pass an implementation of this down the vote
calls, to intercept processing of the VoteResults returned by other nodes.
Voting adapter provides a voting functionality for an application.
Class that represents a result of local voting on the failed node.
This class represents the result of local voting.
Implemetations of this interface are able to participate in voting process.
Shared whiteboard: members are represented by rectangles that contain their names and the OS/arch of
the machine they are working on.
This is an example of using a preshared token that is encrypted using an X509 certificate for
authentication purposes.
Iterates over all concrete Protocol classes and creates XML schema used for validation of
configuration files.