org.jboss.cache.loader
Class ClusteredCacheLoader

java.lang.Object
  extended by org.jboss.cache.loader.ClusteredCacheLoader
All Implemented Interfaces:
CacheLoader, org.jboss.system.Service

public class ClusteredCacheLoader
extends java.lang.Object
implements CacheLoader

A cache loader that consults other members in the cluster for values. Does not propagate update methods since replication should take care of this. A timeout property is required, a long that specifies in milliseconds how long to wait for results before returning a null.

Author:
Manik Surtani (manik@jboss.org)

Field Summary
protected  TreeCache cache
           
protected  long timeout
           
 
Constructor Summary
ClusteredCacheLoader()
           
 
Method Summary
 void commit(java.lang.Object tx)
          Does nothing.
 void create()
           
 void destroy()
           
 boolean exists(Fqn name)
          Returns true if the CacheLoader has a node with a Fqn.
 java.util.Map get(Fqn name)
          Returns all keys and values from the persistent store, given a fully qualified name.
protected  java.util.Map get0(Fqn name)
           
 java.util.Set getChildrenNames(Fqn fqn)
          Returns a set of children node names as Strings.
 byte[] loadEntireState()
          Returns an empty byte array.
 void prepare(java.lang.Object tx, java.util.List modifications, boolean one_phase)
          Does nothing.
 void put(Fqn name, java.util.Map attributes)
          Does nothing; replication handles put.
 java.lang.Object put(Fqn name, java.lang.Object key, java.lang.Object value)
          Puts a key and value into the attribute map of a given node.
 void put(java.util.List modifications)
          Does nothing; replication handles put.
 void remove(Fqn name)
          Does nothing; replication handles removal.
 java.lang.Object remove(Fqn name, java.lang.Object key)
          Fetches the remove value, does not remove.
 void removeData(Fqn name)
          Does nothing; replication handles removal.
 void rollback(java.lang.Object tx)
          Does nothing.
 void setCache(TreeCache c)
          Sets the TreeCache that is maintaining this CacheLoader.
 void setConfig(java.util.Properties props)
          Sets the configuration.
 void start()
           
 void stop()
           
 void storeEntireState(byte[] state)
          Does nothing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

timeout

protected long timeout

cache

protected TreeCache cache
Constructor Detail

ClusteredCacheLoader

public ClusteredCacheLoader()
Method Detail

setConfig

public void setConfig(java.util.Properties props)
Sets the configuration. A property timeout is used as the timeout value.

Specified by:
setConfig in interface CacheLoader
Parameters:
props - properties to use

setCache

public void setCache(TreeCache c)
Description copied from interface: CacheLoader
Sets the TreeCache that is maintaining this CacheLoader. This method allows this CacheLoader to invoke methods on TreeCache, including fetching additional configuration information. This method is called be called after the CacheLoader instance has been constructed.

Specified by:
setCache in interface CacheLoader
Parameters:
c - The cache on which this loader works

getChildrenNames

public java.util.Set getChildrenNames(Fqn fqn)
                               throws java.lang.Exception
Description copied from interface: CacheLoader
Returns a set of children node names as Strings. All names are relative to this parent Fqn. Returns null if the named node is not found or there are no children. The returned set must not be modifiable. Implementors can use Collections.unmodifiableSet(Set) to make the set unmodifiable.

Specified by:
getChildrenNames in interface CacheLoader
Parameters:
fqn - The FQN of the parent
Returns:
Set a set of children. Returns null if no children nodes are present, or the parent is not present
Throws:
java.lang.Exception

get

public java.util.Map get(Fqn name)
                  throws java.lang.Exception
Description copied from interface: CacheLoader
Returns all keys and values from the persistent store, given a fully qualified name. NOTE that the expected return value of this method has changed from JBossCache 1.2.x and before! This will affect cache loaders written prior to JBossCache 1.3.0 and such implementations should be checked for compliance with the behaviour expected.

Specified by:
get in interface CacheLoader
Returns:
Map keys and values for the given node. Returns null if the node is not found. If the node is found but has no attributes, this method returns an empty Map.
Throws:
java.lang.Exception

get0

protected java.util.Map get0(Fqn name)
                      throws java.lang.Exception
Throws:
java.lang.Exception

exists

public boolean exists(Fqn name)
               throws java.lang.Exception
Description copied from interface: CacheLoader
Returns true if the CacheLoader has a node with a Fqn.

Specified by:
exists in interface CacheLoader
Returns:
true if node exists, false otherwise
Throws:
java.lang.Exception

put

public java.lang.Object put(Fqn name,
                            java.lang.Object key,
                            java.lang.Object value)
                     throws java.lang.Exception
Description copied from interface: CacheLoader
Puts a key and value into the attribute map of a given node. If the node does not exist, all parent nodes from the root down are created automatically. Returns the old value.

Specified by:
put in interface CacheLoader
Throws:
java.lang.Exception

put

public void put(Fqn name,
                java.util.Map attributes)
         throws java.lang.Exception
Does nothing; replication handles put.

Specified by:
put in interface CacheLoader
Parameters:
name - The fully qualified name of the node
attributes - A Map of attributes. Can be null
Throws:
java.lang.Exception

put

public void put(java.util.List modifications)
         throws java.lang.Exception
Does nothing; replication handles put.

Specified by:
put in interface CacheLoader
Parameters:
modifications - A List of modifications
Throws:
java.lang.Exception

remove

public java.lang.Object remove(Fqn name,
                               java.lang.Object key)
                        throws java.lang.Exception
Fetches the remove value, does not remove. Replication handles removal.

Specified by:
remove in interface CacheLoader
Throws:
java.lang.Exception

remove

public void remove(Fqn name)
            throws java.lang.Exception
Does nothing; replication handles removal.

Specified by:
remove in interface CacheLoader
Throws:
java.lang.Exception

removeData

public void removeData(Fqn name)
                throws java.lang.Exception
Does nothing; replication handles removal.

Specified by:
removeData in interface CacheLoader
Throws:
java.lang.Exception

prepare

public void prepare(java.lang.Object tx,
                    java.util.List modifications,
                    boolean one_phase)
             throws java.lang.Exception
Does nothing.

Specified by:
prepare in interface CacheLoader
Parameters:
tx - The transaction, just used as a hashmap key
modifications - List, a list of all modifications within the given transaction
one_phase - Persist immediately and (for example) commit the local JDBC transaction as well. When true, we won't get a CacheLoader.commit(Object) or CacheLoader.rollback(Object) method call later
Throws:
java.lang.Exception

commit

public void commit(java.lang.Object tx)
            throws java.lang.Exception
Does nothing.

Specified by:
commit in interface CacheLoader
Parameters:
tx - transaction to commit
Throws:
java.lang.Exception

rollback

public void rollback(java.lang.Object tx)
Does nothing.

Specified by:
rollback in interface CacheLoader
Parameters:
tx - transaction to roll back

loadEntireState

public byte[] loadEntireState()
                       throws java.lang.Exception
Returns an empty byte array.

Specified by:
loadEntireState in interface CacheLoader
Throws:
java.lang.Exception

storeEntireState

public void storeEntireState(byte[] state)
                      throws java.lang.Exception
Does nothing.

Specified by:
storeEntireState in interface CacheLoader
Throws:
java.lang.Exception

create

public void create()
            throws java.lang.Exception
Specified by:
create in interface org.jboss.system.Service
Throws:
java.lang.Exception

start

public void start()
           throws java.lang.Exception
Specified by:
start in interface org.jboss.system.Service
Throws:
java.lang.Exception

stop

public void stop()
Specified by:
stop in interface org.jboss.system.Service

destroy

public void destroy()
Specified by:
destroy in interface org.jboss.system.Service


Copyright 1998-2005 JBoss Inc . All Rights Reserved.