abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
abstract class SoftRegion implements ArpSiteRegion, Cache, SoftRegionMBean { /** * Default no-operation implementation of {@link ArpSiteRegionListener}. * Will be replaced by cluster listener if cluster extension is installed * * @author vlsergey {at} gmail {dot} com */ private static final class NoOpListener implements ArpSiteRegionListener { @Override public void onClear() { // noop } @Override public void onRemove(Object key) { // noop } } private AtomicLong clears = new AtomicLong(0); private AtomicLong hits = new AtomicLong(0); protected final AtomicLong lastTimestamp = new AtomicLong(); protected volatile ArpSiteRegionListener listener = new NoOpListener(); private final Map<Object, Object> map; private AtomicLong miss = new AtomicLong(0); private final String regionName; /** * @param regionName * The name of the cache region. * @param useHardReferences * <code>true</code> if cache must use hard references instead of * {@link java.lang.ref.SoftReference}s. <code>false</code> * otherwise. */ @SuppressWarnings( "unchecked" ) SoftRegion(String regionName, boolean useHardReferences) { this .regionName = regionName; if (useHardReferences) { map = new ConcurrentHashMap<Object, Object>(); } else { map = Collections .<Object, Object> synchronizedMap( new ReferenceMap( ReferenceMap.SOFT, ReferenceMap.SOFT, true )); } } @Override public void clear() { map.clear(); clears.incrementAndGet(); listener.onClear(); } @Override public boolean contains(Object key) { Object value = map.get(key); if (value != null ) { // to let JVM know it shall not GC it because of timeout value.hashCode(); return true ; } return false ; } @Override public void destroy() throws CacheException { map.clear(); } protected Object get(Object key) { final Object result = map.get(key); if (result == null ) { miss.incrementAndGet(); } else { hits.incrementAndGet(); } return result; } @Override public long getBuildCalls() { return miss.get(); } @Override public int getCacheSize() { return map.size(); } @Override public long getClearCalls() { return clears.get(); } @Override public long getElementCountInMemory() { return map.size(); } @Override public long getElementCountOnDisk() { return 0; } @Override public long getGetCalls() { return hits.get() + miss.get(); } @Override public long getHits() { return hits.get(); } @Override public int getHitsPercent() { long hits = this .hits.get(); long total = hits + miss.get(); if (total == 0) { return 0; } return ( int ) (hits * 100 / total); } @Override public String getName() { return regionName; } @Override public long getSizeInMemory() { return -1; } @Override public int getTimeout() { return Timestamper.ONE_MS * 60000; // ie. 60 seconds } @Override public long nextTimestamp() { final long next = Timestamper.next(); lastTimestamp.set(next); return next; } protected void put(Object key, Object value) { map.put(key, value); } @Override public void remove(Object key) { map.remove(key); listener.onRemove(key); } @Override public void setListener(ArpSiteRegionListener listener) { this .listener = listener; } @Override public Map<?, ?> toMap() { return Collections.unmodifiableMap(map); } @Override public String toString() { return "SoftReferenceCache [" + regionName + ", " + this .getSizeInMemory() + ']' ; } } * This source code was highlighted with Source Code Highlighter .
* This source code was highlighted with Source Code Highlighter .
- class SoftEntityRegion extends SoftTransactionalDataRegion implements
- EntityRegion {
- / **
- * @param regionName
- * The name of the cache region.
- * /
- SoftEntityRegion (String regionName,
- CacheDataDescription cacheDataDescription) {
- super (regionName, cacheDataDescription);
- }
- @Override
- public EntityRegionAccessStrategy buildAccessStrategy (AccessType accessType) {
- return new EntityRegionAccessStrategy () {
- @Override
- public boolean afterInsert (Object key, Object value, Object version) {
- return false ;
- }
- @Override
- public boolean afterUpdate (Object key, Object value,
- Object currentVersion, Object previousVersion, SoftLock lock ) {
- SoftEntityRegion. this .remove (key);
- return false ;
- }
- @Override
- public void evict (Object key) {
- SoftEntityRegion. this .remove (key);
- }
- @Override
- public void evictAll () {
- SoftEntityRegion. this .clear ();
- }
- @Override
- public Object get (Object key, long txTimestamp) {
- return SoftEntityRegion. this .get (key);
- }
- @Override
- public EntityRegion getRegion () {
- return SoftEntityRegion. this ;
- }
- @Override
- public boolean insert (Object key, Object value, Object version) {
- return false ;
- }
- @Override
- public SoftLock lockItem (Object key, Object version) {
- return null ;
- }
- @Override
- public SoftLock lockRegion () {
- return null ;
- }
- @Override
- public boolean putFromLoad (Object key, Object value,
- long txTimestamp, Object version) {
- SoftEntityRegion. this .put (key, value);
- return true ;
- }
- @Override
- public boolean putFromLoad (Object key, Object value,
- long txTimestamp, Object version, boolean minimalPutOverride) {
- if (minimalPutOverride && contains (key)) {
- return false ;
- }
- SoftEntityRegion. this .put (key, value);
- return true ;
- }
- @Override
- public void remove (Object key) {
- SoftEntityRegion. this .remove (key);
- }
- @Override
- public void removeAll () {
- SoftEntityRegion. this .clear ();
- }
- @Override
- public void unlockItem (Object key, SoftLock lock ) {
- SoftEntityRegion. this .remove (key);
- }
- @Override
- public void unlockRegion (SoftLock lock ) {
- SoftEntityRegion. this .clear ();
- }
- @Override
- public boolean update (Object key, Object value,
- Object currentVersion, Object previousVersion) {
- SoftEntityRegion. this .remove (key);
- return false ;
- }
- };
- }
- }
* This source code was highlighted with Source Code Highlighter .
- class TimestampRegionImpl extends SoftRegion implements ArpSiteTimestampRegion {
- / **
- * Default no-operation implementation of
- * {@link ArpSiteTimestampRegionListener}. Will be replaced by cluster
- * listener if cluster extension is installed
- *
- * @author vlsergey {at} gmail {dot} com
- * /
- private static final class NoOpListener implements
- ArpSiteTimestampRegionListener {
- @Override
- public void onInvalidate (Serializable space) {
- // no op
- }
- @Override
- public void onPreInvalidate (Serializable space) {
- // no op
- }
- }
- private ArpSiteTimestampRegionListener listener = new NoOpListener ();
- / **
- * @param regionName
- * The name of the region.
- * /
- TimestampRegionImpl (String regionName) {
- super (regionName, true );
- }
- @Override
- public void evict (Object key) {
- super.remove (key);
- }
- @Override
- public void evictAll () {
- super.clear ();
- }
- @Override
- public Object get (Object key) {
- return super.get (key);
- }
- @Override
- public void invalidate (Serializable space) {
- Long ts = Long.valueOf (nextTimestamp ());
- super.put (space, ts);
- }
- @Override
- public void preInvalidate (Serializable space) {
- Long ts = Long.valueOf (nextTimestamp () + getTimeout ());
- super.put (space, ts);
- }
- @Override
- public void put (Object key, Object value) {
- super.put (key, value);
- final Serializable space = (Serializable) key;
- final Long timestamp = (Long) value;
- final boolean inFuture = timestamp.longValue ()> lastTimestamp.get ();
- if (inFuture) {
- listener.onPreInvalidate (space);
- } else {
- listener.onInvalidate (space);
- }
- }
- @Override
- public void setTimstampListener (
- ArpSiteTimestampRegionListener timestampListener) {
- this .listener = timestampListener;
- }
- }
Source: https://habr.com/ru/post/91333/
All Articles