/** * @param execId Execution ID. */ private void checkTimedOutEvents(final IgniteUuid execId) { Ignite ignite = G.ignite(getTestIgniteInstanceName()); Collection<Event> evts = ignite.events().localQuery(new PE() { @Override public boolean apply(Event evt) { return ((TaskEvent) evt).taskSessionId().equals(execId); } }, EVT_TASK_TIMEDOUT); assert evts.size() == 1 : "Invalid number of timed out tasks: " + evts.size(); }
: ignite.events().localQuery(p, evtTypes);
nl.get(arg.getKeyOrder()) : -1L; Collection<Event> evts = ignite.events().localQuery(new IgnitePredicate<Event>() {
/** * Pull all test task related events since the given moment. * * @param since Earliest time to pulled events. * @param evtCnt Expected event count. * @param taskName Name of the task. * @return List of events. * @throws Exception If failed. */ private List<Event> pullEvents(long since, int evtCnt, String taskName) throws Exception { IgnitePredicate<Event> filter = new CustomEventFilter(taskName, since); for (int i = 0; i < 3; i++) { List<Event> evts = new ArrayList<>(ignite.events().localQuery((filter))); info("Filtered events [size=" + evts.size() + ", evts=" + evts + ']'); if (evtCnt != evts.size() && i < 2) { U.warn(log, "Invalid event count (will retry in 1000 ms) [actual=" + evts.size() + ", expected=" + evtCnt + ", evts=" + evts + ']'); U.sleep(1000); continue; } assert evtCnt <= evts.size() : "Invalid event count [actual=" + evts.size() + ", expected=" + evtCnt + ", evts=" + evts + ']'; return evts; } assert false; return null; }
/** * */ public void sync() { if (!this.isSynced) { synchronized (this) { if (!this.isSynced) { Collection<Event> evts = ignite().events().localQuery(new IgnitePredicate<Event>() { @Override public boolean apply(final Event evt) { return true; } }, this.causes); for (Event event : evts) { // Events returned from localQuery() are ordered by increasing local ID. Update the sync ID // within a finally block to avoid applying duplicate events if the delegate listener // throws an exception while processing the event. try { applyInternal(event); } finally { this.syncedId = event.localOrder(); } } this.isSynced = true; notifyAll(); } } } }
/** * @throws Exception In case of error. */ @Test public void testLocalNodeEventStorage() throws Exception { try { grid().events().localQuery(F.<Event>alwaysTrue()); assert false : "Exception must be thrown."; } catch (IgniteException e) { assertTrue( "Wrong exception message: " + e.getMessage(), e.getMessage().startsWith("Failed to query events because default no-op event storage SPI is used.")); } }
/** * @throws Exception If failed. */ @Test public void testSpiFail() throws Exception { Ignite ignite = startGrid(); try { try { ignite.events().localQuery(F.<Event>alwaysTrue()); assert false : "Exception should be thrown"; } catch (IgniteException e) { assert e.getMessage().startsWith(TEST_MSG) : "Wrong exception message." + e.getMessage(); } try { ignite.compute().localDeployTask(GridTestTask.class, GridTestTask.class.getClassLoader()); assert false : "Exception should be thrown"; } catch (IgniteException e) { assertTrue(e.getCause() instanceof IgniteCheckedException); Throwable err = e.getCause().getCause(); assert err instanceof GridTestSpiException : "Wrong cause exception type. " + e; assert err.getMessage().startsWith(TEST_MSG) : "Wrong exception message." + e.getMessage(); } } finally { stopGrid(); } }
/** * @throws Exception In case of error. */ @Test public void testRemoteAndLocalNodeEventStorage() throws Exception { IgnitePredicate<Event> filter = new TestEventFilter(); generateEvents(ignite1); Collection<Event> evts = ignite1.events().remoteQuery(filter, 0); Collection<Event> locEvts = ignite1.events().localQuery(filter); Collection<Event> remEvts = events(ignite1.cluster().forPredicate(F.remoteNodes(ignite1.cluster().localNode().id()))).remoteQuery(filter, 0); assert evts != null; assert locEvts != null; assert remEvts != null; assert evts.size() == 1; assert locEvts.size() == 1; assert remEvts.isEmpty(); }
/** * @throws Exception if failed. */ @Test public void testUnloadEvents() throws Exception { final Ignite g1 = startGrid("g1"); Collection<Integer> allKeys = new ArrayList<>(EVENTS_COUNT); IgniteCache<Integer, String> cache1 = g1.cache(DEFAULT_CACHE_NAME); IgniteCache<Integer, String> cache2 = g1.cache(DEFAULT_CACHE_NAME_EVTS_DISABLED); for (int i = 0; i < EVENTS_COUNT; i++) { cache1.put(i, "val"); // Events should not be fired by this put. cache2.put(i, "val"); allKeys.add(i); } Ignite g2 = startGrid("g2"); awaitPartitionMapExchange(true, true, null); Map<ClusterNode, Collection<Object>> keysMap = g1.affinity(DEFAULT_CACHE_NAME).mapKeysToNodes(allKeys); Collection<Object> g2Keys = keysMap.get(g2.cluster().localNode()); assertNotNull(g2Keys); assertFalse("There are no keys assigned to g2", g2Keys.isEmpty()); Collection<Event> objEvts = g1.events().localQuery(F.<Event>alwaysTrue(), EVT_CACHE_REBALANCE_OBJECT_UNLOADED); checkObjectUnloadEvents(objEvts, g1, g2Keys); Collection <Event> partEvts = g1.events().localQuery(F.<Event>alwaysTrue(), EVT_CACHE_REBALANCE_PART_UNLOADED); checkPartitionUnloadEvents(partEvts, g1, dht(g2.cache(DEFAULT_CACHE_NAME)).topology().localPartitions()); }
Collection<Event> evts = ignite1.events().localQuery(filter); evts = ignite1.events().localQuery(filter);
/** * @throws Exception if failed. */ @Test public void testPreloadEvents() throws Exception { Ignite g1 = startGrid("g1"); IgniteCache<Integer, String> cache = g1.cache(DEFAULT_CACHE_NAME); cache.put(1, "val1"); cache.put(2, "val2"); cache.put(3, "val3"); Ignite g2 = startGrid("g2"); Collection<Event> evts = g2.events().localQuery(F.<Event>alwaysTrue(), EVT_CACHE_REBALANCE_OBJECT_LOADED); checkPreloadEvents(evts, g2, U.toIntList(new int[]{1, 2, 3})); }
case OP_LOCAL_QUERY: { Collection<EventAdapter> result = events.localQuery(F.<EventAdapter>alwaysTrue(), readEventTypes(reader));
evts = g2.events().localQuery(F.<Event>alwaysTrue(), EVT_CACHE_REBALANCE_STARTED, EVT_CACHE_REBALANCE_STOPPED);
/** * @throws Exception In case of error. */ @Test public void testGridInternalEvents() throws Exception { IgnitePredicate<Event> lsnr = new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { checkGridInternalEvent(evt); return true; } }; ignite1.events().localListen(lsnr, EVTS_TASK_EXECUTION); ignite1.events().localListen(lsnr, EVTS_JOB_EXECUTION); ignite2.events().localListen(lsnr, EVTS_TASK_EXECUTION); ignite2.events().localListen(lsnr, EVTS_JOB_EXECUTION); executeGridInternalTask(ignite1); Collection<Event> evts1 = ignite1.events().localQuery(F.<Event>alwaysTrue()); Collection<Event> evts2 = ignite2.events().localQuery(F.<Event>alwaysTrue()); assert evts1 != null; assert evts2 != null; for (Event evt : evts1) checkGridInternalEvent(evt); for (Event evt : evts2) checkGridInternalEvent(evt); assert ignite1.events().stopLocalListen(lsnr, EVTS_TASK_EXECUTION); assert ignite1.events().stopLocalListen(lsnr, EVTS_JOB_EXECUTION); assert ignite2.events().stopLocalListen(lsnr, EVTS_TASK_EXECUTION); assert ignite2.events().stopLocalListen(lsnr, EVTS_JOB_EXECUTION); }
: ignite.events().localQuery(p, evtTypes);
nl.get(arg.getKeyOrder()) : -1L; Collection<Event> evts = ignite.events().localQuery(new IgnitePredicate<Event>() {
case OP_LOCAL_QUERY: { Collection<EventAdapter> result = events.localQuery(F.<EventAdapter>alwaysTrue(), readEventTypes(reader));