org.jgroups.protocols.rules
Class SUPERVISOR

java.lang.Object
  extended by org.jgroups.stack.Protocol
      extended by org.jgroups.protocols.rules.SUPERVISOR

public class SUPERVISOR
extends Protocol

Protocol which supervises other protocols. Essentially a rule engine, where rule conditions are checked periodically, triggering (optional) actions. Example: start failure detection in FD is it isn't running

https://issues.jboss.org/browse/JGRP-1557

Since:
3.3
Author:
Bela Ban

Field Summary
protected static java.lang.String CLASS
           
protected  java.lang.String config
           
protected  java.util.List<EventHandler> event_handlers
           
protected  BoundedList<java.lang.String> executions
           
protected static java.lang.String INTERVAL
           
protected  Address local_addr
           
protected static java.lang.String NAME
           
protected  int num_event_handlers
           
protected static java.lang.String RULE
           
protected  java.util.Map<java.lang.String,Tuple<Rule,java.util.concurrent.Future<?>>> rules
           
protected static java.lang.String RULES
           
protected  TimeScheduler timer
           
protected  View view
           
 
Fields inherited from class org.jgroups.stack.Protocol
down_prot, ergonomics, id, log, name, stack, stats, up_prot
 
Constructor Summary
SUPERVISOR()
           
 
Method Summary
 void addCondition(java.lang.String cond)
           
 void destroy()
          This method is called on a Channel.close().
 java.lang.Object down(Event evt)
          An event is to be sent down the stack.
 java.lang.String dumpRules()
           
 java.lang.String executions()
           
 Address getLocalAddress()
           
 int getNumRules()
           
 View getView()
           
protected  void handleView(View view)
           
 void init()
          Called after instance has been created (null constructor) and before protocol is started.
 void installRule(long interval, Rule rule)
          Installs a new rule
 void installRule(long interval, java.lang.String classname)
           
 void installRule(java.lang.String name, long interval, Rule rule)
          Installs a new rule
 void installRule(java.lang.String name, long interval, java.lang.String classname)
           
protected static void match(java.lang.String expected_name, java.lang.String name, boolean is_element)
           
protected  void parseConfig(java.lang.String filename)
           
protected  void parseRule(org.w3c.dom.Node root)
           
protected  void parseRules(java.io.InputStream input)
           
 void register(EventHandler handler)
           
 void uninstallRule(java.lang.String name)
           
 void unregister(EventHandler handler)
           
 java.lang.Object up(Event evt)
          An event was received from the layer below.
 
Methods inherited from class org.jgroups.stack.Protocol
dumpStats, enableStats, getConfigurableObjects, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getName, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, printStats, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStatistics, resetStats, setDownProtocol, setErgonomics, setId, setLevel, setProtocolStack, setSocketFactory, setUpProtocol, setValue, setValues, start, statsEnabled, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

local_addr

protected Address local_addr

view

protected volatile View view

timer

protected TimeScheduler timer

executions

protected final BoundedList<java.lang.String> executions

config

protected java.lang.String config

rules

protected final java.util.Map<java.lang.String,Tuple<Rule,java.util.concurrent.Future<?>>> rules

event_handlers

protected final java.util.List<EventHandler> event_handlers

num_event_handlers

protected volatile int num_event_handlers

RULES

protected static final java.lang.String RULES
See Also:
Constant Field Values

RULE

protected static final java.lang.String RULE
See Also:
Constant Field Values

NAME

protected static final java.lang.String NAME
See Also:
Constant Field Values

CLASS

protected static final java.lang.String CLASS
See Also:
Constant Field Values

INTERVAL

protected static final java.lang.String INTERVAL
See Also:
Constant Field Values
Constructor Detail

SUPERVISOR

public SUPERVISOR()
Method Detail

getLocalAddress

public Address getLocalAddress()

getView

public View getView()

executions

public java.lang.String executions()

addCondition

public void addCondition(java.lang.String cond)

getNumRules

public int getNumRules()

dumpRules

public java.lang.String dumpRules()

register

public void register(EventHandler handler)

unregister

public void unregister(EventHandler handler)

init

public void init()
          throws java.lang.Exception
Description copied from class: Protocol
Called after instance has been created (null constructor) and before protocol is started. Properties are already set. Other protocols are not yet connected and events cannot yet be sent.

Overrides:
init in class Protocol
Throws:
java.lang.Exception - Thrown if protocol cannot be initialized successfully. This will cause the ProtocolStack to fail, so the channel constructor will throw an exception

destroy

public void destroy()
Description copied from class: Protocol
This method is called on a Channel.close(). Does some cleanup; after the call the VM will terminate

Overrides:
destroy in class Protocol

installRule

public void installRule(long interval,
                        Rule rule)
Installs a new rule

Parameters:
interval - Number of ms between executions of the rule
rule - The rule

installRule

public void installRule(java.lang.String name,
                        long interval,
                        Rule rule)
Installs a new rule

Parameters:
name - The name of the rule
interval - Number of ms between executions of the rule
rule - The rule

installRule

public void installRule(java.lang.String name,
                        long interval,
                        java.lang.String classname)
                 throws java.lang.Exception
Throws:
java.lang.Exception

installRule

public void installRule(long interval,
                        java.lang.String classname)
                 throws java.lang.Exception
Throws:
java.lang.Exception

uninstallRule

public void uninstallRule(java.lang.String name)

down

public java.lang.Object down(Event evt)
Description copied from class: Protocol
An event is to be sent down the stack. The layer may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the layer may need to add a header to it (or do nothing at all) before sending it down the stack using down_prot.down(). In case of a GET_ADDRESS event (which tries to retrieve the stack's address from one of the bottom layers), the layer may need to send a new response event back up the stack using up_prot.up().

Overrides:
down in class Protocol

up

public java.lang.Object up(Event evt)
Description copied from class: Protocol
An event was received from the layer below. Usually the current layer will want to examine the event type and - depending on its type - perform some computation (e.g. removing headers from a MSG event type, or updating the internal membership list when receiving a VIEW_CHANGE event). Finally the event is either a) discarded, or b) an event is sent down the stack using down_prot.down() or c) the event (or another event) is sent up the stack using up_prot.up().

Overrides:
up in class Protocol

handleView

protected void handleView(View view)

parseConfig

protected void parseConfig(java.lang.String filename)
                    throws java.lang.Exception
Throws:
java.lang.Exception

parseRules

protected void parseRules(java.io.InputStream input)
                   throws java.lang.Exception
Throws:
java.lang.Exception

parseRule

protected void parseRule(org.w3c.dom.Node root)
                  throws java.lang.Exception
Throws:
java.lang.Exception

match

protected static void match(java.lang.String expected_name,
                            java.lang.String name,
                            boolean is_element)
                     throws java.lang.Exception
Throws:
java.lang.Exception


Copyright © 1998-2012 Bela Ban / Red Hat. All Rights Reserved.