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<>();