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.
ClusterAwareRequestContext
cacheLock, noncachableObjectTypes, objectCache, tenantObjectCache
XML_EXT
pathPrefix, 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(com.hazelcast.core.Message 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, setTenantObjectCache, useCacheForType
createCache, generatePath, getAllObjectsByFilter, getObjectsFromPaths, getPathPrefix, getTimestamp, hasObject, newObject
createObject, getObjectTypeId, getPathPrefix, hasReadOnlyStore, isModelObject, loadObjectAndDependants, reset, setPathPrefix, setStore, toString
setCache, setCacheCheckDelay, setCacheMaxSize
public 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.ModelObjectPersister
init
in class org.springframework.extensions.surf.persister.PathStoreObjectPersister
public 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.ModelObjectPersister
saveObject
in class org.springframework.extensions.surf.persister.PathStoreObjectPersister
org.springframework.extensions.surf.exception.ModelObjectPersisterException
public 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.ModelObjectPersister
removeObject
in class org.springframework.extensions.surf.persister.AbstractStoreObjectPersister
org.springframework.extensions.surf.exception.ModelObjectPersisterException
protected 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.AbstractStoreObjectPersister
org.springframework.extensions.surf.exception.ModelObjectPersisterException
public void pushMessage(org.alfresco.web.site.ClusterAwarePathStoreObjectPersister.ClusterMessage message)
msg
- The message to be sentpublic void onMessage(com.hazelcast.core.Message message)
onMessage
in interface com.hazelcast.core.MessageListener
message
- String message dataCopyright © 2005 - 2013 Alfresco Software, Inc. All Rights Reserved.