private void verifyMirrorRegionEventsMatch(EntryEvent<String, String> event, Region region, String expectedValue) { assertThat(event.getRegion()).isSameAs(region); assertThat(event.getKey()).isEqualTo("key"); assertThat(event.getNewValue()).isEqualTo(expectedValue); assertThat(event.getOldValue()).isNull(); assertThat(event.getOperation().isLocalLoad()).isFalse(); assertThat(event.getOperation().isNetLoad()).isFalse(); assertThat(event.getOperation().isLoad()).isFalse(); assertThat(event.getOperation().isNetSearch()).isFalse(); assertThat(event.getOperation().isExpiration()).isFalse(); assertThat(event.getCallbackArgument()).isNull(); assertThat(event.isCallbackArgumentAvailable()).isTrue(); assertThat(event.isOriginRemote()).isTrue(); assertThat(event.getOperation().isDistributed()).isTrue(); }
public EventWrapper(EntryEvent ee, int type) { this.event = ee; this.key = ee.getKey(); this.val = ee.getNewValue(); this.arg = ee.getCallbackArgument(); this.type = type; }
@Override public void afterCreate(EntryEvent event) { if (logger.isDebugEnabled()) { logger.debug( "Create Event for allPR: key = {} oldVal = {} newVal = {} Op = {} origin = {} isNetSearch = {}", event.getKey(), event.getOldValue(), event.getNewValue(), event.getOperation(), event.getDistributedMember(), event.getOperation().isNetSearch()); } }
@Override public void afterDestroy(EntryEvent<String, HttpSession> event) { /** * A Session expired. If it was destroyed by GemFire expiration, process it. If it was destroyed * via Session.invalidate, ignore it since it has already been processed. */ if (event.getOperation() == Operation.EXPIRE_DESTROY) { HttpSession session = (HttpSession) event.getOldValue(); session.invalidate(); } }
@Override public void beforeCreate(EntryEvent<Object, Object> event) throws CacheWriterException { Object newValue = event.getNewValue(); if (newValue instanceof PdxType) { logger.info("Adding new type: {}", ((PdxType) event.getNewValue()).toFormattedString()); } else { logger.info("Adding new type: {} {}", event.getKey(), ((EnumInfo) newValue).toFormattedString()); } }
@Override public void afterDestroy(EntryEvent<String, GatewayDelta> event) { // If the event is from the local site, create a 'destroy' event and send it to the // gateway delta region if (event.getCallbackArgument() != null) { if (this.cache.getLogger().fineEnabled()) { StringBuilder builder = new StringBuilder(); builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for ") .append(event.getKey()).append("->").append(event.getNewValue()) .append(" that originated in the local site. Sending it to the remote site."); this.cache.getLogger().fine(builder.toString()); } // Distribute the destroy event to the gateway hub(s) String sessionId = event.getKey(); getGatewayDeltaRegion().put(sessionId, new GatewayDeltaDestroyEvent(event.getRegion().getFullPath(), sessionId)); } else { if (this.cache.getLogger().fineEnabled()) { StringBuilder builder = new StringBuilder(); builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for session ") .append(event.getKey()) .append(" that either expired or originated in the remote site."); this.cache.getLogger().fine(builder.toString()); } } }
@Override public void afterUpdate(EntryEvent event) { System.out.println("UPDATE: " + event.getKey() + " -> (" + event.getOldValue() + " -> " + event.getNewValue() + ")"); } });
@Override public void afterInvalidate(EntryEvent event) { logger.debug("BucketListener: o={}, r={}, k={}, dm={}", event.getOperation(), event.getRegion().getFullPath(), event.getKey(), event.getDistributedMember()); }
@Override public void beforeUpdate(EntryEvent<Object, Object> event) throws CacheWriterException { if (!event.getRegion().get(event.getKey()).equals(event.getNewValue())) { PdxRegistryMismatchException ex = new PdxRegistryMismatchException( "Trying to add a PDXType with the same id as an existing PDX type. id=" + event.getKey() + ", existing pdx type " + event.getOldValue() + ", new type " + event.getNewValue()); throw new CacheWriterException(ex); } }
private void log(EntryEvent event) { StringBuilder builder = new StringBuilder(); builder.append("DebugCacheListener: Received ").append(event.getOperation()).append(" for key=") .append(event.getKey()); if (event.getNewValue() != null) { builder.append("; value=").append(event.getNewValue()); } event.getRegion().getCache().getLogger().info(builder.toString()); }
@Override public Object getSubstituteValue(EntryEvent event) { this.numInvocations.incrementAndGet(); return SUBSTITUTION_PREFIX + event.getKey(); }
@Override public void afterDestroy(EntryEvent event) { if (this.sender.isPrimary()) { return; } // fix bug 37603 // There is a small window where queue has not been created fully yet. The region is created, // and it receives afterDestroy callback. final Set<RegionQueue> queues = this.sender.getQueues(); if (queues != null && !queues.isEmpty()) { this.sender.getStatistics().decQueueSize(); } // Send event to the event dispatcher Object oldValue = event.getOldValue(); if (oldValue instanceof GatewaySenderEventImpl) { GatewaySenderEventImpl senderEvent = (GatewaySenderEventImpl) oldValue; if (logger.isDebugEnabled()) { logger.debug("Received after Destroy for Secondary event {} the key was {}", senderEvent, event.getKey()); } this.processor.handlePrimaryDestroy(senderEvent); } } }
private void addOrRemoveJarFromFilesystem(EntryEvent<String, Configuration> event) { String group = event.getKey(); Configuration newConfig = event.getNewValue(); Configuration oldConfig = event.getOldValue(); Set<String> newJars = newConfig.getJarNames(); Set<String> oldJars = (oldConfig == null) ? new HashSet<>() : oldConfig.getJarNames(); String triggerMemberId = (String) event.getCallbackArgument(); if (triggerMemberId == null || newJars.isEmpty()) { return;
@Override public void afterCreate(EntryEvent<String, Object> event) { if (!readyForEvents) { return; } ObjectName objectName = null; try { objectName = ObjectName.getInstance(event.getKey()); Object newObject = event.getNewValue(); proxyHelper.createProxy(event.getDistributedMember(), objectName, event.getRegion(), newObject); } catch (Exception e) { if (logger.isDebugEnabled()) { logger.debug("Proxy Create failed for {} with exception {}", objectName, e.getMessage(), e); } } }
Map.Entry entry = (Map.Entry) it.next(); Set keys = (Set) entry.getValue(); if (keys.contains(event.getKey())) { Object clientID = entry.getKey(); if (result == null) if (pats != null && (event.getKey() instanceof String)) { for (Iterator it = pats.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next(); String stringKey = (String) event.getKey(); Map<Object, Pattern> interestList = (Map<Object, Pattern>) entry.getValue(); for (Pattern keyPattern : interestList.values()) { boolean serialized; SerializedCacheValue<?> serValue = event.getSerializedNewValue(); serialized = (serValue != null); if (!serialized) { value = event.getNewValue(); } else { value = serValue.getSerializedValue(); InterestEvent iev = new InterestEvent(event.getKey(), value, !serialized); Operation op = event.getOperation(); for (Iterator it = foi.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next();
@Before public void setUp() { entryEvent = mock(EntryEvent.class); pdxInstance = mock(PdxInstance.class); sqlHandler = mock(SqlHandler.class); region = mock(InternalRegion.class); serializedNewValue = mock(SerializedCacheValue.class); regionEvent = mock(RegionEvent.class); cache = Fakes.cache(); key = "key"; when(entryEvent.getRegion()).thenReturn(region); when(entryEvent.getKey()).thenReturn(key); when(entryEvent.getRegion().getRegionService()).thenReturn(cache); when(entryEvent.getSerializedNewValue()).thenReturn(serializedNewValue); when(entryEvent.getOperation()).thenReturn(Operation.CREATE); when(serializedNewValue.getDeserializedValue()).thenReturn(pdxInstance); writer = new JdbcWriter<>(sqlHandler, cache); }
/** * Takes an entry event and processes it. If the entry denotes that a * {@link RedisDataType#REDIS_LIST} or {@link RedisDataType#REDIS_SORTEDSET} was created then this * function will call the necessary calls to create the parameterized queries for those keys. * * @param event EntryEvent from meta data region */ private void afterKeyCreate(EntryEvent<String, RedisDataType> event) { if (event.isOriginRemote()) { final String key = (String) event.getKey(); final RedisDataType value = event.getNewValue(); if (value != RedisDataType.REDIS_STRING && value != RedisDataType.REDIS_HLL && value != RedisDataType.REDIS_PROTECTED) { try { this.regionCache.createRemoteRegionReferenceLocally(Coder.stringToByteArrayWrapper(key), value); } catch (RegionDestroyedException ignore) { // Region already destroyed, ignore } } } }
@Override public void afterCreate(EntryEvent<Object, Object> event) { verifyConfiguration(); // update a local map with the pdxtypes registered Object value = event.getNewValue(); if (value instanceof PdxType) { updateClassToTypeMap((PdxType) value); } } });
private void writeEvent(EntryEvent<K, V> event) { if (eventCanBeIgnored(event.getOperation())) { return; } checkInitialized((InternalCache) event.getRegion().getRegionService()); totalEvents.add(1); try { getSqlHandler().write(event.getRegion(), event.getOperation(), event.getKey(), getPdxNewValue(event)); } catch (SQLException e) { throw JdbcConnectorException.createException(e); } }
@Override public void afterDestroy(EntryEvent<String, Object> event) { ObjectName objectName = null; try { objectName = ObjectName.getInstance(event.getKey()); Object oldObject = event.getOldValue(); proxyHelper.removeProxy(event.getDistributedMember(), objectName, oldObject); } catch (Exception e) { if (logger.isDebugEnabled()) { logger.debug("Proxy Destroy failed for {} with exception {}", objectName, e.getMessage(), e); } } }