Repository: incubator-ignite Updated Branches: refs/heads/ignite-860 411e2aea9 -> b368ce56d
#ignite-860: add test for services. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b368ce56 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b368ce56 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b368ce56 Branch: refs/heads/ignite-860 Commit: b368ce56d2850bd8390e99704f2cec4abcebff46 Parents: 411e2ae Author: ivasilinets <ivasilin...@gridgain.com> Authored: Wed May 27 23:30:08 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Wed May 27 23:30:08 2015 +0300 ---------------------------------------------------------------------- .../java/org/apache/ignite/IgniteServices.java | 5 +- .../apache/ignite/internal/IgniteKernal.java | 2 +- .../org/apache/ignite/services/Service.java | 5 +- .../service/ClosureServiceClientsNodesTest.java | 81 ++++++++++++++++++++ 4 files changed, 84 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b368ce56/modules/core/src/main/java/org/apache/ignite/IgniteServices.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteServices.java b/modules/core/src/main/java/org/apache/ignite/IgniteServices.java index f800085..7d1ca7c 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteServices.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteServices.java @@ -126,10 +126,7 @@ import java.util.*; * ... * GridServices svcs = grid.services(); * - * GridFuture<?> fut = svcs.deployClusterSingleton("mySingleton", new MyGridService()); - * - * // Wait for deployment to complete. - * fut.get(); + * svcs.deployClusterSingleton("mySingleton", new MyGridService()); * </pre> */ public interface IgniteServices extends IgniteAsyncSupport { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b368ce56/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index c4b93b8..42970e2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -241,7 +241,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { /** {@inheritDoc} */ @Override public ExecutorService executorService() { - return ctx.cluster().get().executorService(); + return ((ClusterGroupAdapter)ctx.cluster().get().forServers()).executorService(); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b368ce56/modules/core/src/main/java/org/apache/ignite/services/Service.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/services/Service.java b/modules/core/src/main/java/org/apache/ignite/services/Service.java index 2bd5649..4f927a3 100644 --- a/modules/core/src/main/java/org/apache/ignite/services/Service.java +++ b/modules/core/src/main/java/org/apache/ignite/services/Service.java @@ -55,10 +55,7 @@ import java.io.*; * ... * GridServices svcs = grid.services(); * - * GridFuture<?> fut = svcs.deployClusterSingleton("mySingleton", new MyGridService()); - * - * // Wait for deployment to complete. - * fut.get(); + * svcs.deployClusterSingleton("mySingleton", new MyGridService()); * </pre> * Or from grid configuration on startup: * <pre name="code" class="java"> http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b368ce56/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ClosureServiceClientsNodesTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ClosureServiceClientsNodesTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ClosureServiceClientsNodesTest.java index c1849c4..c5ed7d0 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ClosureServiceClientsNodesTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ClosureServiceClientsNodesTest.java @@ -18,11 +18,15 @@ package org.apache.ignite.internal.processors.service; import org.apache.ignite.*; +import org.apache.ignite.cluster.ClusterGroup; import org.apache.ignite.configuration.*; import org.apache.ignite.internal.util.typedef.*; import org.apache.ignite.lang.*; import org.apache.ignite.marshaller.optimized.*; import org.apache.ignite.resources.*; +import org.apache.ignite.services.Service; +import org.apache.ignite.services.ServiceContext; +import org.apache.ignite.services.ServiceDescriptor; import org.apache.ignite.spi.discovery.tcp.*; import org.apache.ignite.spi.discovery.tcp.ipfinder.*; import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*; @@ -37,6 +41,9 @@ public class ClosureServiceClientsNodesTest extends GridCommonAbstractTest { /** Number of grids started for tests. */ private static final int NODES_CNT = 4; + /** Test singleton service name. */ + private static final String SINGLETON_NAME = "testSingleton"; + /** IP finder. */ private final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true); @@ -120,4 +127,78 @@ public class ClosureServiceClientsNodesTest extends GridCommonAbstractTest { assertEquals(getTestGridName(0), F.first(res)); } + + /** + * @throws Exception If failed. + */ + public void testDefaultService() throws Exception { + Ignite ignite = grid(0); + + ignite.services().deployNodeSingleton(SINGLETON_NAME, new TestService()); + + ClusterGroup grp = grid(0).cluster(); + + assertEquals(4, grp.nodes().size()); + + Collection<ServiceDescriptor> srvDscs = ignite.services(grp).serviceDescriptors(); + + assertEquals(1, srvDscs.size()); + + Map<UUID, Integer> nodesMap = F.first(srvDscs).topologySnapshot(); + + assertEquals(3, nodesMap.size()); + + for (Map.Entry<UUID, Integer> nodeInfo : nodesMap.entrySet()) { + assertNotSame(nodeInfo.getKey().equals(grid(0).localNode().id()), nodeInfo.getKey()); + + assertEquals(1, nodeInfo.getValue().intValue()); + } + } + + /** + * @throws Exception If failed. + */ + public void testClientService() throws Exception { + Ignite ignite = grid(0); + + ignite.services(ignite.cluster().forClients()).deployNodeSingleton(SINGLETON_NAME, new TestService()); + + ClusterGroup grp = grid(0).cluster(); + + assertEquals(4, grp.nodes().size()); + + Collection<ServiceDescriptor> srvDscs = ignite.services(grp).serviceDescriptors(); + + assertEquals(1, srvDscs.size()); + + Map<UUID, Integer> nodesMap = F.first(srvDscs).topologySnapshot(); + + assertEquals(1, nodesMap.size()); + + for (Map.Entry<UUID, Integer> nodeInfo : nodesMap.entrySet()) { + assertEquals(grid(0).localNode().id(), nodeInfo.getKey()); + + assertEquals(1, nodeInfo.getValue().intValue()); + } + } + + /** + * Test service. + */ + private static class TestService implements Service { + /** {@inheritDoc} */ + @Override public void cancel(ServiceContext ctx) { + //No-op. + } + + /** {@inheritDoc} */ + @Override public void init(ServiceContext ctx) throws Exception { + //No-op. + } + + /** {@inheritDoc} */ + @Override public void execute(ServiceContext ctx) throws Exception { + System.out.println("Executing test service."); + } + } }