Class CacheInvalidationPolicy
- java.lang.Object
-
- org.eclipse.persistence.descriptors.invalidation.CacheInvalidationPolicy
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
DailyCacheInvalidationPolicy
,NoExpiryCacheInvalidationPolicy
,TimeToLiveCacheInvalidationPolicy
public abstract class CacheInvalidationPolicy extends java.lang.Object implements java.io.Serializable, java.lang.Cloneable
PUBLIC: A CacheInvalidationPolicy is used to set objects in TopLink's identity maps to be invalid following given rules. CacheInvalidationPolicy is the abstract superclass for all policies used for cache invalidation. By default in EclipseLink, objects do not expire in the cache. Several different policies are available to allow objects to expire. These can be set on the ClassDescriptor.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
isInvalidationRandomized
Allows the timeToLive to be randomized to avoid bottlenecks.static long
NO_EXPIRY
protected java.util.Random
random
Random used for randomized invalidation.protected boolean
shouldRefreshInvalidObjectsOnClone
Determines if expired object registered in the unit of work should be refreshed, default true.protected boolean
shouldUpdateReadTimeOnUpdate
This will represent objects that do not expire.
-
Constructor Summary
Constructors Constructor Description CacheInvalidationPolicy()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.Object
clone()
abstract long
getExpiryTimeInMillis(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Get the next time when this object will become invalidlong
getRemainingValidTime(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Return the remaining life of this objectvoid
initialize(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Allow initialization with the descriptor.boolean
isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: return true if this object is expire, false otherwise.abstract boolean
isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key, long currentTimeMillis)
INTERNAL: return true if this object is expire, false otherwise.boolean
isInvalidationRandomized()
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.void
setIsInvalidationRandomized(boolean isInvalidationRandomized)
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.void
setShouldRefreshInvalidObjectsInUnitOfWork(boolean shouldRefreshInvalidObjectsInUnitOfWork)
Deprecated.since EclipseLink 2.2void
setShouldRefreshInvalidObjectsOnClone(boolean shouldRefreshInvalidObjectsOnClone)
PUBLIC: Set if expired object should be refreshed prior to cloning, default is true.void
setShouldUpdateReadTimeOnUpdate(boolean shouldUpdateReadTime)
PUBLIC: Set whether to update the stored time an object was read when an object is updated.boolean
shouldRefreshInvalidObjectsInUnitOfWork()
Deprecated.since EclipseLink 2.2boolean
shouldRefreshInvalidObjectsOnClone()
PUBLIC: Return if expired object should be refreshed prior to cloning.boolean
shouldUpdateReadTimeOnUpdate()
PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.
-
-
-
Field Detail
-
NO_EXPIRY
public static final long NO_EXPIRY
- See Also:
- Constant Field Values
-
shouldUpdateReadTimeOnUpdate
protected boolean shouldUpdateReadTimeOnUpdate
This will represent objects that do not expire.
-
shouldRefreshInvalidObjectsOnClone
protected boolean shouldRefreshInvalidObjectsOnClone
Determines if expired object registered in the unit of work should be refreshed, default true.
-
isInvalidationRandomized
protected boolean isInvalidationRandomized
Allows the timeToLive to be randomized to avoid bottlenecks.
-
random
protected java.util.Random random
Random used for randomized invalidation.
-
-
Method Detail
-
isInvalidationRandomized
public boolean isInvalidationRandomized()
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.
-
setIsInvalidationRandomized
public void setIsInvalidationRandomized(boolean isInvalidationRandomized)
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.
-
getExpiryTimeInMillis
public abstract long getExpiryTimeInMillis(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Get the next time when this object will become invalid
-
getRemainingValidTime
public long getRemainingValidTime(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Return the remaining life of this object
-
initialize
public void initialize(ClassDescriptor descriptor, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Allow initialization with the descriptor.
-
isInvalidated
public boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: return true if this object is expire, false otherwise.
-
isInvalidated
public abstract boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key, long currentTimeMillis)
INTERNAL: return true if this object is expire, false otherwise.
-
setShouldUpdateReadTimeOnUpdate
public void setShouldUpdateReadTimeOnUpdate(boolean shouldUpdateReadTime)
PUBLIC: Set whether to update the stored time an object was read when an object is updated. When the read time is updated, it indicates to EclipseLink that the data in the object is up to date. This means that cache invalidation checks will occur relative to the new read time. By default, the read time will not be updated when an object is updated. Often it is possible to be confident that the object is up to date after an update because otherwise the update will fail because of the locking policies in use.
-
shouldUpdateReadTimeOnUpdate
public boolean shouldUpdateReadTimeOnUpdate()
PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.
-
setShouldRefreshInvalidObjectsInUnitOfWork
@Deprecated public void setShouldRefreshInvalidObjectsInUnitOfWork(boolean shouldRefreshInvalidObjectsInUnitOfWork)
Deprecated.since EclipseLink 2.2PUBLIC: Set if expired object registered in the unit of work should be refreshed, default is true.
-
setShouldRefreshInvalidObjectsOnClone
public void setShouldRefreshInvalidObjectsOnClone(boolean shouldRefreshInvalidObjectsOnClone)
PUBLIC: Set if expired object should be refreshed prior to cloning, default is true. Applies to Protected Entities and UnitOfWork registration.
-
shouldRefreshInvalidObjectsInUnitOfWork
@Deprecated public boolean shouldRefreshInvalidObjectsInUnitOfWork()
Deprecated.since EclipseLink 2.2PUBLIC: Return if expired object registered in the unit of work should be refreshed.- See Also:
shouldRefreshInvalidObjectsOnClone()
-
shouldRefreshInvalidObjectsOnClone
public boolean shouldRefreshInvalidObjectsOnClone()
PUBLIC: Return if expired object should be refreshed prior to cloning. Applies to Protected Entities and UnitOfWork registration.
-
clone
public java.lang.Object clone()
- Overrides:
clone
in classjava.lang.Object
-
-