use of org.apache.ignite.internal.util.typedef.CI1 in project ignite by apache.
the class GridJobStealingCollisionSpiSelfTest method testTwoPassiveJobs.
/**
* @throws Exception If test failed.
*/
@Test
public void testTwoPassiveJobs() throws Exception {
final List<CollisionJobContext> waitCtxs = new ArrayList<>(2);
final List<CollisionJobContext> activeCtxs = new ArrayList<>(1);
CI1<GridTestCollisionJobContext> lsnr = new CI1<GridTestCollisionJobContext>() {
@Override
public void apply(GridTestCollisionJobContext c) {
if (waitCtxs.remove(c))
activeCtxs.add(c);
}
};
Collections.addAll(waitCtxs, new GridTestCollisionJobContext(createTaskSession(), 1, lsnr), new GridTestCollisionJobContext(createTaskSession(), 2, lsnr));
ClusterNode rmtNode = F.first(getSpiContext().remoteNodes());
getSpiContext().triggerMessage(rmtNode, new JobStealingRequest(1));
getSpi().onCollision(new GridCollisionTestContext(activeCtxs, waitCtxs));
// Activated.
checkActivated((GridTestCollisionJobContext) activeCtxs.get(0));
// Rejected.
checkRejected((GridTestCollisionJobContext) waitCtxs.get(0), rmtNode);
// Make sure that no message was sent.
Serializable msg = getSpiContext().removeSentMessage(rmtNode);
assert msg == null;
}
use of org.apache.ignite.internal.util.typedef.CI1 in project ignite by apache.
the class CacheConfigurationP2PTest method testCacheConfigurationP2P.
/**
* @throws Exception If failed.
*/
@Test
public void testCacheConfigurationP2P() throws Exception {
fail("Enable when IGNITE-537 is fixed.");
try (Ignite ignite = Ignition.start(createConfiguration())) {
final CountDownLatch srvsReadyLatch = new CountDownLatch(2);
final CountDownLatch clientReadyLatch = new CountDownLatch(1);
GridJavaProcess node1 = null;
GridJavaProcess node2 = null;
GridJavaProcess clientNode = null;
Collection<String> jvmArgs = Arrays.asList("-ea", "-DIGNITE_QUIET=false");
try {
node1 = GridJavaProcess.exec(CacheConfigurationP2PTestServer.class.getName(), null, log, new CI1<String>() {
@Override
public void apply(String s) {
info("Server node1: " + s);
if (s.contains(NODE_START_MSG))
srvsReadyLatch.countDown();
}
}, null, null, jvmArgs, null);
node2 = GridJavaProcess.exec(CacheConfigurationP2PTestServer.class.getName(), null, log, new CI1<String>() {
@Override
public void apply(String s) {
info("Server node2: " + s);
if (s.contains(NODE_START_MSG))
srvsReadyLatch.countDown();
}
}, null, null, jvmArgs, null);
assertTrue(srvsReadyLatch.await(60, SECONDS));
String cp = U.getIgniteHome() + "/modules/extdata/p2p/target/classes/";
clientNode = GridJavaProcess.exec(CLIENT_CLS_NAME, null, log, new CI1<String>() {
@Override
public void apply(String s) {
info("Client node: " + s);
if (s.contains(NODE_START_MSG))
clientReadyLatch.countDown();
}
}, null, null, jvmArgs, cp);
assertTrue(clientReadyLatch.await(60, SECONDS));
int exitCode = clientNode.getProcess().waitFor();
assertEquals("Unexpected exit code", 0, exitCode);
node1.killProcess();
node2.killProcess();
final DiscoverySpi spi = ignite.configuration().getDiscoverySpi();
boolean wait = GridTestUtils.waitForCondition(new GridAbsPredicate() {
@Override
public boolean apply() {
Map p2pLdrs = GridTestUtils.getFieldValue(spi, "p2pLdrs");
log.info("p2pLdrs: " + p2pLdrs.size());
return p2pLdrs.isEmpty();
}
}, 10_000);
assertTrue(wait);
} finally {
if (node1 != null)
node1.killProcess();
if (node2 != null)
node2.killProcess();
if (clientNode != null)
clientNode.killProcess();
}
}
}
Aggregations