You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by al...@apache.org on 2020/07/21 14:29:19 UTC
[ignite] branch master updated: IGNITE-13261 Fix transactions and
scan queries inside the ignite sandbox - Fixes #8049.
This is an automated email from the ASF dual-hosted git repository.
alexpl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new cd87fbd IGNITE-13261 Fix transactions and scan queries inside the ignite sandbox - Fixes #8049.
cd87fbd is described below
commit cd87fbd0ddac730ff2b2ad00ed4c488c875b06cd
Author: d.garus <ga...@gmail.com>
AuthorDate: Tue Jul 21 19:26:48 2020 +0500
IGNITE-13261 Fix transactions and scan queries inside the ignite sandbox - Fixes #8049.
Signed-off-by: Aleksey Plekhanov <pl...@gmail.com>
---
.../sandbox/SandboxIgniteComponentProxy.java | 8 +++++-
.../sandbox/IgniteOperationsInsideSandboxTest.java | 29 +++++++++++++++++++---
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/security/sandbox/SandboxIgniteComponentProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/security/sandbox/SandboxIgniteComponentProxy.java
index c8863eb..a8d79ef 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/security/sandbox/SandboxIgniteComponentProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/security/sandbox/SandboxIgniteComponentProxy.java
@@ -39,7 +39,10 @@ import org.apache.ignite.IgniteSemaphore;
import org.apache.ignite.IgniteSet;
import org.apache.ignite.IgniteTransactions;
import org.apache.ignite.cache.affinity.Affinity;
+import org.apache.ignite.cache.query.QueryCursor;
import org.apache.ignite.internal.processors.security.SecurityUtils;
+import org.apache.ignite.internal.util.lang.GridIterator;
+import org.apache.ignite.transactions.Transaction;
/** Create instace of Ignite component proxy to use inside the Ignite Sandbox. */
public final class SandboxIgniteComponentProxy {
@@ -62,7 +65,10 @@ public final class SandboxIgniteComponentProxy {
IgniteQueue.class,
IgniteSet.class,
IgniteBinary.class,
- Affinity.class
+ Affinity.class,
+ QueryCursor.class,
+ GridIterator.class,
+ Transaction.class
};
/**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/security/sandbox/IgniteOperationsInsideSandboxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/security/sandbox/IgniteOperationsInsideSandboxTest.java
index aa64e27..f0df33c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/security/sandbox/IgniteOperationsInsideSandboxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/security/sandbox/IgniteOperationsInsideSandboxTest.java
@@ -21,11 +21,13 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
+import javax.cache.Cache;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteCompute;
import org.apache.ignite.IgniteDataStreamer;
import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.CacheEntryProcessor;
import org.apache.ignite.cache.query.ScanQuery;
import org.apache.ignite.cluster.ClusterNode;
@@ -40,6 +42,7 @@ import org.apache.ignite.lang.IgniteCallable;
import org.apache.ignite.lang.IgniteClosure;
import org.apache.ignite.lang.IgniteRunnable;
import org.apache.ignite.resources.IgniteInstanceResource;
+import org.apache.ignite.transactions.Transaction;
import org.jetbrains.annotations.Nullable;
import org.junit.Test;
@@ -110,19 +113,18 @@ public class IgniteOperationsInsideSandboxTest extends AbstractSandboxTest {
return super.getConfiguration(igniteInstanceName)
.setCacheConfiguration(
new CacheConfiguration<String, String>(TEST_CACHE)
+ .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL)
.setCacheStoreFactory(new TestStoreFactory("1", "val"))
);
}
/** {@inheritDoc} */
@Override protected void prepareCluster() throws Exception {
- Ignite srv = startGrid(SRV, ALLOW_ALL, false);
+ startGrid(SRV, ALLOW_ALL, false);
startGrid("srv_2", ALLOW_ALL, false);
startGrid(CLNT_ALLOWED_WRITE_PROP, ALLOW_ALL, true);
-
- srv.cluster().active(true);
}
/** */
@@ -181,7 +183,10 @@ public class IgniteOperationsInsideSandboxTest extends AbstractSandboxTest {
cache.invokeAsync("key", processor()).get();
cache.invokeAllAsync(singleton("key"), processor()).get();
- cache.query(new ScanQuery<String, Integer>()).getAll();
+ for (Cache.Entry<String, String> entry : cache)
+ log.info(entry.toString());
+
+ cache.query(new ScanQuery<String, String>()).getAll();
}
}
);
@@ -204,6 +209,22 @@ public class IgniteOperationsInsideSandboxTest extends AbstractSandboxTest {
}
/** */
+ @Test
+ public void testTransaction() {
+ compute().broadcast(
+ new TestRunnable() {
+ @Override public void run() {
+ try (Transaction tx = ignite.transactions().txStart()) {
+ ignite.cache(TEST_CACHE).put("key", "transaction_test");
+ ignite.cache(TEST_CACHE).get("key");
+
+ tx.commit();
+ }
+ }
+ });
+ }
+
+ /** */
private IgniteCompute compute() {
Ignite clnt = grid(CLNT_ALLOWED_WRITE_PROP);