Search in sources :

Example 31 with CI1

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;
}
Also used : ClusterNode(org.apache.ignite.cluster.ClusterNode) Serializable(java.io.Serializable) ArrayList(java.util.ArrayList) CI1(org.apache.ignite.internal.util.typedef.CI1) CollisionJobContext(org.apache.ignite.spi.collision.CollisionJobContext) GridTestCollisionJobContext(org.apache.ignite.spi.collision.GridTestCollisionJobContext) GridCollisionTestContext(org.apache.ignite.spi.collision.GridCollisionTestContext) GridTestCollisionJobContext(org.apache.ignite.spi.collision.GridTestCollisionJobContext) GridSpiTest(org.apache.ignite.testframework.junits.spi.GridSpiTest) GridSpiAbstractTest(org.apache.ignite.testframework.junits.spi.GridSpiAbstractTest) Test(org.junit.Test)

Example 32 with CI1

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();
        }
    }
}
Also used : GridJavaProcess(org.apache.ignite.internal.util.GridJavaProcess) GridAbsPredicate(org.apache.ignite.internal.util.lang.GridAbsPredicate) DiscoverySpi(org.apache.ignite.spi.discovery.DiscoverySpi) TcpDiscoverySpi(org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi) Ignite(org.apache.ignite.Ignite) CI1(org.apache.ignite.internal.util.typedef.CI1) CountDownLatch(java.util.concurrent.CountDownLatch) Map(java.util.Map) GridCommonAbstractTest(org.apache.ignite.testframework.junits.common.GridCommonAbstractTest) Test(org.junit.Test)

Aggregations

CI1 (org.apache.ignite.internal.util.typedef.CI1)32 IgniteInternalFuture (org.apache.ignite.internal.IgniteInternalFuture)12 IgniteCheckedException (org.apache.ignite.IgniteCheckedException)11 ClusterNode (org.apache.ignite.cluster.ClusterNode)11 Test (org.junit.Test)11 IgniteFuture (org.apache.ignite.lang.IgniteFuture)9 ArrayList (java.util.ArrayList)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)8 IgniteException (org.apache.ignite.IgniteException)7 IgniteInterruptedCheckedException (org.apache.ignite.internal.IgniteInterruptedCheckedException)7 AffinityTopologyVersion (org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion)7 Collection (java.util.Collection)6 ClusterTopologyCheckedException (org.apache.ignite.internal.cluster.ClusterTopologyCheckedException)6 IgniteSpiException (org.apache.ignite.spi.IgniteSpiException)6 GridCommonAbstractTest (org.apache.ignite.testframework.junits.common.GridCommonAbstractTest)6 Nullable (org.jetbrains.annotations.Nullable)6 List (java.util.List)5 UUID (java.util.UUID)5 DiscoveryEvent (org.apache.ignite.events.DiscoveryEvent)5 GridFutureAdapter (org.apache.ignite.internal.util.future.GridFutureAdapter)5