Java源码示例:org.infinispan.notifications.cachelistener.annotation.CacheEntryModified
示例1
@CacheEntryModified
public void updated(CacheEntryModifiedEvent<String, Property<?>> event) {
if (event.isPre()) {
return;
}
Property<?> oldValue = (Property<?>) ((EventImpl) event).getOldValue();
Property<?> newValue = event.getValue();
if (!newValue.equals(oldValue)) {
List<Observer> observers = this.observersMap.get(event.getKey());
if (observers != null) {
observers.forEach(observer -> observer.updated(newValue));
}
}
}
示例2
@CacheEntryModified
public void onModifiedNotifyTrigger(CacheEntryModifiedEvent cacheEvent) {
if (cacheEvent.isPre()) {
if (log.isDebugEnabled()) {
log.debug("Discarding pre onModifiedNotifyTrigger(@CacheEntryModified) event");
}
return;
}
NotifyTrigger notifyTrigger = (NotifyTrigger)triggersCache.get(cacheEvent.getKey());
if (log.isDebugEnabled()) {
log.debugf("onModifiedNotifyTrigger(@CacheEntryModified) received on %s", currentNode);
log.debugf("CacheEvent: %s", cacheEvent);
log.debugf("NotifyTrigger: %s", notifyTrigger);
}
processNotifyTrigger(notifyTrigger);
}
示例3
@CacheEntryModified
public synchronized void eventReceived(CacheEntryModifiedEvent event) {
Object key = event.getKey();
Object value = event.getValue();
if (LOGGER.isDebugEnabled()) LOGGER.debug("Received Suspend Event key=[{}] value=[{}]", key, value);
if (Router.SUSPEND.equals(key)) {
router.suspend();
}
if (Router.RESUME.equals(key)) {
router.resume();
}
}
示例4
@CacheEntryModified
public synchronized void eventReceived(CacheEntryModifiedEvent event) {
Object key = event.getKey();
Object value = event.getValue();
if (LOGGER.isDebugEnabled()) LOGGER.debug("Received MODIFIED key on INFOS key=[{}] value=[{}]", key, value);
if ((RulesManager.RULES_ARTIFACT_ID.equals(key) && !rulesManager.getReleaseId().getArtifactId().equals(key))
|| (RulesManager.RULES_GROUP_ID.equals(key) && !rulesManager.getReleaseId().getGroupId().equals(key))) {
throw new IllegalStateException("Cannot change rules artifact or group id to [" + key + "].");
}
if (RulesManager.RULES_VERSION.equals(key)) {
updateVersion((String) value);
}
}
示例5
@CacheEntryModified
public synchronized void eventReceived(CacheEntryModifiedEvent event) {
Object key = event.getKey();
Object value = event.getValue();
if (LOGGER.isDebugEnabled()) LOGGER.debug("Received MODIFIED key on INFOS key=[{}] value=[{}]", key, value);
if (RulesManager.RULES_ARTIFACT_ID.equals(key) || RulesManager.RULES_GROUP_ID.equals(key)) {
throw new IllegalStateException("Cannot change rules artifact or group id.");
}
if ( RulesManager.RULES_VERSION.equals(key) && !value.equals("1.0.0") ) {
throw new RuntimeException( "Upgrade rules version failed!!!" );
} else if ( RulesManager.RULES_VERSION.equals(key) ){
updateVersion((String) value);
}
}
示例6
public SubsCacheHelper(DefaultCacheManager cacheManager, NodeSelector nodeSelector) {
@SuppressWarnings("unchecked")
MultimapCacheManager<String, byte[]> multimapCacheManager = EmbeddedMultimapCacheManagerFactory.from(cacheManager);
subsCache = (EmbeddedMultimapCache<String, byte[]>) multimapCacheManager.get("__vertx.subs");
this.nodeSelector = nodeSelector;
entryListener = new EntryListener();
Set<Class<? extends Annotation>> filterAnnotations = Stream.<Class<? extends Annotation>>builder()
.add(CacheEntryCreated.class)
.add(CacheEntryModified.class)
.add(CacheEntryRemoved.class)
.build()
.collect(toSet());
subsCache.getCache()
.addFilteredListener(entryListener, new EventFilter(), new EventConverter(), filterAnnotations);
}
示例7
@CacheEntryModified
public void onModifiedNotifyData(CacheEntryModifiedEvent cacheEvent) {
if (cacheEvent.isPre()) {
log.debug("Discarding pre onModifiedNotifyData(@CacheEntryModified) event");
return;
}
NotifyData notifyData = (NotifyData)dataCache.get(cacheEvent.getKey());
if (log.isDebugEnabled()) {
log.debug("onModifiedNotifyData(@CacheEntryModified) received.");
log.debugf("NotifyData: %s", notifyData);
}
processNotifyData(notifyData);
}
示例8
@CacheEntryModified
public void modified(CacheEntryModifiedEvent<Long, XOffering> event) {
if (event.isPre()) {
if (event.getValue() != null)
removeCourses(event.getValue());
} else {
if (event.getValue() != null)
addCourses(event.getValue());
}
}
示例9
@CacheEntryModified
public void modified(CacheEntryModifiedEvent<Long, XStudent> event) {
if (event.isPre()) {
if (event.getValue() != null)
removeRequests(event.getValue());
} else {
if (event.getValue() != null)
addRequests(event.getValue());
}
}
示例10
@CacheEntryModified
public void entryModified(CacheEntryModifiedEvent<String, Void> event) {
fireRegistrationUpdateEvent(event.getKey());
}
示例11
@CacheEntryCreated
@CacheEntryModified
public void handle(CacheEntryEvent<String, EventAction> event) {
String designId = event.getKey();
EventAction action = event.getValue();
ActionType type = action.getType();
String id = action.getId();
IEditingSessionExt session = sessions.get(designId);
if (session != null && type != ActionType.CLOSE) {
switch (type) {
case SEND_TO_OTHERS:
session.sendToOthers(action.toBaseOperation(), id);
return;
case SEND_TO_LIST:
session.sendTo(id);
return;
case SEND_TO_EXECUTE:
session.sendTo(action.getOps(), id);
return;
case CLOSE:
case ROLLUP:
default:
break;
}
}
// only do rollup once - on the event origin node
if (type == ActionType.CLOSE && event.isOriginLocal()) {
Map<String, Integer> map = counterCache.get(designId);
int count = 0;
// only count live nodes
for (Address member : manager.getMembers()) {
count += map.getOrDefault(member.toString(), 0);
}
if (count == 0) {
try {
rollup(designId);
} finally {
counterCache.remove(designId);
eventActionCache.remove(designId);
}
}
}
}
示例12
@CacheEntryModified
public void entryModified(CacheEntryModifiedEvent<String, String> event) {
// We are only interested in the pre event
if (event.isPre())
System.out.printf("About to modify %s\n", event.getKey());
}
示例13
@CacheEntryModified
public void cacheEntryModified(CacheEntryModifiedEvent<String, Serializable> event) {
eventReceived(event.getKey(), event.getValue());
}