public class ClusterAwarePathStoreObjectPersister
extends org.springframework.extensions.surf.persister.PathStoreObjectPersister
implements com.hazelcast.core.MessageListener
The current implementation uses a simple broadcast message that informs other cluster nodes to invalidate specific path objects (remove them) from the persister cache. This is enough to deal with addition (caching of nulls), removal and modification of model objects relating to site and user dashboards and the site configuration object.
ClusterAwareRequestContextcacheLock, noncachableObjectTypes, objectCacheXML_EXTpathPrefix, store| Constructor and Description |
|---|
ClusterAwarePathStoreObjectPersister() |
| Modifier and Type | Method and Description |
|---|---|
void |
init(org.springframework.extensions.surf.ModelPersistenceContext context)
Override the persister init method to perform one time init of the Hazelcast cluster node.
|
protected org.springframework.extensions.surf.ModelObject |
newObject(org.springframework.extensions.surf.ModelPersistenceContext context,
java.lang.String objectTypeId,
java.lang.String objectId,
boolean addToCache) |
void |
onMessage(java.lang.String message)
Hazelcast MessageListener implementation - called when a message is received from a cluster node
|
void |
pushMessage(org.alfresco.web.site.ClusterAwarePathStoreObjectPersister.ClusterMessage message)
Push message out to the cluster - multicast or direct TCP depending on Hazelcast config.
|
boolean |
removeObject(org.springframework.extensions.surf.ModelPersistenceContext context,
java.lang.String objectTypeId,
java.lang.String objectId) |
boolean |
saveObject(org.springframework.extensions.surf.ModelPersistenceContext context,
org.springframework.extensions.surf.ModelObject modelObject) |
void |
setHazelcastInstance(com.hazelcast.core.HazelcastInstance hazelcastInstance) |
void |
setHazelcastTopicName(java.lang.String hazelcastTopicName) |
cacheGet, cacheGet, cachePut, cachePut, cacheRemove, cacheRemove, getAllObjects, getCache, getObject, getObjectByPath, getObjectId, invalidateCache, saveObjects, setNoncachableObjectTypes, useCacheForTypecreateCache, generatePath, getAllObjectsByFilter, getObjectsFromPaths, getPathPrefix, getTimestamp, hasObject, newObjectcreateObject, getObjectTypeId, getPathPrefix, hasReadOnlyStore, isModelObject, loadObjectAndDependants, reset, setPathPrefix, setStore, toStringsetCache, setCacheCheckDelay, setCacheMaxSizepublic ClusterAwarePathStoreObjectPersister()
public void setHazelcastInstance(com.hazelcast.core.HazelcastInstance hazelcastInstance)
hazelcastInstance - The HazelcastInstance cluster beanpublic void setHazelcastTopicName(java.lang.String hazelcastTopicName)
hazelcastTopicName - The topic name used for messaging between cluster nodespublic void init(org.springframework.extensions.surf.ModelPersistenceContext context)
init in interface org.springframework.extensions.surf.ModelObjectPersisterinit in class org.springframework.extensions.surf.persister.PathStoreObjectPersisterpublic boolean saveObject(org.springframework.extensions.surf.ModelPersistenceContext context,
org.springframework.extensions.surf.ModelObject modelObject)
throws org.springframework.extensions.surf.exception.ModelObjectPersisterException
saveObject in interface org.springframework.extensions.surf.ModelObjectPersistersaveObject in class org.springframework.extensions.surf.persister.PathStoreObjectPersisterorg.springframework.extensions.surf.exception.ModelObjectPersisterExceptionpublic boolean removeObject(org.springframework.extensions.surf.ModelPersistenceContext context,
java.lang.String objectTypeId,
java.lang.String objectId)
throws org.springframework.extensions.surf.exception.ModelObjectPersisterException
removeObject in interface org.springframework.extensions.surf.ModelObjectPersisterremoveObject in class org.springframework.extensions.surf.persister.AbstractStoreObjectPersisterorg.springframework.extensions.surf.exception.ModelObjectPersisterExceptionprotected org.springframework.extensions.surf.ModelObject newObject(org.springframework.extensions.surf.ModelPersistenceContext context,
java.lang.String objectTypeId,
java.lang.String objectId,
boolean addToCache)
throws org.springframework.extensions.surf.exception.ModelObjectPersisterException
newObject in class org.springframework.extensions.surf.persister.AbstractStoreObjectPersisterorg.springframework.extensions.surf.exception.ModelObjectPersisterExceptionpublic void pushMessage(org.alfresco.web.site.ClusterAwarePathStoreObjectPersister.ClusterMessage message)
msg - The message to be sentpublic void onMessage(java.lang.String message)
onMessage in interface com.hazelcast.core.MessageListenermessage - String message dataCopyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.