public void addTypesChangedListener(TypesChangedListener listen) { addListener(listen); }
protected void close(boolean clear) { if (!_closed) { if (clear) clearInternal(); _closed = true; } }
public void close() { close(true); }
public void onTypesChanged(TypesChangedEvent ev) { writeLock(); Collection keys = null; try { if (hasListeners()) fireEvent(ev); keys = keySet(); } finally { writeUnlock(); } QueryKey qk; List removes = null; for (Iterator iter = keys.iterator(); iter.hasNext();) { qk = (QueryKey) iter.next(); if (qk.changeInvalidatesQuery(ev.getTypes())) { if (removes == null) removes = new ArrayList(); removes.add(qk); } } if (removes != null) removeAllInternal(removes); }
public QueryResult get(QueryKey key) { QueryResult o = getInternal(key); if (o != null && o.isTimedOut()) { o = null; removeInternal(key); if (log.isTraceEnabled()) log.trace(s_loc.get("cache-timeout", key)); } if (log.isTraceEnabled()) { if (o == null) log.trace(s_loc.get("cache-miss", key)); else log.trace(s_loc.get("cache-hit", key)); } return o; }
/** * This method is part of the {@link RemoteCommitListener} interface. If * your cache subclass relies on OpenJPA for clustering support, make it * implement <code>RemoteCommitListener</code>. This method will take * care of invalidating entries from remote commits, by delegating to * {@link #onTypesChanged}. */ public void afterCommit(RemoteCommitEvent event) { if (_closed) return; // drop all committed classes Set classes = Caches.addTypesByName(conf, event.getPersistedTypeNames(), null); if (event.getPayloadType() == RemoteCommitEvent.PAYLOAD_EXTENTS) { classes = Caches.addTypesByName(conf, event.getUpdatedTypeNames(), classes); classes = Caches.addTypesByName(conf, event.getDeletedTypeNames(), classes); } else { classes = addTypes(event.getUpdatedObjectIds(), classes); classes = addTypes(event.getDeletedObjectIds(), classes); } if (classes != null) onTypesChanged(new TypesChangedEvent(this, classes)); }
public void initialize(DataCacheManager mgr) { super.initialize(mgr); conf.getRemoteCommitEventManager().addInternalListener(this); }
public int count() { return keySet().size(); }
public void onTypesChanged(TypesChangedEvent ev) { if (evictPolicy == EvictPolicy.DEFAULT) { writeLock(); Collection keys = null; try { if (hasListeners()) fireEvent(ev); keys = keySet(); } finally { writeUnlock(); removeAllInternal(removes); } else { Collection changedTypes = ev.getTypes(); updateEntityTimestamp(changedClasses);
public QueryResult get(QueryKey key) { if (_statsEnabled) { _stats.recordExecution(key); } QueryResult o = getInternal(key); if (o != null && o.isTimedOut()) { o = null; removeInternal(key); if (log.isTraceEnabled()) log.trace(s_loc.get("cache-timeout", key)); } if (log.isTraceEnabled()) { if (o == null) log.trace(s_loc.get("cache-miss", key)); else log.trace(s_loc.get("cache-hit", key)); } if (_statsEnabled && o != null) { ((Default<QueryKey>)_stats).recordHit(key); } return o; }
/** * This method is part of the {@link RemoteCommitListener} interface. If * your cache subclass relies on OpenJPA for clustering support, make it * implement <code>RemoteCommitListener</code>. This method will take * care of invalidating entries from remote commits, by delegating to * {@link #onTypesChanged}. */ public void afterCommit(RemoteCommitEvent event) { if (_closed) return; // drop all committed classes Set classes = Caches.addTypesByName(conf, event.getPersistedTypeNames(), null); if (event.getPayloadType() == RemoteCommitEvent.PAYLOAD_EXTENTS) { classes = Caches.addTypesByName(conf, event.getUpdatedTypeNames(), classes); classes = Caches.addTypesByName(conf, event.getDeletedTypeNames(), classes); } else { classes = addTypes(event.getUpdatedObjectIds(), classes); classes = addTypes(event.getDeletedObjectIds(), classes); } if (classes != null) onTypesChanged(new TypesChangedEvent(this, classes)); }
public void initialize(DataCacheManager mgr) { super.initialize(mgr); conf.getRemoteCommitEventManager().addInternalListener(this); _cache = newCacheMap(); if (_cacheSize != Integer.MIN_VALUE) { _cache.setCacheSize(_cacheSize); } if (_softRefs != Integer.MIN_VALUE) { _cache.setSoftReferenceSize(_softRefs); } }
public int count() { return keySet().size(); }
public void onTypesChanged(TypesChangedEvent ev) { if (evictPolicy == EvictPolicy.DEFAULT) { writeLock(); Collection keys = null; try { if (hasListeners()) fireEvent(ev); keys = keySet(); } finally { writeUnlock(); removeAllInternal(removes); } else { Collection changedTypes = ev.getTypes(); updateEntityTimestamp(changedClasses);
public QueryResult get(QueryKey key) { if (_statsEnabled) { _stats.recordExecution(key); } QueryResult o = getInternal(key); if (o != null && o.isTimedOut()) { o = null; removeInternal(key); if (log.isTraceEnabled()) log.trace(s_loc.get("cache-timeout", key)); } if (log.isTraceEnabled()) { if (o == null) log.trace(s_loc.get("cache-miss", key)); else log.trace(s_loc.get("cache-hit", key)); } if (_statsEnabled && o != null) { ((Default<QueryKey>)_stats).recordHit(key); } return o; }
/** * This method is part of the {@link RemoteCommitListener} interface. If * your cache subclass relies on OpenJPA for clustering support, make it * implement <code>RemoteCommitListener</code>. This method will take * care of invalidating entries from remote commits, by delegating to * {@link #onTypesChanged}. */ public void afterCommit(RemoteCommitEvent event) { if (_closed) return; // drop all committed classes Set classes = Caches.addTypesByName(conf, event.getPersistedTypeNames(), null); if (event.getPayloadType() == RemoteCommitEvent.PAYLOAD_EXTENTS) { classes = Caches.addTypesByName(conf, event.getUpdatedTypeNames(), classes); classes = Caches.addTypesByName(conf, event.getDeletedTypeNames(), classes); } else { classes = addTypes(event.getUpdatedObjectIds(), classes); classes = addTypes(event.getDeletedObjectIds(), classes); } if (classes != null) onTypesChanged(new TypesChangedEvent(this, classes)); }
protected void close(boolean clear) { if (!_closed) { if (clear) clearInternal(); _closed = true; } }
public void initialize(DataCacheManager mgr) { super.initialize(mgr); conf.getRemoteCommitEventManager().addInternalListener(this); _cache = newCacheMap(); if (_cacheSize != Integer.MIN_VALUE) { _cache.setCacheSize(_cacheSize); } if (_softRefs != Integer.MIN_VALUE) { _cache.setSoftReferenceSize(_softRefs); } }
public void close() { close(true); }
public void addTypesChangedListener(TypesChangedListener listen) { addListener(listen); }