All Classes and Interfaces

Class
Description
 
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.
 
Abstract address.
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.
Senses the network configuration when it is initialized (in init()) and sends a CONFIG event up and down the stack.
JMX wrapper for BARRIER protocol.
All messages up the stack have to go through a barrier (read lock, RL).
JMX interface for BARRIER protocol.
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.
Beanshell (www.beanshell.org) interpreter class.
 
Buffer with an offset and length.
 
 
 
 
 
Implements casual ordering layer using vector clocks.
 
 
 
Simple causal demo where each member bcast a consecutive letter from the alphabet and picks the next member to transmit the next letter.
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.
A channel factory that removes hardwiring of calls to create JGroups channels.
Allows a listener to be notified when important channel events occur.
Class which implements ChannelListener
Thrown 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.
Maintains mapping between magic number and class
Client part of GMS.
The Command patttern (see Gamma et al.).
Compresses the payload of a message.
 
The task if this class is to setup and configure the protocol stack.
Parses and encapsulates the specification for 1 protocol of the protocol stack, e.g.
The ConfigurationFactory is a factory that returns a protocol stack configurator.
Manages incoming and outgoing TCP connections.
Manages incoming and outgoing TCP connections.
 
 
 
ObjectInputStream which sets a contact classloader for reading bytes into objects.
Coordinator role of the Group MemberShip (GMS) protocol.
Class will be utilized
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).
Discards 2 JOIN-REQs then accepts 1, then discards 2 more and so on
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 up.
 
 
The Discovery protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
 
Deprecated.
Use ReplicatedHashMap instead
 
Uses the DistributedHashtable building block.
Distributed lock manager is responsible for maintaining the lock information consistent on all participating nodes.
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.
Dummy transport, returns a fake local address and responds to CONNECT.
Duplicates outgoing or incoming messages by copying them
ENCRYPT layer.
 
Used for inter-stack and intra-stack communication.
Example of a protocol layer.
Trivial object that represents an exit event.
 
 
 
 
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.
 
 
 
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.
 
 
 
 
Blocking queue which can only process 1 message per service concurrently, establishing FIFO order per sender.
 
The FixedMemberShipToken object predefines a list of IP addresses and Ports that can join the group.
 
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.
 
 
 
Lists all network interfaces on a system
Represents a GetState event.
Globals used by JGroups packages.
 
Group membership protocol.
 
 
 
 
Demos that tries to graphically illustrating the gossip (or pbcast) protocol: every sender periodically sends a DRAW command to a random subset of the group members.
 
Local stub for clients to access one (or more) GossipRouters.
Encapsulates data sent between GossipRouter and GossipClient
Router for TCP based group comunication (using layer TCP instead of UDP).
 
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.
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.
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.
 
JChannelFactory creates pure Java implementations of the Channel interface.
 
 
 
Implementation of the transport protocol using the Java Message Service (JMS).
Simple Address representing the JMS node ID or JMS topic group.
 
Result of a JOIN request (sent by the GMS client).
Generates a keystore file that has a SecretKey in it.
Lazily names threads: whenever the address or cluster name is changed, all threads are renamed
 
LockManager represents generic lock manager that allows obtaining and releasing locks on objects.
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.
Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.
 
Uses magic numbers for class descriptors
Uses magic numbers for class descriptors
Title: JGroups Communications Description: Contact me at mail@filip.net Copyright: Copyright (c) 2002 Company: www.filip.net
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.
 
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 to each (or every nth) message.
 
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.
 
 
Uses its own IP multicast socket to send and receive discovery requests/responses.
 
The multiplexer allows multiple channel interfaces to be associated with one underlying instance of JChannel.
A mutable version of Digest (which is immutable
Multiplexer channel is a lightweight version of a regular channel where multiple MuxChannel(s) share the same underlying regular channel.
Header used for multiplexing and de-multiplexing between service components on top of a Multiplexer (Channel)
 
Negative AcKnowledgement layer (NAKs).
 
 
Keeps track of messages according to their sequence numbers.
 
NBMessageForm - Message form for non-blocking message reads.
 
This class provides notification sending and handling capability.
 
Demoes the NotificationBus (without caching).
Maintains a pool of ExposedDataOutputStreams.
 
 
Protocol to simulate a partition.
 
Measures the time for a message to travel from the channel to the transport
 
 
 
The PING protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
 
 
 
A ProtocolStackConfigurator for the old style properties.
Maintains a list of ports used on this host, associated with time stamps.
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.
 
The Protocol class provides a set of common services for protocol layers.
 
 
Data holder for protocol data
A ProtocolStack manages a number of protocols layered above each other.
 
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.0
 
Elements 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.
 
Defines the callbacks that are invoked when messages, views etc are received on a channel
 
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.
Deprecated.
Use ReplicatedHashMap instead
 
 
 
A tree-like structure that is replicated across several members.
 
 
Graphical view of a ReplicatedTree
Framework to send requests and receive matching responses (matching on request ID).
The header for RequestCorrelator messages
 
Similar to AckCollector, but collects responses, not just acks.
Maintains a pool of sequence numbers of messages that need to be retransmitted.
Retransmit command (see Gamma et al.) used to retrieve missing messages
Reusable thread class.
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.
Implementation of a priority scheduler.
 
Provides callback for use with a Scheduler.
 
Maintains the highest received and highest delivered seqno per member
 
Implementation of total order protocol using a sequencer.
 
 
Class used for service state communication between Multiplexers
Encapsulates a state returned by Channel.receive(), as requested by Channel.getState(s) previously.
 
Simple flow control protocol.
 
 
Loopback transport shared by all channels within the same VM.
This layer shuffles upcoming messages, put it just above your bottom layer.
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.
 
Protocol which prints out the real size of a message.
Queue as described in http://jira.jboss.com/jira/browse/JGRP-376.
Simple Multicast ACK protocol.
 
 
Computes the broadcast messages that are stable; i.e., have been received by all members.
 
 
 
New STATE_TRANSFER protocol based on PBCAST.
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
 
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
 
 
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}.
Maintains a set of ReusableThreads.
Waits until the buffer has been written to the output stream, or until timeout msecs have elapsed, whichever comes first.
Thrown if members fail to respond in time.
Fixed-delay invalid input: '&' fixed-rate single thread scheduler
The interface that submitted tasks must implement
Demonstrates the membership service.
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.
 
 
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.
 
 
Trivial object that represents a block event.
 
Reliable unicast layer.
 
 
Vector which cannot be modified
 
Provides a way of taking over a channel's tasks.
 
Collection of various utility routines that can not be assigned to other classes.
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.