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&lt;?&gt; 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&lt;?&gt; 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.");
+        }
+    }
 }

Reply via email to