org.atmosphere.plugin.cluster.shoal
Class ShoalFilter

java.lang.Object
  extended by org.atmosphere.plugin.cluster.shoal.ShoalFilter
All Implemented Interfaces:
com.sun.enterprise.ee.cms.core.CallBack, BroadcastFilter, BroadcastFilterLifecycle<String>, ClusterBroadcastFilter<String>

public class ShoalFilter
extends Object
implements com.sun.enterprise.ee.cms.core.CallBack, ClusterBroadcastFilter<String>

Clustering support based on ShoalFilter (http://shoal.dev.java.net)

Author:
Jean-francois Arcand

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.atmosphere.cpr.BroadcastFilter
BroadcastFilter.BroadcastAction
 
Constructor Summary
ShoalFilter()
           
ShoalFilter(Broadcaster bc)
          Create a ShoalFilter based filter.
ShoalFilter(Broadcaster bc, String containerName)
          Create a ShoalFilter based filter.
ShoalFilter(Broadcaster bc, String containerName, String clusterName)
          Create a ShoalFilter based filter.
 
Method Summary
 void destroy()
          Shutown the cluster.
 BroadcastFilter.BroadcastAction filter(Object o)
          Every time a message gets broadcasted, make sure we update the cluster.
 Broadcaster getBroadcaster()
          Return the current Broadcaster
 void init()
          Preapre the cluter.
 void processNotification(com.sun.enterprise.ee.cms.core.Signal signal)
          Receive notification from the cluster.
 void setBroadcaster(Broadcaster bc)
          Set the current Broadcaster to use when a cluster event happens.
 void setClusterName(String clusterName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ShoalFilter

public ShoalFilter()

ShoalFilter

public ShoalFilter(Broadcaster bc)
Create a ShoalFilter based filter.

Parameters:
bc - the Broadcaster to use when receiving update from the cluster.

ShoalFilter

public ShoalFilter(Broadcaster bc,
                   String containerName)
Create a ShoalFilter based filter.

Parameters:
bc - the Broadcaster to use when receiving update from the cluster.
containerName - the current WebServer'name.

ShoalFilter

public ShoalFilter(Broadcaster bc,
                   String containerName,
                   String clusterName)
Create a ShoalFilter based filter.

Parameters:
bc - the Broadcaster to use when receiving update from the cluster.
containerName - the current WebServer'name.
clusterName - the cluster's group name.
Method Detail

setClusterName

public void setClusterName(String clusterName)
Specified by:
setClusterName in interface ClusterBroadcastFilter<String>

init

public void init()
Preapre the cluter.

Specified by:
init in interface BroadcastFilterLifecycle<String>

destroy

public void destroy()
Shutown the cluster. TODO: Not sure we should close the cluster.

Specified by:
destroy in interface BroadcastFilterLifecycle<String>

processNotification

public void processNotification(com.sun.enterprise.ee.cms.core.Signal signal)
Receive notification from the cluster.

Specified by:
processNotification in interface com.sun.enterprise.ee.cms.core.CallBack
Parameters:
signal -

filter

public BroadcastFilter.BroadcastAction filter(Object o)
Every time a message gets broadcasted, make sure we update the cluster.

Specified by:
filter in interface BroadcastFilter
Parameters:
o - the message to broadcast.
Returns:
The same message.

getBroadcaster

public Broadcaster getBroadcaster()
Return the current Broadcaster

Specified by:
getBroadcaster in interface ClusterBroadcastFilter<String>

setBroadcaster

public void setBroadcaster(Broadcaster bc)
Set the current Broadcaster to use when a cluster event happens.

Specified by:
setBroadcaster in interface ClusterBroadcastFilter<String>
Parameters:
bc -


Copyright © 2010 SUN Microsystems. All Rights Reserved.