You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by iv...@apache.org on 2015/07/20 19:26:02 UTC

[1/5] incubator-ignite git commit: #ignite-961: fix authorize commands.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-961-master c80e649cb -> 268f30acb


#ignite-961: fix authorize commands.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c99433ba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c99433ba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c99433ba

Branch: refs/heads/ignite-961-master
Commit: c99433ba9019cbe30f84ca1e5a2f26df4576c3f3
Parents: c80e649
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 20 14:12:47 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 20 14:12:47 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/rest/GridRestProcessor.java   | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c99433ba/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
index d454fd7..079794e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
@@ -581,6 +581,14 @@ public class GridRestProcessor extends GridProcessorAdapter {
             case QUIT:
             case ATOMIC_INCREMENT:
             case ATOMIC_DECREMENT:
+            case NAME:
+            case LOG:
+            case GET_OR_CREATE_CACHE:
+            case DESTROY_CACHE:
+            case EXECUTE_SQL_QUERY:
+            case EXECUTE_SQL_FIELDS_QUERY:
+            case CLOSE_SQL_QUERY:
+            case FETCH_SQL_QUERY:
                 break;
 
             default:


[3/5] incubator-ignite git commit: #ignite-961: fix comments after review.

Posted by iv...@apache.org.
#ignite-961: fix comments after review.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/65c72c5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/65c72c5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/65c72c5b

Branch: refs/heads/ignite-961-master
Commit: 65c72c5b58bf483d10a6d08513c6848164924fb4
Parents: f93ec69
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 20 14:43:52 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 20 14:43:52 2015 +0300

----------------------------------------------------------------------
 .../JettyRestProcessorAbstractSelfTest.java     |  2 +-
 .../handlers/query/QueryCommandHandler.java     | 71 +++++++-------------
 2 files changed, 25 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/65c72c5b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
index c6bf945..f1cfe96 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
@@ -1125,7 +1125,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
 
             GridRestCommandHandler qryHnd = handlers.get(GridRestCommand.CLOSE_SQL_QUERY);
 
-            ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "curs");
+            ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "qryCurs");
 
             found |= its.size() != 0;
         }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/65c72c5b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
index 1a97995..defca37 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
@@ -25,6 +25,7 @@ import org.apache.ignite.internal.processors.rest.handlers.*;
 import org.apache.ignite.internal.processors.rest.request.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 
 import java.util.*;
 import java.util.concurrent.*;
@@ -45,11 +46,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
     /** Query ID sequence. */
     private static final AtomicLong qryIdGen = new AtomicLong();
 
-    /** Current queries. */
-    private final ConcurrentHashMap<Long, Iterator> curs = new ConcurrentHashMap<>();
-
     /** Current queries cursors. */
-    private final ConcurrentHashMap<Long, QueryCursor> qryCurs = new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs = new ConcurrentHashMap<>();
 
     /**
      * @param ctx Context.
@@ -74,17 +72,17 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
             case EXECUTE_SQL_QUERY:
             case EXECUTE_SQL_FIELDS_QUERY: {
                 return ctx.closure().callLocalSafe(
-                    new ExecuteQueryCallable(ctx, (RestSqlQueryRequest)req, curs, qryCurs), false);
+                    new ExecuteQueryCallable(ctx, (RestSqlQueryRequest)req, qryCurs), false);
             }
 
             case FETCH_SQL_QUERY: {
                 return ctx.closure().callLocalSafe(
-                    new FetchQueryCallable((RestSqlQueryRequest)req, curs, qryCurs), false);
+                    new FetchQueryCallable((RestSqlQueryRequest)req, qryCurs), false);
             }
 
             case CLOSE_SQL_QUERY: {
                 return ctx.closure().callLocalSafe(
-                    new CloseQueryCallable((RestSqlQueryRequest)req, curs, qryCurs), false);
+                    new CloseQueryCallable((RestSqlQueryRequest)req, qryCurs), false);
             }
         }
 
@@ -101,22 +99,18 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
         /** Execute query request. */
         private RestSqlQueryRequest req;
 
-        /** Queries iterators. */
-        private ConcurrentHashMap<Long, Iterator> curs;
-
         /** Queries cursors. */
-        private ConcurrentHashMap<Long, QueryCursor> qryCurs;
+        private ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs;
 
         /**
          * @param ctx Kernal context.
          * @param req Execute query request.
-         * @param curs Queries cursors.
+         * @param qryCurs Queries cursors.
          */
         public ExecuteQueryCallable(GridKernalContext ctx, RestSqlQueryRequest req,
-            ConcurrentHashMap<Long, Iterator> curs, ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+            ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) {
             this.ctx = ctx;
             this.req = req;
-            this.curs = curs;
             this.qryCurs = qryCurs;
         }
 
@@ -148,16 +142,14 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
 
                 Iterator cur = qryCur.iterator();
 
-                qryCurs.put(qryId, qryCur);
-                curs.put(qryId, cur);
+                qryCurs.put(qryId, new IgniteBiTuple<>(qryCur, cur));
 
-                CacheQueryResult res = createQueryResult(qryCurs, curs, cur, req, qryId);
+                CacheQueryResult res = createQueryResult(qryCurs, cur, req, qryId);
 
                 return new GridRestResponse(res);
             }
             catch (Exception e) {
                 qryCurs.remove(qryId);
-                curs.remove(qryId);
 
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
             }
@@ -171,28 +163,23 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
         /** Execute query request. */
         private RestSqlQueryRequest req;
 
-        /** Queries iterators. */
-        private ConcurrentHashMap<Long, Iterator> curs;
-
         /** Queries cursors. */
-        private ConcurrentHashMap<Long, QueryCursor> qryCurs;
+        private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs;
 
         /**
          * @param req Execute query request.
-         * @param curs Queries cursors.
+         * @param qryCurs Queries cursors.
          */
         public CloseQueryCallable(RestSqlQueryRequest req,
-            ConcurrentHashMap<Long, Iterator> curs,
-            ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+            ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) {
             this.req = req;
-            this.curs = curs;
             this.qryCurs = qryCurs;
         }
 
         /** {@inheritDoc} */
         @Override public GridRestResponse call() throws Exception {
             try {
-                QueryCursor cur = qryCurs.get(req.queryId());
+                QueryCursor cur = qryCurs.get(req.queryId()).get1();
 
                 if (cur == null)
                     return new GridRestResponse(GridRestResponse.STATUS_FAILED,
@@ -201,13 +188,11 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
                 cur.close();
 
                 qryCurs.remove(req.queryId());
-                curs.remove(req.queryId());
 
                 return new GridRestResponse(true);
             }
             catch (Exception e) {
                 qryCurs.remove(req.queryId());
-                curs.remove(req.queryId());
 
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
             }
@@ -221,38 +206,33 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
         /** Execute query request. */
         private RestSqlQueryRequest req;
 
-        /** Queries iterators. */
-        private ConcurrentHashMap<Long, Iterator> curs;
-
         /** Queries cursors. */
-        private ConcurrentHashMap<Long, QueryCursor> qryCurs;
+        private final ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs;
 
         /**
          * @param req Execute query request.
-         * @param curs Queries cursors.
+         * @param qryCurs Queries cursors.
          */
-        public FetchQueryCallable(RestSqlQueryRequest req, ConcurrentHashMap<Long, Iterator> curs,
-            ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+        public FetchQueryCallable(RestSqlQueryRequest req,
+            ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs) {
             this.req = req;
-            this.curs = curs;
             this.qryCurs = qryCurs;
         }
 
         /** {@inheritDoc} */
         @Override public GridRestResponse call() throws Exception {
             try {
-                Iterator cur = curs.get(req.queryId());
+                Iterator cur = qryCurs.get(req.queryId()).get2();
 
                 if (cur == null)
                     return new GridRestResponse(GridRestResponse.STATUS_FAILED,
                         "Cannot find query [qryId=" + req.queryId() + "]");
 
-                CacheQueryResult res = createQueryResult(qryCurs, curs, cur, req, req.queryId());
+                CacheQueryResult res = createQueryResult(qryCurs, cur, req, req.queryId());
 
                 return new GridRestResponse(res);
             }
             catch (Exception e) {
-                curs.remove(req.queryId());
                 qryCurs.remove(req.queryId());
 
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
@@ -262,15 +242,14 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
 
     /**
      * @param qryCurs Query cursors.
-     * @param curs Queries iterators.
      * @param cur Current cursor.
      * @param req Sql request.
      * @param qryId Query id.
      * @return Query result with items.
      */
-    private static CacheQueryResult createQueryResult(ConcurrentHashMap<Long, QueryCursor> qryCurs,
-        ConcurrentHashMap<Long, Iterator> curs, Iterator cur,
-        RestSqlQueryRequest req, Long qryId) {
+    private static CacheQueryResult createQueryResult(
+        ConcurrentHashMap<Long, IgniteBiTuple<QueryCursor, Iterator>> qryCurs,
+        Iterator cur, RestSqlQueryRequest req, Long qryId) {
         CacheQueryResult res = new CacheQueryResult();
 
         List<Object> items = new ArrayList<>();
@@ -284,10 +263,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
 
         res.setQueryId(qryId);
 
-        if (!cur.hasNext()) {
+        if (!cur.hasNext())
             qryCurs.remove(qryId);
-            curs.remove(qryId);
-        }
 
         return res;
     }


[5/5] incubator-ignite git commit: #ignite-961: wip.

Posted by iv...@apache.org.
#ignite-961: wip.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/268f30ac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/268f30ac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/268f30ac

Branch: refs/heads/ignite-961-master
Commit: 268f30acb0493bc0ec5ce9b76bdaeb85aa68bf68
Parents: 09d598e
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 20 16:16:38 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 20 16:16:38 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    | 46 +++++++++++++----
 .../handlers/cache/GridCacheCommandHandler.java | 53 +++++++++-----------
 2 files changed, 60 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/268f30ac/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 c411f2e..7fd75ce 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
@@ -439,7 +439,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
         assert cfg != null;
 
         return F.transform(cfg.getUserAttributes().entrySet(), new C1<Map.Entry<String, ?>, String>() {
-            @Override public String apply(Map.Entry<String, ?> e) {
+            @Override
+            public String apply(Map.Entry<String, ?> e) {
                 return e.getKey() + ", " + e.getValue().toString();
             }
         });
@@ -2440,25 +2441,32 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
 
     /** {@inheritDoc} */
     @Override public void destroyCache(String cacheName) {
-        guard();
-
-        IgniteInternalFuture<?> stopFut;
+        IgniteInternalFuture stopFut = destroyCacheAsync(cacheName);
 
         try {
-            stopFut = ctx.cache().dynamicDestroyCache(cacheName);
+            stopFut.get();
         }
-        finally {
-            unguard();
+        catch (IgniteCheckedException e) {
+            throw CU.convertToCacheException(e);
         }
+    }
+
+    /**
+     * @param cacheName Cache name.
+     * @return Ignite future.
+     */
+    public IgniteInternalFuture destroyCacheAsync(String cacheName) {
+        guard();
 
         try {
-            stopFut.get();
+            return ctx.cache().dynamicDestroyCache(cacheName);
         }
-        catch (IgniteCheckedException e) {
-            throw CU.convertToCacheException(e);
+        finally {
+            unguard();
         }
     }
 
+
     /** {@inheritDoc} */
     @Override public <K, V> IgniteCache<K, V> getOrCreateCache(String cacheName) {
         guard();
@@ -2477,6 +2485,24 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
         }
     }
 
+    /**
+     * @param cacheName Cache name.
+     * @return Future that will be completed when cache is deployed.
+     */
+    public IgniteInternalFuture getOrCreateCacheAsync(String cacheName) {
+        guard();
+
+        try {
+            if (ctx.cache().cache(cacheName) == null)
+                ctx.cache().getOrCreateFromTemplate(cacheName);
+
+            return ctx.cache().dynamicStartCache(null, cacheName, null, false, true);
+        }
+        finally {
+            unguard();
+        }
+    }
+
     /** {@inheritDoc} */
     @Override public <K, V> void addCacheConfiguration(CacheConfiguration<K, V> cacheCfg) {
         A.notNull(cacheCfg, "cacheCfg");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/268f30ac/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
index c20360a..883a2bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
@@ -158,13 +158,25 @@ public class GridCacheCommandHandler extends GridRestCommandHandlerAdapter {
 
             switch (cmd) {
                 case DESTROY_CACHE: {
-                    fut = ctx.closure().callLocalSafe(new DestroyCacheCommand(ctx, cacheName));
+                    fut = new DestroyCacheCommand(cacheName).apply(ctx).chain(
+                        new CX1<IgniteInternalFuture<?>, GridRestResponse>() {
+                            @Override public GridRestResponse applyx(IgniteInternalFuture<?> f)
+                                throws IgniteCheckedException {
+                                return new GridRestResponse(f.get());
+                            }
+                        });
 
                     break;
                 }
 
                 case GET_OR_CREATE_CACHE: {
-                    fut = ctx.closure().callLocalSafe(new GetOrCreateCacheCallable(ctx, cacheName));
+                    fut = new GetOrCreateCacheClosure(cacheName).apply(ctx).chain(
+                        new CX1<IgniteInternalFuture<?>, GridRestResponse>() {
+                        @Override public GridRestResponse applyx(IgniteInternalFuture<?> f)
+                            throws IgniteCheckedException {
+                            return new GridRestResponse(f.get());
+                        }
+                    });
 
                     break;
                 }
@@ -1340,54 +1352,37 @@ public class GridCacheCommandHandler extends GridRestCommandHandlerAdapter {
     /**
      * Destroy cache callable.
      */
-    private static class DestroyCacheCommand extends GetOrCreateCacheCallable {
+    private static class DestroyCacheCommand extends GetOrCreateCacheClosure {
 
-        public DestroyCacheCommand(GridKernalContext ctx, String cacheName) {
-            super(ctx, cacheName);
+        public DestroyCacheCommand(String cacheName) {
+            super(cacheName);
         }
 
         /** {@inheritDoc} */
-        @Override public GridRestResponse call() throws Exception {
-            try {
-                ctx.grid().destroyCache(cacheName);
-
-                return new GridRestResponse();
-            }
-            catch (Exception e) {
-                return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
-            }
+        @Override public IgniteInternalFuture<?> apply(GridKernalContext ctx) {
+            return ((IgniteKernal)ctx.grid()).destroyCacheAsync(cacheName);
         }
     }
 
     /**
      * Get or create cache callable.
      */
-    private static class GetOrCreateCacheCallable implements Callable<GridRestResponse> {
-        /** Kernal context. */
-        protected GridKernalContext ctx;
+    private static class GetOrCreateCacheClosure implements
+        IgniteClosure<GridKernalContext, IgniteInternalFuture<?>> {
 
         /** Cache name. */
         protected String cacheName;
 
         /**
-         * @param ctx Kernal context.
          * @param cacheName Cache name.
          */
-        public GetOrCreateCacheCallable(GridKernalContext ctx, String cacheName) {
-            this.ctx = ctx;
+        public GetOrCreateCacheClosure(String cacheName) {
             this.cacheName = cacheName;
         }
 
         /** {@inheritDoc} */
-        @Override public GridRestResponse call() throws Exception {
-            try {
-                ctx.grid().getOrCreateCache(cacheName);
-
-                return new GridRestResponse();
-            }
-            catch (Exception e) {
-                return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
-            }
+        @Override public IgniteInternalFuture<?> apply(GridKernalContext ctx) {
+            return ((IgniteKernal)ctx.grid()).getOrCreateCacheAsync(cacheName);
         }
     }
 }


[4/5] incubator-ignite git commit: #ignite-961: fix comments after review.

Posted by iv...@apache.org.
#ignite-961: fix comments after review.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/09d598e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/09d598e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/09d598e4

Branch: refs/heads/ignite-961-master
Commit: 09d598e46a083c1ce98274a37d34639f91fc7ba7
Parents: 65c72c5
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 20 14:55:07 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 20 14:55:07 2015 +0300

----------------------------------------------------------------------
 .../JettyRestProcessorAbstractSelfTest.java     | 39 ++++++++++++++------
 1 file changed, 28 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/09d598e4/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
index f1cfe96..7354214 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
@@ -61,7 +61,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
-        grid(0).cache(null).clear();
+        grid(0).cache(null).removeAll();
     }
 
     /** {@inheritDoc} */
@@ -1009,16 +1009,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
 
         assertEquals(2, items.size());
 
-        for (int i = 0; i < GRID_CNT; ++i) {
-            Map<GridRestCommand, GridRestCommandHandler> handlers =
-                GridTestUtils.getFieldValue(grid(i).context().rest(), "handlers");
-
-            GridRestCommandHandler qryHnd = handlers.get(GridRestCommand.CLOSE_SQL_QUERY);
-
-            ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "curs");
-
-            assertEquals(0, its.size());
-        }
+        assertFalse(queryCursorFound());
     }
 
     /**
@@ -1074,6 +1065,32 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
     /**
      * @throws Exception If failed.
      */
+    public void testSqlFieldsQuery() throws Exception {
+        String qry = "select concat(firstName, ' ', lastName) from Person";
+
+        Map<String, String> params = new HashMap<>();
+        params.put("cmd", "qryfieldsexecute");
+        params.put("psz", "10");
+        params.put("cacheName", "person");
+        params.put("qry", URLEncoder.encode(qry));
+
+        String ret = content(params);
+
+        assertNotNull(ret);
+        assertTrue(!ret.isEmpty());
+
+        JSONObject json = JSONObject.fromObject(ret);
+
+        List items = (List)((Map)json.get("response")).get("items");
+
+        assertEquals(4, items.size());
+
+        assertFalse(queryCursorFound());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testQueryClose() throws Exception {
         String qry = "salary > ? and salary <= ?";
 


[2/5] incubator-ignite git commit: #ignite-961: fix comments after review.

Posted by iv...@apache.org.
#ignite-961: fix comments after review.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f93ec699
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f93ec699
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f93ec699

Branch: refs/heads/ignite-961-master
Commit: f93ec6994b62ade48687cb9d4784588d366f8861
Parents: c99433b
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Jul 20 14:31:13 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Jul 20 14:31:13 2015 +0300

----------------------------------------------------------------------
 .../JettyRestProcessorAbstractSelfTest.java     | 82 +++++++++++++++-----
 .../handlers/query/QueryCommandHandler.java     | 21 ++---
 2 files changed, 75 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f93ec699/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
index c6c8195..c6bf945 100644
--- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
@@ -328,7 +328,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
         jsonEquals(ret,
             // getKey[12] is used since the order is not determined.
             cacheBulkPattern("\\{\\\"getKey[12]\\\":\\\"getVal[12]\\\"\\,\\\"getKey[12]\\\":\\\"getVal[12]\\\"\\}",
-            true));
+                true));
     }
 
     /**
@@ -1024,6 +1024,56 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
     /**
      * @throws Exception If failed.
      */
+    public void testQuery() throws Exception {
+        grid(0).cache(null).put("1", "1");
+        grid(0).cache(null).put("2", "2");
+        grid(0).cache(null).put("3", "3");
+
+        Map<String, String> params = new HashMap<>();
+        params.put("cmd", "qryexecute");
+        params.put("type", "String");
+        params.put("psz", "1");
+        params.put("qry", URLEncoder.encode("select * from String"));
+
+        String ret = content(params);
+
+        assertNotNull(ret);
+        assertTrue(!ret.isEmpty());
+
+        JSONObject json = JSONObject.fromObject(ret);
+
+        Integer qryId = (Integer)((Map)json.get("response")).get("queryId");
+
+        assertNotNull(qryId);
+
+        ret = content(F.asMap("cmd", "qryfetch", "psz", "1", "qryId", String.valueOf(qryId)));
+
+        json = JSONObject.fromObject(ret);
+
+        Integer qryId0 = (Integer)((Map)json.get("response")).get("queryId");
+
+        Boolean last = (Boolean)((Map)json.get("response")).get("last");
+
+        assertEquals(qryId0, qryId);
+        assertFalse(last);
+
+        ret = content(F.asMap("cmd", "qryfetch", "psz", "1", "qryId", String.valueOf(qryId)));
+
+        json = JSONObject.fromObject(ret);
+
+        qryId0 = (Integer)((Map)json.get("response")).get("queryId");
+
+        last = (Boolean)((Map)json.get("response")).get("last");
+
+        assertEquals(qryId0, qryId);
+        assertTrue(last);
+
+        assertFalse(queryCursorFound());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testQueryClose() throws Exception {
         String qry = "salary > ? and salary <= ?";
 
@@ -1047,20 +1097,7 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
 
         assertEquals(1, items.size());
 
-        boolean found = false;
-
-        for (int i = 0; i < GRID_CNT; ++i) {
-            Map<GridRestCommand, GridRestCommandHandler> handlers =
-                GridTestUtils.getFieldValue(grid(i).context().rest(), "handlers");
-
-            GridRestCommandHandler qryHnd = handlers.get(GridRestCommand.CLOSE_SQL_QUERY);
-
-            ConcurrentHashMap<Long, Iterator> its = GridTestUtils.getFieldValue(qryHnd, "curs");
-
-            found |= its.size() != 0;
-        }
-
-        assertTrue(found);
+        assertTrue(queryCursorFound());
 
         Integer qryId = (Integer)((Map)json.get("response")).get("queryId");
 
@@ -1071,7 +1108,16 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
         assertNotNull(ret);
         assertTrue(!ret.isEmpty());
 
-        found = false;
+        assertFalse(queryCursorFound());
+    }
+
+    protected abstract String signature() throws Exception;
+
+    /**
+     * @return True if any query cursor is available.
+     */
+    private boolean queryCursorFound() {
+        boolean found = false;
 
         for (int i = 0; i < GRID_CNT; ++i) {
             Map<GridRestCommand, GridRestCommandHandler> handlers =
@@ -1084,11 +1130,9 @@ abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestProcessorS
             found |= its.size() != 0;
         }
 
-        assertFalse(found);
+        return found;
     }
 
-    protected abstract String signature() throws Exception;
-
     /**
      * Init cache.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f93ec699/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
index 097c7aa..1a97995 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/query/QueryCommandHandler.java
@@ -113,7 +113,7 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
          * @param curs Queries cursors.
          */
         public ExecuteQueryCallable(GridKernalContext ctx, RestSqlQueryRequest req,
-                                    ConcurrentHashMap<Long, Iterator> curs, ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+            ConcurrentHashMap<Long, Iterator> curs, ConcurrentHashMap<Long, QueryCursor> qryCurs) {
             this.ctx = ctx;
             this.req = req;
             this.curs = curs;
@@ -122,6 +122,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
 
         /** {@inheritDoc} */
         @Override public GridRestResponse call() throws Exception {
+            long qryId = qryIdGen.getAndIncrement();
+
             try {
                 Query qry;
 
@@ -140,14 +142,12 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
 
                 if (cache == null)
                     return new GridRestResponse(GridRestResponse.STATUS_FAILED,
-                        "No cache with name. [cacheName=" + req.cacheName() + "]");
+                        "No cache with name [cacheName=" + req.cacheName() + "]");
 
                 QueryCursor qryCur = cache.query(qry);
 
                 Iterator cur = qryCur.iterator();
 
-                long qryId = qryIdGen.getAndIncrement();
-
                 qryCurs.put(qryId, qryCur);
                 curs.put(qryId, cur);
 
@@ -156,6 +156,9 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
                 return new GridRestResponse(res);
             }
             catch (Exception e) {
+                qryCurs.remove(qryId);
+                curs.remove(qryId);
+
                 return new GridRestResponse(GridRestResponse.STATUS_FAILED, e.getMessage());
             }
         }
@@ -179,8 +182,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
          * @param curs Queries cursors.
          */
         public CloseQueryCallable(RestSqlQueryRequest req,
-                                  ConcurrentHashMap<Long, Iterator> curs,
-                                  ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+            ConcurrentHashMap<Long, Iterator> curs,
+            ConcurrentHashMap<Long, QueryCursor> qryCurs) {
             this.req = req;
             this.curs = curs;
             this.qryCurs = qryCurs;
@@ -229,7 +232,7 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
          * @param curs Queries cursors.
          */
         public FetchQueryCallable(RestSqlQueryRequest req, ConcurrentHashMap<Long, Iterator> curs,
-                                  ConcurrentHashMap<Long, QueryCursor> qryCurs) {
+            ConcurrentHashMap<Long, QueryCursor> qryCurs) {
             this.req = req;
             this.curs = curs;
             this.qryCurs = qryCurs;
@@ -266,8 +269,8 @@ public class QueryCommandHandler extends GridRestCommandHandlerAdapter {
      * @return Query result with items.
      */
     private static CacheQueryResult createQueryResult(ConcurrentHashMap<Long, QueryCursor> qryCurs,
-                                                      ConcurrentHashMap<Long, Iterator> curs, Iterator cur,
-                                                      RestSqlQueryRequest req, Long qryId) {
+        ConcurrentHashMap<Long, Iterator> curs, Iterator cur,
+        RestSqlQueryRequest req, Long qryId) {
         CacheQueryResult res = new CacheQueryResult();
 
         List<Object> items = new ArrayList<>();