# ignite-648: get vs grid methods (fix some tests automatically)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9ed8a4e6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9ed8a4e6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9ed8a4e6 Branch: refs/heads/ignite-648 Commit: 9ed8a4e627256a7add543326b24b42ae4b39050f Parents: 2e8c0fe Author: ashutak <ashu...@gridgain.com> Authored: Mon Jun 22 15:57:27 2015 +0300 Committer: ashutak <ashu...@gridgain.com> Committed: Mon Jun 22 15:57:27 2015 +0300 ---------------------------------------------------------------------- .../cache/GridCacheAbstractFullApiSelfTest.java | 73 ++---------------- .../cache/GridCacheAbstractSelfTest.java | 13 ++-- .../multijvm/framework/IgniteProcessProxy.java | 25 +++---- .../testframework/junits/GridAbstractTest.java | 78 +++++++++++++++++++- 4 files changed, 96 insertions(+), 93 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ed8a4e6/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 9314b70..292773c 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -27,7 +27,6 @@ import org.apache.ignite.configuration.*; import org.apache.ignite.events.*; import org.apache.ignite.internal.*; import org.apache.ignite.internal.processors.affinity.*; -import org.apache.ignite.internal.processors.cache.multijvm.framework.*; import org.apache.ignite.internal.processors.cache.query.*; import org.apache.ignite.internal.processors.resource.*; import org.apache.ignite.internal.util.lang.*; @@ -35,8 +34,6 @@ import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.lang.*; import org.apache.ignite.spi.discovery.tcp.*; -import org.apache.ignite.spi.discovery.tcp.ipfinder.*; -import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*; import org.apache.ignite.spi.swapspace.inmemory.*; import org.apache.ignite.testframework.*; import org.apache.ignite.transactions.*; @@ -65,11 +62,6 @@ import static org.apache.ignite.transactions.TransactionState.*; * Full API cache test. */ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstractSelfTest { - /** Ip finder for TCP discovery. */ - public static final TcpDiscoveryIpFinder LOCAL_IP_FINDER = new TcpDiscoveryVmIpFinder(false) {{ - setAddresses(Collections.singleton("127.0.0.1:47500..47509")); - }}; - /** Increment processor for invoke operations. */ public static final EntryProcessor<String, Integer, String> INCR_PROCESSOR = new EntryProcessor<String, Integer, String>() { @Override public String process(MutableEntry<String, Integer> e, Object... args) { @@ -118,18 +110,6 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract /** */ private Map<String, CacheConfiguration[]> cacheCfgMap; - /** All nodes join latch (for multi JVM mode). */ - private CountDownLatch allNodesJoinLatch; - - /** Node join listener (for multi JVM mode). */ - private final IgnitePredicate<Event> nodeJoinLsnr = new IgnitePredicate<Event>() { - @Override public boolean apply(Event evt) { - allNodesJoinLatch.countDown(); - - return true; - } - }; - /** {@inheritDoc} */ @Override protected int gridCount() { return 1; @@ -156,14 +136,6 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract if (memoryMode() == OFFHEAP_TIERED || memoryMode() == OFFHEAP_VALUES) cfg.setSwapSpaceSpi(new GridTestSwapSpaceSpi()); - if (isMultiJvm()) { - ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(LOCAL_IP_FINDER); - - cfg.setLocalEventListeners(new HashMap<IgnitePredicate<? extends Event>, int[]>() {{ - put(nodeJoinLsnr, new int[] {EventType.EVT_NODE_JOINED}); - }}); - } - return cfg; } @@ -180,10 +152,8 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract } /** {@inheritDoc} */ + // TODO review. See IgnitionEx.grid(entry.getKey()). @Override protected void beforeTestsStarted() throws Exception { - if (isMultiJvm()) - allNodesJoinLatch = new CountDownLatch(gridCount() - 1); - if (cacheStartType() == CacheStartMode.STATIC) super.beforeTestsStarted(); else { @@ -194,11 +164,8 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract for (Map.Entry<String, CacheConfiguration[]> entry : cacheCfgMap.entrySet()) { Ignite ignite; - - if (isMultiJvm()) - ignite = IgniteProcessProxy.grid(entry.getKey()); - else - ignite = IgnitionEx.grid(entry.getKey()); + + ignite = IgnitionEx.grid(entry.getKey()); for (CacheConfiguration cfg : entry.getValue()) ignite.createCache(cfg); @@ -229,21 +196,11 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract for (int i = 0; i < gridCount(); i++) info("Grid " + i + ": " + grid(i).localNode().id()); - - if (isMultiJvm()) - assert allNodesJoinLatch.await(5, TimeUnit.SECONDS); - } - - /** {@inheritDoc} */ - @Override protected void afterTestsStopped() throws Exception { - IgniteProcessProxy.killAll(); - - super.afterTestsStopped(); } /** {@inheritDoc} */ @Override protected Ignite startGrid(String gridName, GridSpringResourceContext ctx) throws Exception { - if (!isMultiJvm() || gridName.endsWith("0")) { + if (!isMultiJvmAndNodeIsRemote(gridName)) { if (cacheCfgMap == null) return super.startGrid(gridName, ctx); @@ -256,27 +213,7 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract return IgnitionEx.start(optimize(cfg), ctx); } - return new IgniteProcessProxy(optimize(getConfiguration(gridName)), log, grid(0)); - } - - /** {@inheritDoc} */ - @Override protected IgniteEx grid(int idx) { - if (!isMultiJvm() || idx == 0) - return super.grid(idx); - - return IgniteProcessProxy.get(getTestGridName(idx)); - } - - /** - * @param idx Index of grid. - * @return Default cache. - */ - @SuppressWarnings({"unchecked"}) - @Override protected IgniteCache<String, Integer> jcache(int idx) { - if (!isMultiJvm() || idx == 0) - return super.jcache(idx); - - return IgniteProcessProxy.get(getTestGridName(idx)).cache(null); + return startRemoteGrid(gridName, ctx); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ed8a4e6/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java index b6e56d5..9168c67 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java @@ -60,11 +60,6 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { /** VM ip finder for TCP discovery. */ protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true); - /** - * @return Grids count to start. - */ - protected abstract int gridCount(); - /** {@inheritDoc} */ @Override protected long getTestTimeout() { return TEST_TIMEOUT; @@ -354,7 +349,11 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { */ @SuppressWarnings({"unchecked"}) @Override protected IgniteCache<String, Integer> jcache(int idx) { - return ignite(idx).cache(null); + if (!isMultiJvmAndNodeIsRemote(idx)) + return ignite(idx).cache(null); + else + return IgniteProcessProxy.get(getTestGridName(idx)).cache(null); + } /** @@ -367,7 +366,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { else { // ((IgniteProcessProxy)grid(idx)).remoteInternalCache(); - // TODO + // TODO refix it. final UUID id = ((IgniteProcessProxy)grid(idx)).getId(); return new GridCacheContext<String, Integer>() { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ed8a4e6/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/multijvm/framework/IgniteProcessProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/multijvm/framework/IgniteProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/multijvm/framework/IgniteProcessProxy.java index 538f316..71c6689 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/multijvm/framework/IgniteProcessProxy.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/multijvm/framework/IgniteProcessProxy.java @@ -123,10 +123,16 @@ public class IgniteProcessProxy implements IgniteEx { /** * @param gridName Grid name. - * @return Instance by name or <code>null</code>. + * @return Instance by name or exception wiil be thrown. */ public static IgniteProcessProxy get(String gridName) { - return gridProxies.get(gridName); + IgniteProcessProxy res = gridProxies.get(gridName); + + if (res == null) + throw new IgniteIllegalStateException("Grid instance was not properly started " + + "or was already stopped: " + gridName); + + return res; } /** @@ -447,22 +453,13 @@ public class IgniteProcessProxy implements IgniteEx { return null; // TODO: CODE: implement. } + /** + * @return Jvm process in which grid node started. + */ public GridJavaProcess getProcess() { return proc; } - public static Ignite grid(@Nullable String name) { -// IgniteNamedInstance grid = name != null ? grids.get(name) : dfltGrid; - - Ignite res = gridProxies.get(name); - - if (res == null) - throw new IgniteIllegalStateException("Grid instance was not properly started " + - "or was already stopped: " + name); - - return res; - } - // TODO delete or use. // public <K, V> GridCacheAdapter<K, V> remoteInternalCache() { // return (GridCacheAdapter<K, V>)compute.call(new MyCallable(id)); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ed8a4e6/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java index fb5ca51..990ea76 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java @@ -23,6 +23,7 @@ import org.apache.ignite.cluster.*; import org.apache.ignite.configuration.*; import org.apache.ignite.events.*; import org.apache.ignite.internal.*; +import org.apache.ignite.internal.processors.cache.multijvm.framework.*; import org.apache.ignite.internal.processors.resource.*; import org.apache.ignite.internal.util.*; import org.apache.ignite.internal.util.typedef.*; @@ -33,7 +34,9 @@ import org.apache.ignite.marshaller.jdk.*; import org.apache.ignite.spi.checkpoint.sharedfs.*; import org.apache.ignite.spi.communication.tcp.*; import org.apache.ignite.spi.discovery.tcp.*; +import org.apache.ignite.spi.discovery.tcp.ipfinder.*; import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*; +import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*; import org.apache.ignite.testframework.*; import org.apache.ignite.testframework.config.*; import org.apache.ignite.testframework.junits.logger.*; @@ -72,6 +75,11 @@ public abstract class GridAbstractTest extends TestCase { /** Null name for execution map. */ private static final String NULL_NAME = UUID.randomUUID().toString(); + /** Ip finder for TCP discovery. */ + public static final TcpDiscoveryIpFinder LOCAL_IP_FINDER = new TcpDiscoveryVmIpFinder(false) {{ + setAddresses(Collections.singleton("127.0.0.1:47500..47509")); + }}; + /** */ private static final long DFLT_TEST_TIMEOUT = 5 * 60 * 1000; @@ -96,6 +104,18 @@ public abstract class GridAbstractTest extends TestCase { /** Starting grid name. */ protected static ThreadLocal<String> startingGrid = new ThreadLocal<>(); + /** All nodes join latch (for multi JVM mode). */ + private CountDownLatch allNodesJoinLatch; + + /** Node join listener (for multi JVM mode). */ + private final IgnitePredicate<Event> nodeJoinLsnr = new IgnitePredicate<Event>() { + @Override public boolean apply(Event evt) { + allNodesJoinLatch.countDown(); + + return true; + } + }; + /** * */ @@ -421,7 +441,7 @@ public abstract class GridAbstractTest extends TestCase { * @throws Exception If failed. */ protected void afterTestsStopped() throws Exception { - // No-op. + IgniteProcessProxy.killAll(); } /** {@inheritDoc} */ @@ -464,7 +484,13 @@ public abstract class GridAbstractTest extends TestCase { } try { + if (isMultiJvm() && gridCount() > 0) + allNodesJoinLatch = new CountDownLatch(gridCount() - 1); + beforeTestsStarted(); + + if (isMultiJvm() && gridCount() > 0) + assert allNodesJoinLatch.await(5, TimeUnit.SECONDS); } catch (Exception | Error t) { t.printStackTrace(); @@ -668,6 +694,19 @@ public abstract class GridAbstractTest extends TestCase { } /** + * Starts new grid at another JVM with given name. + * + * @param gridName Grid name. + * @param ctx Spring context. + * @return Started grid. + * @throws Exception If failed. + */ + // TODO review. Is it okey that ctx doesn't used? + protected Ignite startRemoteGrid(String gridName, GridSpringResourceContext ctx) throws Exception { + return new IgniteProcessProxy(optimize(getConfiguration(gridName)), log, grid(0)); + } + + /** * Optimizes configuration to achieve better test performance. * * @param cfg Configuration. @@ -821,7 +860,10 @@ public abstract class GridAbstractTest extends TestCase { * @return Grid instance. */ protected IgniteEx grid(String name) { - return (IgniteEx)G.ignite(name); + if (!isMultiJvmAndNodeIsRemote(name)) + return (IgniteEx)G.ignite(name); + else + return IgniteProcessProxy.get(name); } /** @@ -831,7 +873,11 @@ public abstract class GridAbstractTest extends TestCase { * @return Grid instance. */ protected IgniteEx grid(int idx) { - return (IgniteEx)G.ignite(getTestGridName(idx)); + if (!isMultiJvmAndNodeIsRemote(idx)) + return (IgniteEx)G.ignite(getTestGridName(idx)); + else + return IgniteProcessProxy.get(getTestGridName(idx)); + } /** @@ -839,7 +885,12 @@ public abstract class GridAbstractTest extends TestCase { * @return Ignite instance. */ protected Ignite ignite(int idx) { - return G.ignite(getTestGridName(idx)); + String gridName = getTestGridName(idx); + + if (!isMultiJvmAndNodeIsRemote(idx)) + return G.ignite(gridName); + else + return IgniteProcessProxy.get(gridName); } /** @@ -847,6 +898,7 @@ public abstract class GridAbstractTest extends TestCase { * * @return Grid for given test. */ + // TODO isMultyJvm. protected IgniteEx grid() { return (IgniteEx)G.ignite(getTestGridName()); } @@ -855,6 +907,7 @@ public abstract class GridAbstractTest extends TestCase { * @param node Node. * @return Ignite instance with given local node. */ + // TODO isMultyJvm. protected final Ignite grid(ClusterNode node) { return G.ignite(node.id()); } @@ -869,6 +922,7 @@ public abstract class GridAbstractTest extends TestCase { * @return Grid Started grid. * @throws Exception If failed. */ + // TODO isMultyJvm. protected Ignite startGrid(String gridName, String springCfgPath) throws Exception { return startGrid(gridName, loadConfiguration(springCfgPath)); } @@ -883,6 +937,7 @@ public abstract class GridAbstractTest extends TestCase { * @return Grid Started grid. * @throws Exception If failed. */ + // TODO isMultyJvm. protected Ignite startGrid(String gridName, IgniteConfiguration cfg) throws Exception { cfg.setGridName(gridName); @@ -1015,6 +1070,14 @@ public abstract class GridAbstractTest extends TestCase { cfg.setNodeId(UUID.fromString(new String(chars))); } + if (isMultiJvm()) { + ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(LOCAL_IP_FINDER); + + cfg.setLocalEventListeners(new HashMap<IgnitePredicate<? extends Event>, int[]>() {{ + put(nodeJoinLsnr, new int[] {EventType.EVT_NODE_JOINED}); + }}); + } + return cfg; } @@ -1286,6 +1349,13 @@ public abstract class GridAbstractTest extends TestCase { } /** + * @return Grids count to start. + */ + protected int gridCount() { + return 0; + } + + /** * Gets flag whether nodes will run in one jvm or in separate jvms. * * @return <code>True</code> to run nodes in separate jvms.