|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jboss.cache.loader.FileCacheLoader
public class FileCacheLoader
Simple file-based CacheLoader implementation. Nodes are directories, attributes of a node is a file in the directory
Field Summary | |
---|---|
static java.lang.String |
DATA
TreeCache data file. |
static java.lang.String |
DIR_SUFFIX
TreeCache directory suffix. |
protected StripedLock |
lock
|
Constructor Summary | |
---|---|
FileCacheLoader()
|
Method Summary | |
---|---|
void |
commit(java.lang.Object tx)
Commits the transaction. |
void |
create()
|
void |
destroy()
|
boolean |
exists(Fqn fqn)
Returns true if the CacheLoader has a node with a Fqn . |
java.util.Map |
get(Fqn fqn)
Returns all keys and values from the persistent store, given a fully qualified name. |
java.util.Set |
getChildrenNames(Fqn fqn)
Returns a set of children node names as Strings. |
protected java.util.Map |
loadAttributes(Fqn fqn)
|
byte[] |
loadEntireState()
Loads the entire state from the filesystem and returns it as a byte buffer. |
byte[] |
loadState(Fqn subtree)
Fetch a portion of the state for this cache from secondary storage (disk, DB) and return it as a byte buffer. |
protected void |
loadStateFromFilessystem(Fqn fqn,
java.io.ObjectOutputStream out)
Do a preorder traversal: visit the node first, then the node's children |
void |
prepare(java.lang.Object tx,
java.util.List modifications,
boolean one_phase)
Prepares a list of modifications. |
void |
put(Fqn fqn,
java.util.Map attributes)
Puts all entries of the map into the existing map of the given node, overwriting existing keys, but not clearing the existing map before insertion. |
void |
put(Fqn fqn,
java.util.Map attributes,
boolean erase)
|
java.lang.Object |
put(Fqn fqn,
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)
Applies all modifications to the backend store. |
void |
remove(Fqn fqn)
Removes the given node and all its subnodes. |
java.lang.Object |
remove(Fqn fqn,
java.lang.Object key)
Removes the given key and value from the attributes of the given node. |
void |
removeData(Fqn fqn)
Removes all attributes from a given node, but doesn't delete the node itself or any subnodes. |
void |
rollback(java.lang.Object tx)
Rolls the transaction back. |
void |
setCache(TreeCache c)
Sets the TreeCache that is maintaining this CacheLoader. |
void |
setConfig(java.util.Properties props)
Sets the configuration. |
void |
setRegionManager(RegionManager manager)
Sets the RegionManager this object should use to manage
marshalling/unmarshalling of different regions using different
classloaders. |
void |
start()
|
void |
stop()
|
protected void |
storeAttributes(Fqn fqn,
java.util.Map attrs)
|
void |
storeEntireState(byte[] state)
Stores the state given as a byte buffer to the filesystem. |
void |
storeState(byte[] state,
Fqn subtree)
Store the given portion of the cache tree's state in secondary storage. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final StripedLock lock
public static final java.lang.String DATA
public static final java.lang.String DIR_SUFFIX
Constructor Detail |
---|
public FileCacheLoader()
Method Detail |
---|
public void setConfig(java.util.Properties props)
CacheLoader
Service.create()
and Service.start()
.
setConfig
in interface CacheLoader
props
- a collection of configuration propertiespublic void setCache(TreeCache c)
CacheLoader
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.
setCache
in interface CacheLoader
c
- The cache on which this loader workspublic void create() throws java.lang.Exception
create
in interface org.jboss.system.Service
java.lang.Exception
public void start() throws java.lang.Exception
start
in interface org.jboss.system.Service
java.lang.Exception
public void stop()
stop
in interface org.jboss.system.Service
public void destroy()
destroy
in interface org.jboss.system.Service
public java.util.Set getChildrenNames(Fqn fqn) throws java.lang.Exception
CacheLoader
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.
getChildrenNames
in interface CacheLoader
fqn
- The FQN of the parent
java.lang.Exception
public java.util.Map get(Fqn fqn) throws java.lang.Exception
CacheLoader
get
in interface CacheLoader
public boolean exists(Fqn fqn) throws java.lang.Exception
CacheLoader
Fqn
.
exists
in interface CacheLoader
java.lang.Exception
public java.lang.Object put(Fqn fqn, java.lang.Object key, java.lang.Object value) throws java.lang.Exception
CacheLoader
put
in interface CacheLoader
java.lang.Exception
public void put(Fqn fqn, java.util.Map attributes) throws java.lang.Exception
CacheLoader
Map.putAll(java.util.Map extends K, ? extends V>)
.
If the node does not exist, all parent nodes from the root down are created automatically
put
in interface CacheLoader
fqn
- The fully qualified name of the nodeattributes
- A Map of attributes. Can be null
java.lang.Exception
public void put(Fqn fqn, java.util.Map attributes, boolean erase) throws java.lang.Exception
java.lang.Exception
public void put(java.util.List modifications) throws java.lang.Exception
CacheLoader
put
in interface CacheLoader
modifications
- Listjava.lang.Exception
public java.lang.Object remove(Fqn fqn, java.lang.Object key) throws java.lang.Exception
CacheLoader
remove
in interface CacheLoader
java.lang.Exception
public void remove(Fqn fqn) throws java.lang.Exception
CacheLoader
remove
in interface CacheLoader
java.lang.Exception
public void removeData(Fqn fqn) throws java.lang.Exception
CacheLoader
removeData
in interface CacheLoader
java.lang.Exception
public void prepare(java.lang.Object tx, java.util.List modifications, boolean one_phase) throws java.lang.Exception
CacheLoader
tx
(tx is the key)
prepare
in interface CacheLoader
tx
- The transaction, just used as a hashmap keymodifications
- Listone_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
java.lang.Exception
public void commit(java.lang.Object tx) throws java.lang.Exception
CacheLoader
tx
and commit that
transaction. Non-transactional CacheLoaders could simply write the data
that was previously saved transiently under the given tx
key, to (for example) a file system (note this only holds if the previous
prepare() did not define one_phase=true
commit
in interface CacheLoader
tx
- transaction to commit
java.lang.Exception
public void rollback(java.lang.Object tx)
CacheLoader
tx
and roll back that
transaction.
rollback
in interface CacheLoader
tx
- transaction to roll backpublic byte[] loadEntireState() throws java.lang.Exception
loadEntireState
in interface CacheLoader
java.lang.Exception
public byte[] loadState(Fqn subtree) throws java.lang.Exception
ExtendedCacheLoader
ExtendedCacheLoader.storeState(byte[], Fqn)
.
loadState
in interface ExtendedCacheLoader
subtree
- Fqn naming the root (i.e. highest level parent) node of
the subtree for which state is requested.
java.lang.Exception
TreeCache.activateRegion(String)
public void storeEntireState(byte[] state) throws java.lang.Exception
storeEntireState
in interface CacheLoader
state
-
java.lang.Exception
public void storeState(byte[] state, Fqn subtree) throws java.lang.Exception
ExtendedCacheLoader
subtree
,
then no special behavior is required. Otherwise, ensure that
the state is integrated under the given subtree
. Typically
in the latter case subtree
would be the Fqn of the buddy
backup region for
a buddy group; e.g.
If the the transferred state had Fqns starting with "/a" and
subtree
was "/_BUDDY_BACKUP_/192.168.1.2:5555" then the
state should be stored in the local persistent store under
"/_BUDDY_BACKUP_/192.168.1.2:5555/a"
storeState
in interface ExtendedCacheLoader
state
- the state to storesubtree
- Fqn naming the root (i.e. highest level parent) node of
the subtree included in state
. If the Fqns
of the data included in state
are not
already children of subtree
, then their
Fqns should be altered to make them children of
subtree
before they are persisted.
java.lang.Exception
public void setRegionManager(RegionManager manager)
ExtendedCacheLoader
RegionManager
this object should use to manage
marshalling/unmarshalling of different regions using different
classloaders.
NOTE: This method is only intended to be used
by the TreeCache
instance this cache loader is
associated with.
setRegionManager
in interface ExtendedCacheLoader
manager
- the region manager to use, or null
.protected void loadStateFromFilessystem(Fqn fqn, java.io.ObjectOutputStream out) throws java.lang.Exception
fqn
- Start nodeout
-
java.lang.Exception
protected java.util.Map loadAttributes(Fqn fqn) throws java.lang.Exception
java.lang.Exception
protected void storeAttributes(Fqn fqn, java.util.Map attrs) throws java.lang.Exception
java.lang.Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |