You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/05/15 13:23:01 UTC
[01/32] incubator-ignite git commit: # ignite-10151 Change FlatSpec
to FunSpec in scalatests.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-709_3 4717ea97e -> 6d1104372
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/tasks/VisorTasksCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/tasks/VisorTasksCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/tasks/VisorTasksCommandSpec.scala
index 320a6bb..db07543 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/tasks/VisorTasksCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/tasks/VisorTasksCommandSpec.scala
@@ -34,7 +34,7 @@ import scala.collection._
/**
* Unit test for 'tasks' command.
*/
-class VisorTasksCommandSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
+class VisorTasksCommandSpec extends FunSpec with Matchers with BeforeAndAfterAll {
/**
* Open visor and execute several tasks before all tests.
*/
@@ -103,78 +103,78 @@ class VisorTasksCommandSpec extends FlatSpec with Matchers with BeforeAndAfterAl
Ignition.stopAll(false)
}
- behavior of "A 'tasks' visor command"
-
- it should "print tasks when called w/o arguments" in {
- visor.tasks()
- }
+ describe("A 'tasks' visor command") {
+ it("should print tasks when called w/o arguments") {
+ visor.tasks()
+ }
- it should "print error message with incorrect argument" in {
- visor.tasks("-xx")
- }
+ it("should print error message with incorrect argument") {
+ visor.tasks("-xx")
+ }
- it should "print task summary when called for specific task" in {
- visor.tasks("-n=@t1")
- }
+ it("should print task summary when called for specific task") {
+ visor.tasks("-n=@t1")
+ }
- it should "print execution when called for specific execution" in {
- visor.tasks("-e=@e1")
- }
+ it("should print execution when called for specific execution") {
+ visor.tasks("-e=@e1")
+ }
- it should "print all tasks" in {
- visor.tasks("-l")
- }
+ it("should print all tasks") {
+ visor.tasks("-l")
+ }
- it should "print all tasks and executions" in {
- visor.tasks("-l -a")
- }
+ it("should print all tasks and executions") {
+ visor.tasks("-l -a")
+ }
- it should "print tasks that started during last 5 seconds" in {
- visor.tasks("-l -t=5s")
- }
+ it("should print tasks that started during last 5 seconds") {
+ visor.tasks("-l -t=5s")
+ }
- it should "print error message about invalid time period" in {
- visor.tasks("-l -t=x2s")
- }
+ it("should print error message about invalid time period") {
+ visor.tasks("-l -t=x2s")
+ }
- it should "print error message about negative time period" in {
- visor.tasks("-l -t=-10s")
- }
+ it("should print error message about negative time period") {
+ visor.tasks("-l -t=-10s")
+ }
- it should "print error message about invalid time period specification" in {
- visor.tasks("-l -t=10x")
- }
+ it("should print error message about invalid time period specification") {
+ visor.tasks("-l -t=10x")
+ }
- it should "print task summary for the first task" in {
- visor.tasks("-n=TestTask1")
- }
+ it("should print task summary for the first task") {
+ visor.tasks("-n=TestTask1")
+ }
- it should "print task summary and executions for the first task" in {
- visor.tasks("-n=TestTask1 -a")
- }
+ it("should print task summary and executions for the first task") {
+ visor.tasks("-n=TestTask1 -a")
+ }
- it should "print list of tasks grouped by nodes" in {
- visor.tasks("-g")
- }
+ it("should print list of tasks grouped by nodes") {
+ visor.tasks("-g")
+ }
- it should "print list of tasks that started during last 5 minutes grouped by nodes" in {
- visor.tasks("-g -t=5m")
- }
+ it("should print list of tasks that started during last 5 minutes grouped by nodes") {
+ visor.tasks("-g -t=5m")
+ }
- it should "print list of tasks grouped by hosts" in {
- visor.tasks("-h")
- }
+ it("should print list of tasks grouped by hosts") {
+ visor.tasks("-h")
+ }
- it should "print list of tasks that started during last 5 minutes grouped by hosts" in {
- visor.tasks("-h -t=5m")
- }
+ it("should print list of tasks that started during last 5 minutes grouped by hosts") {
+ visor.tasks("-h -t=5m")
+ }
- it should "print list of tasks filtered by substring" in {
- visor.tasks("-s=TestTask")
- }
+ it("should print list of tasks filtered by substring") {
+ visor.tasks("-s=TestTask")
+ }
- it should "print list of tasks and executions filtered by substring" in {
- visor.tasks("-s=TestTask -a")
+ it("should print list of tasks and executions filtered by substring") {
+ visor.tasks("-s=TestTask -a")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/top/VisorTopologyCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/top/VisorTopologyCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/top/VisorTopologyCommandSpec.scala
index 3a3b6e5..515cf67 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/top/VisorTopologyCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/top/VisorTopologyCommandSpec.scala
@@ -24,39 +24,39 @@ import org.apache.ignite.visor.commands.top.VisorTopologyCommand._
* Unit test for topology commands.
*/
class VisorTopologyCommandSpec extends VisorRuntimeBaseSpec(2) {
- behavior of "A 'top' visor command"
+ describe("A 'top' visor command") {
+ it("should advise to connect") {
+ closeVisorQuiet()
- it should "advise to connect" in {
- closeVisorQuiet()
+ visor.top()
+ }
- visor.top()
- }
-
- it should "print error message" in {
- visor.top("-cc=eq1x")
- }
+ it("should print error message") {
+ visor.top("-cc=eq1x")
+ }
- it should "print full topology" in {
- visor.top()
- }
+ it("should print full topology") {
+ visor.top()
+ }
- it should "print nodes with idle time greater than 12000ms" in {
- visor.top("-it=gt12000")
- }
+ it("should print nodes with idle time greater than 12000ms") {
+ visor.top("-it=gt12000")
+ }
- it should "print nodes with idle time greater than 12sec" in {
- visor.top("-it=gt12s")
- }
+ it("should print nodes with idle time greater than 12sec") {
+ visor.top("-it=gt12s")
+ }
- it should "print full information about all nodes" in {
- visor.top("-a")
- }
+ it("should print full information about all nodes") {
+ visor.top("-a")
+ }
- it should "print information about nodes on localhost" in {
- visor.top("-h=192.168.1.100")
- }
+ it("should print information about nodes on localhost") {
+ visor.top("-h=192.168.1.100")
+ }
- it should "print full information about nodes on localhost" in {
- visor.top("-h=localhost")
+ it("should print full information about nodes on localhost") {
+ visor.top("-h=localhost")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/vvm/VisorVvmCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/vvm/VisorVvmCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/vvm/VisorVvmCommandSpec.scala
index 969fb94..1a4bc3e 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/vvm/VisorVvmCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/vvm/VisorVvmCommandSpec.scala
@@ -25,22 +25,22 @@ import org.apache.ignite.visor.commands.vvm.VisorVvmCommand._
/**
* Unit test for 'vvm' command.
*/
-class VisorVvmCommandSpec extends FlatSpec with Matchers {
- behavior of "A 'vvm' visor command"
+class VisorVvmCommandSpec extends FunSpec with Matchers {
+ describe("A 'vvm' visor command") {
+ it("should print error message when not connected") {
+ visor.vvm()
+ }
- it should "print error message when not connected" in {
- visor.vvm()
- }
-
- it should "open VisualVM connected to all nodes skipping ones with disabled JMX" in {
- visor.open("-d")
- visor.vvm()
- visor.close()
- }
+ it("should open VisualVM connected to all nodes skipping ones with disabled JMX") {
+ visor.open("-d")
+ visor.vvm()
+ visor.close()
+ }
- it should "open VisualVM connected to first node if it has JMX enabled" in {
- visor.open("-d")
- visor.vvm("-id8=@n1")
- visor.close()
+ it("should open VisualVM connected to first node if it has JMX enabled") {
+ visor.open("-d")
+ visor.vvm("-id8=@n1")
+ visor.close()
+ }
}
}
[04/32] incubator-ignite git commit: # IGNITE-894 Code cleanup.
Posted by sb...@apache.org.
# IGNITE-894 Code cleanup.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/96ad5a86
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/96ad5a86
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/96ad5a86
Branch: refs/heads/ignite-709_3
Commit: 96ad5a8605b54e02057253ad7d330f2726ddd687
Parents: f027ac5
Author: sevdokimov <se...@gridgain.com>
Authored: Tue May 12 18:39:37 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Tue May 12 18:39:37 2015 +0300
----------------------------------------------------------------------
.../processors/resource/GridResourceField.java | 5 +----
.../processors/resource/GridResourceIoc.java | 18 ++++++++++--------
.../apache/ignite/internal/util/IgniteUtils.java | 3 +++
3 files changed, 14 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96ad5a86/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceField.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceField.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceField.java
index 162de1c..fed7ebd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceField.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceField.java
@@ -44,10 +44,7 @@ class GridResourceField {
* @param field Field where resource should be injected.
* @param ann Resource annotation.
*/
- GridResourceField(Field field, @Nullable Annotation ann) {
- assert field != null;
- assert ann != null || GridResourceUtils.mayRequireResources(field);
-
+ GridResourceField(@NotNull Field field, @NotNull Annotation ann) {
this.field = field;
this.ann = ann;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96ad5a86/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
index c2ef116..3d853d6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
import org.apache.ignite.internal.managers.deployment.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
@@ -142,9 +143,9 @@ class GridResourceIoc {
boolean injected = false;
- for (GridResourceField field : descr.recursiveFields()) {
+ for (Field field : descr.recursiveFields()) {
try {
- Object obj = field.getField().get(target);
+ Object obj = field.get(target);
if (obj != null) {
assert checkedObjs != null;
@@ -153,7 +154,7 @@ class GridResourceIoc {
}
}
catch (IllegalAccessException e) {
- throw new IgniteCheckedException("Failed to inject resource [field=" + field.getField().getName() +
+ throw new IgniteCheckedException("Failed to inject resource [field=" + field.getName() +
", target=" + target + ']', e);
}
}
@@ -253,7 +254,7 @@ class GridResourceIoc {
*/
private static class ClassDescriptor {
/** */
- private final GridResourceField[] recursiveFields;
+ private final Field[] recursiveFields;
/** */
private final Map<Class<? extends Annotation>, T2<GridResourceField[], GridResourceMethod[]>> annMap;
@@ -265,7 +266,7 @@ class GridResourceIoc {
Map<Class<? extends Annotation>, T2<List<GridResourceField>, List<GridResourceMethod>>> annMap
= new HashMap<>();
- Collection<GridResourceField> recursiveFieldsList = new ArrayList<>();
+ List<Field> recursiveFieldsList = new ArrayList<>();
boolean allowImplicitInjection = !GridNoImplicitInjection.class.isAssignableFrom(cls);
@@ -291,7 +292,7 @@ class GridResourceIoc {
&& fieldAnns.length == 0
&& GridResourceUtils.mayRequireResources(field)) {
// Account for anonymous inner classes.
- recursiveFieldsList.add(new GridResourceField(field, null));
+ recursiveFieldsList.add(field);
}
}
@@ -312,7 +313,8 @@ class GridResourceIoc {
}
}
- recursiveFields = GridResourceField.toArray(recursiveFieldsList);
+ recursiveFields = recursiveFieldsList.isEmpty() ? U.EMPTY_FIELDS
+ : recursiveFieldsList.toArray(new Field[recursiveFieldsList.size()]);
this.annMap = IgniteUtils.limitedMap(annMap.size());
@@ -328,7 +330,7 @@ class GridResourceIoc {
/**
* @return Recursive fields.
*/
- public GridResourceField[] recursiveFields() {
+ public Field[] recursiveFields() {
return recursiveFields;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96ad5a86/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index ffb4e99..673287d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -113,6 +113,9 @@ public abstract class IgniteUtils {
/** Empty longs. */
public static final long[] EMPTY_LONGS = new long[0];
+ /** Empty longs. */
+ public static final Field[] EMPTY_FIELDS = new Field[0];
+
/** System line separator. */
private static final String NL = System.getProperty("line.separator");
[16/32] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-sprint-5' into ignite-sprint-5
Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/ignite-sprint-5' into ignite-sprint-5
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ba0caa1f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ba0caa1f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ba0caa1f
Branch: refs/heads/ignite-709_3
Commit: ba0caa1fcf032c0a6c8690043c3508bef05ef72d
Parents: 87e5a3f d87f6d6
Author: avinogradov <av...@gridgain.com>
Authored: Wed May 13 18:56:39 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Wed May 13 18:56:39 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheContext.java | 7 +
.../processors/cache/GridCacheMapEntry.java | 70 ++++---
.../distributed/dht/GridDhtCacheAdapter.java | 16 +-
.../dht/GridDhtOffHeapCacheEntry.java | 63 ++++++
.../dht/GridDhtTransactionalCacheAdapter.java | 9 +-
.../distributed/dht/GridNoStorageCacheMap.java | 4 +-
.../dht/atomic/GridDhtAtomicCache.java | 3 +
.../atomic/GridDhtAtomicOffHeapCacheEntry.java | 63 ++++++
.../dht/colocated/GridDhtColocatedCache.java | 5 +-
.../GridDhtColocatedOffHeapCacheEntry.java | 63 ++++++
.../distributed/near/GridNearCacheAdapter.java | 3 +
.../near/GridNearOffHeapCacheEntry.java | 60 ++++++
.../cache/local/GridLocalCacheEntry.java | 18 ++
.../cache/CacheOffheapMapEntrySelfTest.java | 168 ++++++++++++++++
.../distributed/GridCacheLockAbstractTest.java | 2 -
...achePartitionedNearDisabledLockSelfTest.java | 47 +++++
.../GridCacheReplicatedLockSelfTest.java | 5 +
.../discovery/tcp/TcpDiscoveryRestartTest.java | 199 +++++++++++++++++++
.../testsuites/IgniteCacheTestSuite2.java | 1 +
.../testsuites/IgniteCacheTestSuite4.java | 2 +
20 files changed, 770 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
[29/32] incubator-ignite git commit: # IGNITE-894 Revert adding
@InjectRecursively.
Posted by sb...@apache.org.
# IGNITE-894 Revert adding @InjectRecursively.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/56e67e8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/56e67e8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/56e67e8f
Branch: refs/heads/ignite-709_3
Commit: 56e67e8f7ce808c190346d9228987f25b54b4e6f
Parents: 593e3ee
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 16:38:45 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 16:40:00 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/GridInternalWrapper.java | 30 ++++++++++++++++
.../closure/GridClosureProcessor.java | 25 ++++++++++----
.../internal/processors/igfs/IgfsJobImpl.java | 10 ++++--
.../processors/resource/GridResourceIoc.java | 36 ++++++++++----------
.../resource/GridResourceProcessor.java | 8 ++++-
.../processors/resource/GridResourceUtils.java | 15 ++++++++
.../processors/resource/InjectRecursively.java | 30 ----------------
.../resources/META-INF/classnames.properties | 1 -
8 files changed, 96 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java b/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
new file mode 100644
index 0000000..76563e7
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal;
+
+/**
+ * Internal wrapper interface for custom resource injection logic.
+ */
+public interface GridInternalWrapper<T> {
+ /**
+ * Get user object where resources must be injected.
+ *
+ * @return User object.
+ */
+ public T userObject();
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
index 8f5afbf..658557e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
@@ -1584,12 +1584,12 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*
*/
- private static class C1<T, R> implements ComputeJob, Externalizable {
+ private static class C1<T, R> implements ComputeJob, Externalizable, GridNoImplicitInjection,
+ GridInternalWrapper<IgniteClosure> {
/** */
private static final long serialVersionUID = 0L;
/** */
- @InjectRecursively
protected IgniteClosure<T, R> job;
/** */
@@ -1635,6 +1635,11 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
+ @Override public IgniteClosure userObject() {
+ return job;
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C1.class, this);
}
@@ -1676,12 +1681,11 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*
*/
- private static class C2<R> implements ComputeJob, Externalizable {
+ private static class C2<R> implements ComputeJob, Externalizable, GridNoImplicitInjection, GridInternalWrapper<Callable> {
/** */
private static final long serialVersionUID = 0L;
/** */
- @InjectRecursively
protected Callable<R> c;
/**
@@ -1724,6 +1728,11 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
+ @Override public Callable userObject() {
+ return c;
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C2.class, this);
}
@@ -1763,12 +1772,11 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*/
- private static class C4 implements ComputeJob, Externalizable {
+ private static class C4 implements ComputeJob, Externalizable, GridNoImplicitInjection, GridInternalWrapper<Runnable> {
/** */
private static final long serialVersionUID = 0L;
/** */
- @InjectRecursively
protected Runnable r;
/**
@@ -1808,6 +1816,11 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
+ @Override public Runnable userObject() {
+ return r;
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C4.class, this);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
index 8f2cfd2..fa90e21 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
@@ -21,7 +21,7 @@ import org.apache.ignite.*;
import org.apache.ignite.compute.*;
import org.apache.ignite.igfs.*;
import org.apache.ignite.igfs.mapreduce.*;
-import org.apache.ignite.internal.processors.resource.*;
+import org.apache.ignite.internal.*;
import org.apache.ignite.resources.*;
import java.io.*;
@@ -29,12 +29,11 @@ import java.io.*;
/**
* IGFS job implementation.
*/
-public class IgfsJobImpl implements ComputeJob {
+public class IgfsJobImpl implements ComputeJob, GridInternalWrapper<IgfsJob> {
/** */
private static final long serialVersionUID = 0L;
/** IGFS job. */
- @InjectRecursively
private IgfsJob job;
/** IGFS name. */
@@ -110,4 +109,9 @@ public class IgfsJobImpl implements ComputeJob {
@Override public void cancel() {
job.cancel();
}
+
+ /** {@inheritDoc} */
+ @Override public IgfsJob userObject() {
+ return job;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
index ce19664..1e85ecd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
@@ -272,29 +272,29 @@ class GridResourceIoc {
for (Class cls0 = cls; !cls0.equals(Object.class); cls0 = cls0.getSuperclass()) {
for (Field field : cls0.getDeclaredFields()) {
- InjectRecursively injectRecursively = field.getAnnotation(InjectRecursively.class);
+ Annotation[] fieldAnns = field.getAnnotations();
- if (injectRecursively != null
- || (allowImplicitInjection && field.getName().startsWith("this$")
- || field.getName().startsWith("val$"))) {
- field.setAccessible(true);
+ for (Annotation ann : fieldAnns) {
+ T2<List<GridResourceField>, List<GridResourceMethod>> t2 = annMap.get(ann.annotationType());
- recursiveFieldsList.add(field);
- }
- else {
- for (Annotation ann : field.getAnnotations()) {
- T2<List<GridResourceField>, List<GridResourceMethod>> t2 = annMap.get(ann.annotationType());
+ if (t2 == null) {
+ t2 = new T2<List<GridResourceField>, List<GridResourceMethod>>(
+ new ArrayList<GridResourceField>(),
+ new ArrayList<GridResourceMethod>());
- if (t2 == null) {
- t2 = new T2<List<GridResourceField>, List<GridResourceMethod>>(
- new ArrayList<GridResourceField>(),
- new ArrayList<GridResourceMethod>());
+ annMap.put(ann.annotationType(), t2);
+ }
- annMap.put(ann.annotationType(), t2);
- }
+ t2.get1().add(new GridResourceField(field, ann));
+ }
- t2.get1().add(new GridResourceField(field, ann));
- }
+ if (allowImplicitInjection
+ && fieldAnns.length == 0
+ && GridResourceUtils.mayRequireResources(field)) {
+ field.setAccessible(true);
+
+ // Account for anonymous inner classes.
+ recursiveFieldsList.add(field);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
index 5b51592..f5ba492 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
@@ -23,7 +23,6 @@ import org.apache.ignite.compute.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.internal.managers.deployment.*;
import org.apache.ignite.internal.processors.*;
-import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.lifecycle.*;
import org.apache.ignite.resources.*;
@@ -281,6 +280,13 @@ public class GridResourceProcessor extends GridProcessorAdapter {
Object obj = unwrapTarget(job);
injectToJob(dep, taskCls, obj, ses, jobCtx);
+
+ if (obj instanceof GridInternalWrapper) {
+ Object usrObj = ((GridInternalWrapper)obj).userObject();
+
+ if (usrObj != null)
+ injectToJob(dep, taskCls, usrObj, ses, jobCtx);
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
index 254f171..660d6ba 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
@@ -88,4 +88,19 @@ final class GridResourceUtils {
", target=" + target + ", rsrc=" + rsrc + ']', e);
}
}
+
+ /**
+ * Checks if specified field requires recursive inspection to find resource annotations.
+ *
+ * @param f Field.
+ * @return {@code true} if requires, {@code false} if doesn't.
+ */
+ static boolean mayRequireResources(Field f) {
+ assert f != null;
+
+ // Need to inspect anonymous classes, callable and runnable instances.
+ return f.getName().startsWith("this$") || f.getName().startsWith("val$") ||
+ Callable.class.isAssignableFrom(f.getType()) || Runnable.class.isAssignableFrom(f.getType()) ||
+ IgniteClosure.class.isAssignableFrom(f.getType());
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
deleted file mode 100644
index 383ee03..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.resource;
-
-import java.lang.annotation.*;
-
-/**
- * Indicates that resource injection should be performed for field value too.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-public @interface InjectRecursively {
- // No-op.
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/56e67e8f/modules/core/src/main/resources/META-INF/classnames.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/META-INF/classnames.properties b/modules/core/src/main/resources/META-INF/classnames.properties
index f130840..b3eed46 100644
--- a/modules/core/src/main/resources/META-INF/classnames.properties
+++ b/modules/core/src/main/resources/META-INF/classnames.properties
@@ -1140,7 +1140,6 @@ org.apache.ignite.internal.util.lang.GridAbsClosure
org.apache.ignite.internal.util.lang.GridAbsClosureX
org.apache.ignite.internal.util.lang.GridCloseableIterator
org.apache.ignite.internal.util.lang.GridClosureException
-org.apache.ignite.internal.util.lang.GridComputeJobWrapper
org.apache.ignite.internal.util.lang.GridFunc$1
org.apache.ignite.internal.util.lang.GridFunc$10
org.apache.ignite.internal.util.lang.GridFunc$100
[08/32] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-5' into ignite-835
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-5' into ignite-835
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/96ff8f2f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/96ff8f2f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/96ff8f2f
Branch: refs/heads/ignite-709_3
Commit: 96ff8f2fc6521f55300ab634584f8f25c6edfdf2
Parents: 9e670b8 bbc21a6
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 13 11:23:20 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 13 11:23:20 2015 +0300
----------------------------------------------------------------------
bin/include/functions.sh | 2 +-
.../internal/direct/DirectByteBufferStream.java | 4 +-
.../eventstorage/GridEventStorageManager.java | 5 +-
.../processors/cache/GridCacheMvccManager.java | 4 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 32 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 27 +
.../cache/distributed/dht/GridDhtTxMapping.java | 2 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 81 +-
.../colocated/GridDhtColocatedLockFuture.java | 25 +-
.../colocated/GridDhtDetachedCacheEntry.java | 4 +-
.../distributed/near/GridNearCacheEntry.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 5 -
.../near/GridNearOptimisticTxPrepareFuture.java | 779 +++++++++++++
.../GridNearPessimisticTxPrepareFuture.java | 349 ++++++
.../cache/distributed/near/GridNearTxLocal.java | 84 +-
.../near/GridNearTxPrepareFuture.java | 1050 ------------------
.../near/GridNearTxPrepareFutureAdapter.java | 226 ++++
.../cache/transactions/IgniteInternalTx.java | 4 +-
.../cache/transactions/IgniteTxAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 68 +-
.../transactions/IgniteTxLocalAdapter.java | 2 +-
.../cache/transactions/IgniteTxManager.java | 12 +-
.../ignite/internal/util/IgniteUtils.java | 4 +-
.../GridCacheAbstractFailoverSelfTest.java | 8 +-
.../GridCacheAbstractNodeRestartSelfTest.java | 11 +-
.../distributed/IgniteTxGetAfterStopTest.java | 131 +++
...ePrimaryNodeFailureRecoveryAbstractTest.java | 4 +-
...idCacheAtomicReplicatedFailoverSelfTest.java | 6 +
.../GridCacheReplicatedFailoverSelfTest.java | 6 +
.../GridCacheReplicatedNodeRestartSelfTest.java | 80 ++
.../IgniteCacheFailoverTestSuite.java | 10 +-
.../testsuites/IgniteCacheRestartTestSuite.java | 8 +-
.../testsuites/IgniteCacheTestSuite3.java | 2 +
33 files changed, 1765 insertions(+), 1276 deletions(-)
----------------------------------------------------------------------
[20/32] incubator-ignite git commit: Merge branch 'ignite-gg-10151'
into ignite-sprint-5
Posted by sb...@apache.org.
Merge branch 'ignite-gg-10151' into ignite-sprint-5
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d21bc307
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d21bc307
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d21bc307
Branch: refs/heads/ignite-709_3
Commit: d21bc307b33ffa944a2e1a33893f18d10f35347c
Parents: 2b57817 0532017
Author: Andrey <an...@gridgain.com>
Authored: Thu May 14 00:33:18 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu May 14 00:33:18 2015 +0700
----------------------------------------------------------------------
.../scalar/tests/ScalarCacheQueriesSpec.scala | 154 +++++++++----------
.../ignite/scalar/tests/ScalarCacheSpec.scala | 23 +--
.../scalar/tests/ScalarConversionsSpec.scala | 43 +++---
.../scalar/tests/ScalarProjectionSpec.scala | 128 ++++++++-------
.../scalar/tests/ScalarReturnableSpec.scala | 41 ++---
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/VisorRuntimeBaseSpec.scala | 2 +-
.../visor/commands/VisorArgListSpec.scala | 60 ++++----
.../commands/VisorFileNameCompleterSpec.scala | 34 ++--
.../commands/ack/VisorAckCommandSpec.scala | 20 +--
.../commands/alert/VisorAlertCommandSpec.scala | 68 ++++----
.../cache/VisorCacheClearCommandSpec.scala | 48 +++---
.../commands/cache/VisorCacheCommandSpec.scala | 66 ++++----
.../config/VisorConfigurationCommandSpec.scala | 8 +-
.../cswap/VisorCacheSwapCommandSpec.scala | 24 +--
.../deploy/VisorDeployCommandSpec.scala | 10 +-
.../disco/VisorDiscoveryCommandSpec.scala | 46 +++---
.../events/VisorEventsCommandSpec.scala | 28 ++--
.../visor/commands/gc/VisorGcCommandSpec.scala | 30 ++--
.../commands/help/VisorHelpCommandSpec.scala | 57 +++----
.../commands/kill/VisorKillCommandSpec.scala | 58 +++----
.../commands/log/VisorLogCommandSpec.scala | 10 +-
.../commands/mem/VisorMemoryCommandSpec.scala | 77 +++++-----
.../commands/node/VisorNodeCommandSpec.scala | 22 +--
.../commands/open/VisorOpenCommandSpec.scala | 16 +-
.../commands/ping/VisorPingCommandSpec.scala | 16 +-
.../commands/start/VisorStartCommandSpec.scala | 126 +++++++--------
.../commands/tasks/VisorTasksCommandSpec.scala | 112 +++++++-------
.../commands/top/VisorTopologyCommandSpec.scala | 52 +++----
.../commands/vvm/VisorVvmCommandSpec.scala | 30 ++--
30 files changed, 724 insertions(+), 687 deletions(-)
----------------------------------------------------------------------
[14/32] incubator-ignite git commit: #ignite-460: Remove valPtr field
from GridCacheMapEntry.
Posted by sb...@apache.org.
#ignite-460: Remove valPtr field from GridCacheMapEntry.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d87f6d61
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d87f6d61
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d87f6d61
Branch: refs/heads/ignite-709_3
Commit: d87f6d61b343e95f90624fb7bf382c58a1f7ff1e
Parents: 8246788
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed May 13 17:45:24 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed May 13 17:45:24 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheContext.java | 7 +
.../processors/cache/GridCacheMapEntry.java | 70 +++++---
.../distributed/dht/GridDhtCacheAdapter.java | 16 +-
.../dht/GridDhtOffHeapCacheEntry.java | 63 +++++++
.../distributed/dht/GridNoStorageCacheMap.java | 4 +-
.../dht/atomic/GridDhtAtomicCache.java | 3 +
.../atomic/GridDhtAtomicOffHeapCacheEntry.java | 63 +++++++
.../dht/colocated/GridDhtColocatedCache.java | 5 +-
.../GridDhtColocatedOffHeapCacheEntry.java | 63 +++++++
.../distributed/near/GridNearCacheAdapter.java | 3 +
.../near/GridNearOffHeapCacheEntry.java | 60 +++++++
.../cache/local/GridLocalCacheEntry.java | 18 ++
.../cache/CacheOffheapMapEntrySelfTest.java | 168 +++++++++++++++++++
.../testsuites/IgniteCacheTestSuite4.java | 2 +
14 files changed, 514 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index 48dcee7..2eeaed6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -1655,6 +1655,13 @@ public class GridCacheContext<K, V> implements Externalizable {
}
/**
+ * @return {@code True} if should use entry with offheap value pointer.
+ */
+ public boolean useOffheapEntry() {
+ return cacheCfg.getMemoryMode() == OFFHEAP_TIERED || cacheCfg.getMemoryMode() == OFFHEAP_VALUES;
+ }
+
+ /**
* Converts temporary offheap object to heap-based.
*
* @param obj Object.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 71858d1..86ed57a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -115,9 +115,6 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
@GridToStringInclude
private final int hash;
- /** Off-heap value pointer. */
- protected long valPtr;
-
/** Extras */
@GridToStringInclude
private GridCacheEntryExtras extras;
@@ -188,7 +185,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (cctx.cache().isIgfsDataCache() &&
cctx.kernalContext().igfsHelper().isIgfsBlockKey(key.value(cctx.cacheObjectContext(), false))) {
int newSize = valueLength0(val, null);
- int oldSize = valueLength0(this.val, (this.val == null && valPtr != 0) ? valueBytes0() : null);
+ int oldSize = valueLength0(this.val, (this.val == null && hasOffHeapPointer()) ? valueBytes0() : null);
int delta = newSize - oldSize;
@@ -199,7 +196,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (!isOffHeapValuesOnly()) {
this.val = val;
- valPtr = 0;
+ offHeapPointer(0);
}
else {
try {
@@ -227,12 +224,12 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (val != null) {
byte type = val.type();
- valPtr = mem.putOffHeap(valPtr, val.valueBytes(cctx.cacheObjectContext()), type);
+ offHeapPointer(mem.putOffHeap(offHeapPointer(), val.valueBytes(cctx.cacheObjectContext()), type));
}
else {
- mem.removeOffHeap(valPtr);
+ mem.removeOffHeap(offHeapPointer());
- valPtr = 0;
+ offHeapPointer(0);
}
}
catch (IgniteCheckedException e) {
@@ -270,7 +267,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
CacheObject val0 = val;
- if (val0 == null && valPtr != 0) {
+ if (val0 == null && hasOffHeapPointer()) {
IgniteBiTuple<byte[], Byte> t = valueBytes0();
return cctx.cacheObjects().toCacheObject(cctx.cacheObjectContext(), t.get2(), t.get1());
@@ -434,16 +431,16 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (e != null) {
if (e.offheapPointer() > 0) {
- valPtr = e.offheapPointer();
+ offHeapPointer(e.offheapPointer());
if (needVal) {
- CacheObject val = cctx.fromOffheap(valPtr, false);
+ CacheObject val = cctx.fromOffheap(offHeapPointer(), false);
e.value(val);
}
}
else // Read from swap.
- valPtr = 0;
+ offHeapPointer(0);
}
}
else
@@ -468,7 +465,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
// Must update valPtr again since update() will reset it.
if (cctx.offheapTiered() && e.offheapPointer() > 0)
- valPtr = e.offheapPointer();
+ offHeapPointer(e.offheapPointer());
return val;
}
@@ -495,13 +492,13 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (cctx.offheapTiered()) {
cctx.swap().removeOffheap(key);
- valPtr = 0;
+ offHeapPointer(0);
}
return;
}
- if (val == null && cctx.offheapTiered() && valPtr != 0) {
+ if (val == null && cctx.offheapTiered() && hasOffHeapPointer()) {
if (log.isDebugEnabled())
log.debug("Value did not change, skip write swap entry: " + this);
@@ -540,10 +537,10 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
protected IgniteBiTuple<byte[], Byte> valueBytes0() {
assert Thread.holdsLock(this);
- if (valPtr != 0) {
+ if (hasOffHeapPointer()) {
assert isOffHeapValuesOnly() || cctx.offheapTiered();
- return cctx.unsafeMemory().get(valPtr);
+ return cctx.unsafeMemory().get(offHeapPointer());
}
else {
assert val != null;
@@ -672,7 +669,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
CacheObject val = this.val;
- hasOldBytes = valPtr != 0;
+ hasOldBytes = hasOffHeapPointer();
if ((unmarshal || isOffHeapValuesOnly()) && !expired && val == null && hasOldBytes)
val = rawGetOrUnmarshalUnlocked(tmp);
@@ -816,7 +813,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
// Update indexes before actual write to entry.
updateIndex(ret, expTime, nextVer, prevVal);
- boolean hadValPtr = valPtr != 0;
+ boolean hadValPtr = hasOffHeapPointer();
// Don't change version for read-through.
update(ret, expTime, ttl, nextVer);
@@ -1164,7 +1161,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
// can be updated without actually holding entry lock.
clearIndex(old);
- boolean hadValPtr = valPtr != 0;
+ boolean hadValPtr = hasOffHeapPointer();
update(null, 0, 0, newVer);
@@ -1521,7 +1518,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
// Must persist inside synchronization in non-tx mode.
cctx.store().remove(null, keyValue(false));
- boolean hasValPtr = valPtr != 0;
+ boolean hasValPtr = hasOffHeapPointer();
// Update index inside synchronization since it can be updated
// in load methods without actually holding entry lock.
@@ -2122,7 +2119,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
enqueueVer = newVer;
- boolean hasValPtr = valPtr != 0;
+ boolean hasValPtr = hasOffHeapPointer();
// Clear value on backup. Entry will be removed from cache when it got evicted from queue.
update(null, CU.TTL_ETERNAL, CU.EXPIRE_TIME_ETERNAL, newVer);
@@ -2929,8 +2926,8 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
if (val != null)
return val;
- if (valPtr != 0) {
- CacheObject val0 = cctx.fromOffheap(valPtr, tmp);
+ if (hasOffHeapPointer()) {
+ CacheObject val0 = cctx.fromOffheap(offHeapPointer(), tmp);
if (!tmp && cctx.kernalContext().config().isPeerClassLoadingEnabled())
val0.finishUnmarshal(cctx.cacheObjectContext(), cctx.deploy().globalLoader());
@@ -2952,7 +2949,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
protected boolean hasValueUnlocked() {
assert Thread.holdsLock(this);
- return val != null || valPtr != 0;
+ return val != null || hasOffHeapPointer();
}
/** {@inheritDoc} */
@@ -3298,7 +3295,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
synchronized (this) {
CacheObject expiredVal = saveValueForIndexUnlocked();
- boolean hasOldBytes = valPtr != 0;
+ boolean hasOldBytes = hasOffHeapPointer();
boolean expired = checkExpired();
@@ -4102,6 +4099,27 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
}
/**
+ * @return True if entry has off-heap value pointer.
+ */
+ protected boolean hasOffHeapPointer() {
+ return false;
+ }
+
+ /**
+ * @return Off-heap value pointer.
+ */
+ protected long offHeapPointer() {
+ return 0;
+ }
+
+ /**
+ * @param valPtr Off-heap value pointer.
+ */
+ protected void offHeapPointer(long valPtr) {
+ // No-op.
+ }
+
+ /**
* @return Size of extras object.
*/
private int extrasSize() {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
index 1c46fd0..23060e6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
@@ -102,6 +102,9 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
GridCacheMapEntry next,
int hdrId)
{
+ if (ctx.useOffheapEntry())
+ return new GridDhtOffHeapCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
+
return new GridDhtCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
}
});
@@ -343,17 +346,24 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
public GridCacheEntryEx entryExx(KeyCacheObject key, AffinityTopologyVersion topVer, boolean allowDetached, boolean touch) {
try {
return allowDetached && !ctx.affinity().localNode(key, topVer) ?
- new GridDhtDetachedCacheEntry(ctx, key, key.hashCode(), null, null, 0) :
- entryEx(key, touch);
+ createEntry(key) : entryEx(key, touch);
}
catch (GridDhtInvalidPartitionException e) {
if (!allowDetached)
throw e;
- return new GridDhtDetachedCacheEntry(ctx, key, key.hashCode(), null, null, 0);
+ return createEntry(key);
}
}
+ /**
+ * @param key Key for which entry should be returned.
+ * @return Cache entry.
+ */
+ protected GridDistributedCacheEntry createEntry(KeyCacheObject key) {
+ return new GridDhtDetachedCacheEntry(ctx, key, key.hashCode(), null, null, 0);
+ }
+
/** {@inheritDoc} */
@Override public void localLoad(Collection<? extends K> keys, final ExpiryPolicy plc)
throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtOffHeapCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtOffHeapCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtOffHeapCacheEntry.java
new file mode 100644
index 0000000..1191d83
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtOffHeapCacheEntry.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import org.apache.ignite.internal.processors.affinity.*;
+import org.apache.ignite.internal.processors.cache.*;
+
+/**
+ * Replicated cache entry for off-heap tiered or off-heap values modes.
+ */
+public class GridDhtOffHeapCacheEntry extends GridDhtCacheEntry {
+ /** Off-heap value pointer. */
+ private long valPtr;
+
+ /**
+ * @param ctx Cache context.
+ * @param topVer Topology version at the time of creation (if negative, then latest topology is assumed).
+ * @param key Cache key.
+ * @param hash Key hash value.
+ * @param val Entry value.
+ * @param next Next entry in the linked list.
+ * @param hdrId Header id.
+ */
+ public GridDhtOffHeapCacheEntry(GridCacheContext ctx,
+ AffinityTopologyVersion topVer,
+ KeyCacheObject key,
+ int hash,
+ CacheObject val,
+ GridCacheMapEntry next,
+ int hdrId) {
+ super(ctx, topVer, key, hash, val, next, hdrId);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean hasOffHeapPointer() {
+ return valPtr != 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected long offHeapPointer() {
+ return valPtr;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void offHeapPointer(long valPtr) {
+ this.valPtr = valPtr;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNoStorageCacheMap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNoStorageCacheMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNoStorageCacheMap.java
index 8da4da5..098ec97 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNoStorageCacheMap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNoStorageCacheMap.java
@@ -86,7 +86,9 @@ public class GridNoStorageCacheMap extends GridCacheConcurrentMap {
boolean create)
{
if (create) {
- GridCacheMapEntry entry = new GridDhtCacheEntry(ctx, topVer, key, hash(key.hashCode()), val, null, 0);
+ GridCacheMapEntry entry = ctx.useOffheapEntry() ?
+ new GridDhtOffHeapCacheEntry(ctx, topVer, key, hash(key.hashCode()), val, null, 0) :
+ new GridDhtCacheEntry(ctx, topVer, key, hash(key.hashCode()), val, null, 0);
return new GridTriple<>(entry, null, null);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 905f7bf..19d88e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -124,6 +124,9 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
GridCacheMapEntry next,
int hdrId)
{
+ if (ctx.useOffheapEntry())
+ return new GridDhtAtomicOffHeapCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
+
return new GridDhtAtomicCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicOffHeapCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicOffHeapCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicOffHeapCacheEntry.java
new file mode 100644
index 0000000..91a8e65
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicOffHeapCacheEntry.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
+
+import org.apache.ignite.internal.processors.affinity.*;
+import org.apache.ignite.internal.processors.cache.*;
+
+/**
+ * DHT atomic cache entry for off-heap tiered or off-heap values modes.
+ */
+public class GridDhtAtomicOffHeapCacheEntry extends GridDhtAtomicCacheEntry {
+ /** Off-heap value pointer. */
+ private long valPtr;
+
+ /**
+ * @param ctx Cache context.
+ * @param topVer Topology version at the time of creation (if negative, then latest topology is assumed).
+ * @param key Cache key.
+ * @param hash Key hash value.
+ * @param val Entry value.
+ * @param next Next entry in the linked list.
+ * @param hdrId Header id.
+ */
+ public GridDhtAtomicOffHeapCacheEntry(GridCacheContext ctx,
+ AffinityTopologyVersion topVer,
+ KeyCacheObject key,
+ int hash,
+ CacheObject val,
+ GridCacheMapEntry next,
+ int hdrId) {
+ super(ctx, topVer, key, hash, val, next, hdrId);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean hasOffHeapPointer() {
+ return valPtr != 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected long offHeapPointer() {
+ return valPtr;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void offHeapPointer(long valPtr) {
+ this.valPtr = valPtr;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index c92d9ce..05b3c7b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -86,6 +86,9 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
GridCacheMapEntry next,
int hdrId)
{
+ if (ctx.useOffheapEntry())
+ return new GridDhtColocatedOffHeapCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
+
return new GridDhtColocatedCacheEntry(ctx, topVer, key, hash, val, next, hdrId);
}
});
@@ -126,7 +129,7 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte
boolean allowDetached
) {
return allowDetached && !ctx.affinity().primary(ctx.localNode(), key, topVer) ?
- new GridDhtDetachedCacheEntry(ctx, key, key.hashCode(), null, null, 0) : entryExx(key, topVer);
+ createEntry(key) : entryExx(key, topVer);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedOffHeapCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedOffHeapCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedOffHeapCacheEntry.java
new file mode 100644
index 0000000..ed842ad
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedOffHeapCacheEntry.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht.colocated;
+
+import org.apache.ignite.internal.processors.affinity.*;
+import org.apache.ignite.internal.processors.cache.*;
+
+/**
+ * Cache entry for colocated cache for off-heap tiered or off-heap values modes.
+ */
+public class GridDhtColocatedOffHeapCacheEntry extends GridDhtColocatedCacheEntry {
+ /** Off-heap value pointer. */
+ private long valPtr;
+
+ /**
+ * @param ctx Cache context.
+ * @param topVer Topology version at the time of creation (if negative, then latest topology is assumed).
+ * @param key Cache key.
+ * @param hash Key hash value.
+ * @param val Entry value.
+ * @param next Next entry in the linked list.
+ * @param hdrId Header id.
+ */
+ public GridDhtColocatedOffHeapCacheEntry(GridCacheContext ctx,
+ AffinityTopologyVersion topVer,
+ KeyCacheObject key,
+ int hash,
+ CacheObject val,
+ GridCacheMapEntry next,
+ int hdrId) {
+ super(ctx, topVer, key, hash, val, next, hdrId);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean hasOffHeapPointer() {
+ return valPtr != 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected long offHeapPointer() {
+ return valPtr;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void offHeapPointer(long valPtr) {
+ this.valPtr = valPtr;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
index 145e980..8258b14 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java
@@ -76,6 +76,9 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
) {
// Can't hold any locks here - this method is invoked when
// holding write-lock on the whole cache map.
+ if (ctx.useOffheapEntry())
+ return new GridNearOffHeapCacheEntry(ctx, key, hash, val, next, hdrId);
+
return new GridNearCacheEntry(ctx, key, hash, val, next, hdrId);
}
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOffHeapCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOffHeapCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOffHeapCacheEntry.java
new file mode 100644
index 0000000..25eb869
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOffHeapCacheEntry.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.near;
+
+import org.apache.ignite.internal.processors.cache.*;
+
+/**
+ * Near cache entry for off-heap tiered or off-heap values modes.
+ */
+public class GridNearOffHeapCacheEntry extends GridNearCacheEntry {
+ /** Off-heap value pointer. */
+ private long valPtr;
+
+ /**
+ * @param ctx Cache context.
+ * @param key Cache key.
+ * @param hash Key hash value.
+ * @param val Entry value.
+ * @param next Next entry in the linked list.
+ * @param hdrId Header id.
+ */
+ public GridNearOffHeapCacheEntry(GridCacheContext ctx,
+ KeyCacheObject key,
+ int hash,
+ CacheObject val,
+ GridCacheMapEntry next,
+ int hdrId) {
+ super(ctx, key, hash, val, next, hdrId);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean hasOffHeapPointer() {
+ return valPtr != 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected long offHeapPointer() {
+ return valPtr;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void offHeapPointer(long valPtr) {
+ this.valPtr = valPtr;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
index 84d4c90..ea59f1f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
@@ -29,6 +29,9 @@ import static org.apache.ignite.events.EventType.*;
*/
@SuppressWarnings({"NonPrivateFieldAccessedInSynchronizedContext", "TooBroadScope"})
public class GridLocalCacheEntry extends GridCacheMapEntry {
+ /** Off-heap value pointer. */
+ private long valPtr;
+
/**
* @param ctx Cache registry.
* @param key Cache key.
@@ -384,4 +387,19 @@ public class GridLocalCacheEntry extends GridCacheMapEntry {
return doomed != null;
}
+
+ /** {@inheritDoc} */
+ @Override protected boolean hasOffHeapPointer() {
+ return valPtr != 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected long offHeapPointer() {
+ return valPtr;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void offHeapPointer(long valPtr) {
+ this.valPtr = valPtr;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOffheapMapEntrySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOffheapMapEntrySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOffheapMapEntrySelfTest.java
new file mode 100644
index 0000000..8c7d33d
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheOffheapMapEntrySelfTest.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.colocated.*;
+import org.apache.ignite.internal.processors.cache.distributed.near.*;
+import org.apache.ignite.internal.processors.cache.local.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheMemoryMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+
+/**
+ * Cache map entry self test.
+ */
+public class CacheOffheapMapEntrySelfTest extends GridCacheAbstractSelfTest {
+ /** {@inheritDoc} */
+ @Override protected int gridCount() {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ startGrids(1);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ // No-op.
+ }
+
+ /**
+ * @param gridName Grid name.
+ * @param memoryMode Memory mode.
+ * @param atomicityMode Atomicity mode.
+ * @param cacheMode Cache mode.
+ * @param cacheName Cache name.
+ * @return Cache configuration.
+ * @throws Exception If failed.
+ */
+ private CacheConfiguration cacheConfiguration(String gridName,
+ CacheMemoryMode memoryMode,
+ CacheAtomicityMode atomicityMode,
+ CacheMode cacheMode,
+ String cacheName)
+ throws Exception
+ {
+ CacheConfiguration cfg = super.cacheConfiguration(gridName);
+
+ cfg.setCacheMode(cacheMode);
+ cfg.setAtomicityMode(atomicityMode);
+ cfg.setMemoryMode(memoryMode);
+ cfg.setName(cacheName);
+
+ return cfg;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testCacheMapEntry() throws Exception {
+ checkCacheMapEntry(ONHEAP_TIERED, ATOMIC, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, ATOMIC, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, ATOMIC, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(ONHEAP_TIERED, TRANSACTIONAL, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, TRANSACTIONAL, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, TRANSACTIONAL, LOCAL, GridLocalCacheEntry.class);
+
+ checkCacheMapEntry(ONHEAP_TIERED, ATOMIC, PARTITIONED, GridNearCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, ATOMIC, PARTITIONED, GridNearOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, ATOMIC, PARTITIONED, GridNearOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(ONHEAP_TIERED, TRANSACTIONAL, PARTITIONED, GridNearCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, TRANSACTIONAL, PARTITIONED, GridNearOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, TRANSACTIONAL, PARTITIONED, GridNearOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(ONHEAP_TIERED, ATOMIC, REPLICATED, GridDhtAtomicCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, ATOMIC, REPLICATED, GridDhtAtomicOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, ATOMIC, REPLICATED, GridDhtAtomicOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(ONHEAP_TIERED, TRANSACTIONAL, REPLICATED, GridDhtColocatedCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_TIERED, TRANSACTIONAL, REPLICATED, GridDhtColocatedOffHeapCacheEntry.class);
+
+ checkCacheMapEntry(OFFHEAP_VALUES, TRANSACTIONAL, REPLICATED, GridDhtColocatedOffHeapCacheEntry.class);
+ }
+
+ /**
+ * @param memoryMode Cache memory mode.
+ * @param atomicityMode Cache atomicity mode.
+ * @param cacheMode Cache mode.
+ * @param entryCls Class of cache map entry.
+ * @throws Exception If failed.
+ */
+ private void checkCacheMapEntry(CacheMemoryMode memoryMode,
+ CacheAtomicityMode atomicityMode,
+ CacheMode cacheMode,
+ Class<?> entryCls)
+ throws Exception
+ {
+ log.info("Test cache [memMode=" + memoryMode +
+ ", atomicityMode=" + atomicityMode +
+ ", cacheMode=" + cacheMode + ']');
+
+ CacheConfiguration cfg = cacheConfiguration(grid(0).name(),
+ memoryMode,
+ atomicityMode,
+ cacheMode,
+ "Cache");
+
+ try (IgniteCache jcache = grid(0).getOrCreateCache(cfg)) {
+ GridCacheAdapter<Integer, String> cache = ((IgniteKernal)grid(0)).internalCache(jcache.getName());
+
+ Integer key = primaryKey(grid(0).cache(null));
+
+ cache.put(key, "val");
+
+ GridCacheEntryEx entry = cache.entryEx(key);
+
+ entry.unswap(true);
+
+ assertNotNull(entry);
+
+ assertEquals(entry.getClass(), entryCls);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d87f6d61/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index f7272d4..8eb0688 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -126,6 +126,8 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(CacheNoValueClassOnServerNodeTest.class);
+ suite.addTestSuite(CacheOffheapMapEntrySelfTest.class);
+
return suite;
}
}
[05/32] incubator-ignite git commit: IGNITE-894 Add
@InjectRecursively.
Posted by sb...@apache.org.
IGNITE-894 Add @InjectRecursively.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a1ce1ce4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a1ce1ce4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a1ce1ce4
Branch: refs/heads/ignite-709_3
Commit: a1ce1ce4b749f2fc12a803052bf0df21eb42f675
Parents: 96ad5a8
Author: sevdokimov <se...@gridgain.com>
Authored: Tue May 12 19:15:56 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Tue May 12 19:15:56 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/GridInternalWrapper.java | 30 ------
.../closure/GridClosureProcessor.java | 25 ++---
.../internal/processors/igfs/IgfsJobImpl.java | 9 +-
.../processors/resource/GridResourceIoc.java | 34 +++----
.../resource/GridResourceProcessor.java | 22 +----
.../processors/resource/GridResourceUtils.java | 15 ---
.../util/lang/GridComputeJobWrapper.java | 96 --------------------
.../ignite/resources/InjectRecursively.java | 22 +++++
8 files changed, 48 insertions(+), 205 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java b/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
deleted file mode 100644
index 76563e7..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridInternalWrapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal;
-
-/**
- * Internal wrapper interface for custom resource injection logic.
- */
-public interface GridInternalWrapper<T> {
- /**
- * Get user object where resources must be injected.
- *
- * @return User object.
- */
- public T userObject();
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
index 658557e..8f5afbf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
@@ -1584,12 +1584,12 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*
*/
- private static class C1<T, R> implements ComputeJob, Externalizable, GridNoImplicitInjection,
- GridInternalWrapper<IgniteClosure> {
+ private static class C1<T, R> implements ComputeJob, Externalizable {
/** */
private static final long serialVersionUID = 0L;
/** */
+ @InjectRecursively
protected IgniteClosure<T, R> job;
/** */
@@ -1635,11 +1635,6 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public IgniteClosure userObject() {
- return job;
- }
-
- /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C1.class, this);
}
@@ -1681,11 +1676,12 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*
*/
- private static class C2<R> implements ComputeJob, Externalizable, GridNoImplicitInjection, GridInternalWrapper<Callable> {
+ private static class C2<R> implements ComputeJob, Externalizable {
/** */
private static final long serialVersionUID = 0L;
/** */
+ @InjectRecursively
protected Callable<R> c;
/**
@@ -1728,11 +1724,6 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public Callable userObject() {
- return c;
- }
-
- /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C2.class, this);
}
@@ -1772,11 +1763,12 @@ public class GridClosureProcessor extends GridProcessorAdapter {
/**
*/
- private static class C4 implements ComputeJob, Externalizable, GridNoImplicitInjection, GridInternalWrapper<Runnable> {
+ private static class C4 implements ComputeJob, Externalizable {
/** */
private static final long serialVersionUID = 0L;
/** */
+ @InjectRecursively
protected Runnable r;
/**
@@ -1816,11 +1808,6 @@ public class GridClosureProcessor extends GridProcessorAdapter {
}
/** {@inheritDoc} */
- @Override public Runnable userObject() {
- return r;
- }
-
- /** {@inheritDoc} */
@Override public String toString() {
return S.toString(C4.class, this);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
index fa90e21..b5a336e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
@@ -21,7 +21,6 @@ import org.apache.ignite.*;
import org.apache.ignite.compute.*;
import org.apache.ignite.igfs.*;
import org.apache.ignite.igfs.mapreduce.*;
-import org.apache.ignite.internal.*;
import org.apache.ignite.resources.*;
import java.io.*;
@@ -29,11 +28,12 @@ import java.io.*;
/**
* IGFS job implementation.
*/
-public class IgfsJobImpl implements ComputeJob, GridInternalWrapper<IgfsJob> {
+public class IgfsJobImpl implements ComputeJob {
/** */
private static final long serialVersionUID = 0L;
/** IGFS job. */
+ @InjectRecursively
private IgfsJob job;
/** IGFS name. */
@@ -109,9 +109,4 @@ public class IgfsJobImpl implements ComputeJob, GridInternalWrapper<IgfsJob> {
@Override public void cancel() {
job.cancel();
}
-
- /** {@inheritDoc} */
- @Override public IgfsJob userObject() {
- return job;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
index 3d853d6..a2ffa55 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
@@ -22,6 +22,7 @@ import org.apache.ignite.internal.managers.deployment.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.resources.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
@@ -272,27 +273,26 @@ class GridResourceIoc {
for (Class cls0 = cls; !cls0.equals(Object.class); cls0 = cls0.getSuperclass()) {
for (Field field : cls0.getDeclaredFields()) {
- Annotation[] fieldAnns = field.getAnnotations();
+ InjectRecursively injectRecursively = field.getAnnotation(InjectRecursively.class);
- for (Annotation ann : fieldAnns) {
- T2<List<GridResourceField>, List<GridResourceMethod>> t2 = annMap.get(ann.annotationType());
-
- if (t2 == null) {
- t2 = new T2<List<GridResourceField>, List<GridResourceMethod>>(
- new ArrayList<GridResourceField>(),
- new ArrayList<GridResourceMethod>());
+ if (injectRecursively != null
+ || (allowImplicitInjection && field.getName().startsWith("this$")
+ || field.getName().startsWith("val$")))
+ recursiveFieldsList.add(field);
+ else {
+ for (Annotation ann : field.getAnnotations()) {
+ T2<List<GridResourceField>, List<GridResourceMethod>> t2 = annMap.get(ann.annotationType());
- annMap.put(ann.annotationType(), t2);
- }
+ if (t2 == null) {
+ t2 = new T2<List<GridResourceField>, List<GridResourceMethod>>(
+ new ArrayList<GridResourceField>(),
+ new ArrayList<GridResourceMethod>());
- t2.get1().add(new GridResourceField(field, ann));
- }
+ annMap.put(ann.annotationType(), t2);
+ }
- if (allowImplicitInjection
- && fieldAnns.length == 0
- && GridResourceUtils.mayRequireResources(field)) {
- // Account for anonymous inner classes.
- recursiveFieldsList.add(field);
+ t2.get1().add(new GridResourceField(field, ann));
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
index cb4149b..5b51592 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceProcessor.java
@@ -278,16 +278,9 @@ public class GridResourceProcessor extends GridProcessorAdapter {
log.debug("Injecting resources: " + job);
// Unwrap Proxy object.
- Object obj = unwrapTarget(unwrapJob(job));
+ Object obj = unwrapTarget(job);
injectToJob(dep, taskCls, obj, ses, jobCtx);
-
- if (obj instanceof GridInternalWrapper) {
- Object usrObj = ((GridInternalWrapper)obj).userObject();
-
- if (usrObj != null)
- injectToJob(dep, taskCls, usrObj, ses, jobCtx);
- }
}
/**
@@ -329,19 +322,6 @@ public class GridResourceProcessor extends GridProcessorAdapter {
}
/**
- * Gets rid of job wrapper, if any.
- *
- * @param job Job to unwrap.
- * @return Unwrapped job.
- */
- private ComputeJob unwrapJob(ComputeJob job) {
- if (job instanceof GridComputeJobWrapper)
- return ((GridComputeJobWrapper)job).wrappedJob();
-
- return job;
- }
-
- /**
* Injects held resources into given grid task.
*
* @param dep Deployed class.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
index 660d6ba..254f171 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceUtils.java
@@ -88,19 +88,4 @@ final class GridResourceUtils {
", target=" + target + ", rsrc=" + rsrc + ']', e);
}
}
-
- /**
- * Checks if specified field requires recursive inspection to find resource annotations.
- *
- * @param f Field.
- * @return {@code true} if requires, {@code false} if doesn't.
- */
- static boolean mayRequireResources(Field f) {
- assert f != null;
-
- // Need to inspect anonymous classes, callable and runnable instances.
- return f.getName().startsWith("this$") || f.getName().startsWith("val$") ||
- Callable.class.isAssignableFrom(f.getType()) || Runnable.class.isAssignableFrom(f.getType()) ||
- IgniteClosure.class.isAssignableFrom(f.getType());
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridComputeJobWrapper.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridComputeJobWrapper.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridComputeJobWrapper.java
deleted file mode 100644
index 82c0078..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridComputeJobWrapper.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.lang;
-
-import org.apache.ignite.compute.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.util.concurrent.*;
-
-/**
- * Convenient wrapper for grid job. It allows to create a job clone in cases when the same
- * job needs to be cloned to multiple grid nodes during mapping phase of task execution.
- */
-public class GridComputeJobWrapper implements ComputeJob, Callable<Object>,
- GridPeerDeployAware {
- /** */
- private static final long serialVersionUID = 0L;
-
- /** */
- private final ComputeJob job;
-
- /** Peer deploy aware class. */
- private transient volatile GridPeerDeployAware p;
-
- /**
- * Creates a wrapper with given grid {@code job}.
- *
- * @param job Job to wrap.
- */
- public GridComputeJobWrapper(ComputeJob job) {
- A.notNull(job, "job");
-
- this.job = job;
- }
-
- /**
- * Gets wrapped job.
- *
- * @return Wrapped job.
- */
- public ComputeJob wrappedJob() {
- return job;
- }
-
- /** {@inheritDoc} */
- @Nullable @Override public final Object call() throws Exception {
- return execute();
- }
-
- /** {@inheritDoc} */
- @Override public Class<?> deployClass() {
- if (p == null)
- p = U.detectPeerDeployAware(this);
-
- return p.deployClass();
- }
-
- /** {@inheritDoc} */
- @Override public ClassLoader classLoader() {
- if (p == null)
- p = U.detectPeerDeployAware(this);
-
- return p.classLoader();
- }
-
- /** {@inheritDoc} */
- @Override public void cancel() {
- job.cancel();
- }
-
- /** {@inheritDoc} */
- @Override public Object execute() {
- return job.execute();
- }
-
- /** {@inheritDoc} */
- @Override public String toString() {
- return S.toString(GridComputeJobWrapper.class, this);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a1ce1ce4/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java b/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
new file mode 100644
index 0000000..6cf8c8a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
@@ -0,0 +1,22 @@
+/* @java.file.header */
+
+/* _________ _____ __________________ _____
+ * __ ____/___________(_)______ /__ ____/______ ____(_)_______
+ * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
+ * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
+ * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
+ */
+
+package org.apache.ignite.resources;
+
+import java.lang.annotation.*;
+
+/**
+ * Indicates that resource injection should be performed for field value too.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface InjectRecursively {
+ // No-op.
+}
[13/32] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-5' into ignite-894
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-5' into ignite-894
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/34a9b315
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/34a9b315
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/34a9b315
Branch: refs/heads/ignite-709_3
Commit: 34a9b315b2dc09b771e924e0970ecd9b1696144c
Parents: 9ea2dbd 8246788
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 17:20:26 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 17:20:26 2015 +0300
----------------------------------------------------------------------
bin/include/functions.sh | 2 +-
.../processors/cache/GridCacheMvccManager.java | 4 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 9 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 32 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 27 +
.../cache/distributed/dht/GridDhtTxMapping.java | 2 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 81 +-
.../colocated/GridDhtColocatedLockFuture.java | 25 +-
.../colocated/GridDhtDetachedCacheEntry.java | 4 +-
.../distributed/near/GridNearCacheEntry.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 5 -
.../near/GridNearOptimisticTxPrepareFuture.java | 779 +++++++++++++
.../GridNearPessimisticTxPrepareFuture.java | 349 ++++++
.../cache/distributed/near/GridNearTxLocal.java | 84 +-
.../near/GridNearTxPrepareFuture.java | 1050 ------------------
.../near/GridNearTxPrepareFutureAdapter.java | 226 ++++
.../cache/transactions/IgniteInternalTx.java | 4 +-
.../cache/transactions/IgniteTxAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 68 +-
.../transactions/IgniteTxLocalAdapter.java | 2 +-
.../cache/transactions/IgniteTxManager.java | 12 +-
.../GridCacheAbstractFailoverSelfTest.java | 8 +-
.../GridCacheAbstractNodeRestartSelfTest.java | 11 +-
.../distributed/GridCacheLockAbstractTest.java | 2 -
.../distributed/IgniteTxGetAfterStopTest.java | 131 +++
...achePartitionedNearDisabledLockSelfTest.java | 47 +
...ePrimaryNodeFailureRecoveryAbstractTest.java | 4 +-
...idCacheAtomicReplicatedFailoverSelfTest.java | 6 +
.../GridCachePartitionedTxSalvageSelfTest.java | 25 +-
.../GridCacheReplicatedFailoverSelfTest.java | 6 +
.../GridCacheReplicatedLockSelfTest.java | 5 +
.../GridCacheReplicatedNodeRestartSelfTest.java | 80 ++
.../discovery/tcp/TcpDiscoveryRestartTest.java | 199 ++++
.../IgniteCacheFailoverTestSuite.java | 10 +-
.../testsuites/IgniteCacheRestartTestSuite.java | 8 +-
.../testsuites/IgniteCacheTestSuite2.java | 1 +
.../testsuites/IgniteCacheTestSuite3.java | 2 +
37 files changed, 2029 insertions(+), 1287 deletions(-)
----------------------------------------------------------------------
[25/32] incubator-ignite git commit: #ignite-373: Cache is not empty
after removeAll.
Posted by sb...@apache.org.
#ignite-373: Cache is not empty after removeAll.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/593e3eee
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/593e3eee
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/593e3eee
Branch: refs/heads/ignite-709_3
Commit: 593e3eeeb0d4965b1c1a83d4f68a9d18e6615632
Parents: 7c91389
Author: ivasilinets <iv...@gridgain.com>
Authored: Thu May 14 15:35:27 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Thu May 14 15:35:27 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 119 +++++------
.../GridDistributedCacheAdapter.java | 210 ++++++++++++-------
.../cache/CacheRemoveAllSelfTest.java | 81 +++++++
.../near/NoneRebalanceModeSelfTest.java | 67 ++++++
.../testsuites/IgniteCacheTestSuite2.java | 1 +
.../testsuites/IgniteCacheTestSuite4.java | 2 +
6 files changed, 338 insertions(+), 142 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 3826bfa..4106cb0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1133,7 +1133,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes);
- ctx.kernalContext().task().execute(new ClearTask(ctx, keys), null).get();
+ ctx.kernalContext().task().execute(
+ new ClearTask(ctx.name(), ctx.affinity().affinityTopologyVersion(), keys), null).get();
}
}
@@ -1152,7 +1153,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
if (!nodes.isEmpty()) {
ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes);
- return ctx.kernalContext().task().execute(new ClearTask(ctx, keys), null);
+ return ctx.kernalContext().task().execute(
+ new ClearTask(ctx.name(), ctx.affinity().affinityTopologyVersion(), keys), null);
}
else
return new GridFinishedFuture<>();
@@ -3571,7 +3573,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes);
- return ctx.kernalContext().task().execute(new SizeTask(ctx, peekModes), null);
+ return ctx.kernalContext().task().execute(
+ new SizeTask(ctx.name(), ctx.affinity().affinityTopologyVersion(), peekModes), null);
}
/** {@inheritDoc} */
@@ -4827,13 +4830,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
private static final long serialVersionUID = 0L;
/**
- * Empty constructor for serialization.
- */
- public GlobalClearAllJob() {
- // No-op.
- }
-
- /**
* @param cacheName Cache name.
* @param topVer Affinity topology version.
*/
@@ -4859,14 +4855,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
private static final long serialVersionUID = 0L;
/** Keys to remove. */
- private Set<? extends K> keys;
-
- /**
- * Empty constructor for serialization.
- */
- public GlobalClearKeySetJob() {
- // No-op.
- }
+ private final Set<? extends K> keys;
/**
* @param cacheName Cache name.
@@ -4897,14 +4886,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
private static final long serialVersionUID = 0L;
/** Peek modes. */
- private CachePeekMode[] peekModes;
-
- /**
- * Required by {@link Externalizable}.
- */
- public SizeJob() {
- // No-op.
- }
+ private final CachePeekMode[] peekModes;
/**
* @param cacheName Cache name.
@@ -5514,17 +5496,10 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
protected Ignite ignite;
/** Affinity topology version. */
- protected AffinityTopologyVersion topVer;
+ protected final AffinityTopologyVersion topVer;
/** Cache name. */
- protected String cacheName;
-
- /**
- * Empty constructor for serialization.
- */
- public TopologyVersionAwareJob() {
- // No-op.
- }
+ protected final String cacheName;
/**
* @param cacheName Cache name.
@@ -5583,24 +5558,23 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
/** */
private static final long serialVersionUID = 0L;
- /** Cache context. */
- private GridCacheContext ctx;
+ /** Cache name. */
+ private final String cacheName;
- /** Peek modes. */
- private CachePeekMode[] peekModes;
+ /** Affinity topology version. */
+ private final AffinityTopologyVersion topVer;
- /**
- * Empty constructor for serialization.
- */
- public SizeTask() {
- // No-op.
- }
+ /** Peek modes. */
+ private final CachePeekMode[] peekModes;
/**
- * @param ctx Cache context.
+ * @param cacheName Cache name.
+ * @param topVer Affinity topology version.
+ * @param peekModes Cache peek modes.
*/
- public SizeTask(GridCacheContext ctx, CachePeekMode[] peekModes) {
- this.ctx = ctx;
+ public SizeTask(String cacheName, AffinityTopologyVersion topVer, CachePeekMode[] peekModes) {
+ this.cacheName = cacheName;
+ this.topVer = topVer;
this.peekModes = peekModes;
}
@@ -5610,13 +5584,22 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
Map<ComputeJob, ClusterNode> jobs = new HashMap();
for (ClusterNode node : subgrid)
- jobs.put(new SizeJob(ctx.name(), ctx.affinity().affinityTopologyVersion(), peekModes), node);
+ jobs.put(new SizeJob(cacheName, topVer, peekModes), node);
return jobs;
}
/** {@inheritDoc} */
@Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) {
+ IgniteException e = res.getException();
+
+ if (e != null) {
+ if (e instanceof ClusterTopologyException)
+ return ComputeJobResultPolicy.WAIT;
+
+ throw new IgniteException("Remote job threw exception.", e);
+ }
+
return ComputeJobResultPolicy.WAIT;
}
@@ -5640,25 +5623,23 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
/** */
private static final long serialVersionUID = 0L;
- /** Cache context. */
- private GridCacheContext ctx;
+ /** Cache name. */
+ private final String cacheName;
- /** Keys to clear. */
- private Set<? extends K> keys;
+ /** Affinity topology version. */
+ private final AffinityTopologyVersion topVer;
- /**
- * Empty constructor for serialization.
- */
- public ClearTask() {
- // No-op.
- }
+ /** Keys to clear. */
+ private final Set<? extends K> keys;
/**
- * @param ctx Cache context.
+ * @param cacheName Cache name.
+ * @param topVer Affinity topology version.
* @param keys Keys to clear.
*/
- public ClearTask(GridCacheContext ctx, Set<? extends K> keys) {
- this.ctx = ctx;
+ public ClearTask(String cacheName, AffinityTopologyVersion topVer, Set<? extends K> keys) {
+ this.cacheName = cacheName;
+ this.topVer = topVer;
this.keys = keys;
}
@@ -5668,9 +5649,8 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
Map<ComputeJob, ClusterNode> jobs = new HashMap();
for (ClusterNode node : subgrid) {
- jobs.put(keys == null ?
- new GlobalClearAllJob(ctx.name(), ctx.affinity().affinityTopologyVersion()) :
- new GlobalClearKeySetJob<K>(ctx.name(), ctx.affinity().affinityTopologyVersion(), keys),
+ jobs.put(keys == null ? new GlobalClearAllJob(cacheName, topVer) :
+ new GlobalClearKeySetJob<K>(cacheName, topVer, keys),
node);
}
@@ -5679,6 +5659,15 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
/** {@inheritDoc} */
@Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) {
+ IgniteException e = res.getException();
+
+ if (e != null) {
+ if (e instanceof ClusterTopologyException)
+ return ComputeJobResultPolicy.WAIT;
+
+ throw new IgniteException("Remote job threw exception.", e);
+ }
+
return ComputeJobResultPolicy.WAIT;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java
index 3a685cc..c5ef22f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache.distributed;
import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.compute.*;
import org.apache.ignite.internal.*;
import org.apache.ignite.internal.cluster.*;
import org.apache.ignite.internal.processors.affinity.*;
@@ -30,17 +31,17 @@ import org.apache.ignite.internal.processors.cache.version.*;
import org.apache.ignite.internal.processors.datastreamer.*;
import org.apache.ignite.internal.processors.task.*;
import org.apache.ignite.internal.util.future.*;
+import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
-import org.apache.ignite.resources.*;
import org.apache.ignite.transactions.*;
import org.jetbrains.annotations.*;
import java.io.*;
import java.util.*;
-import java.util.concurrent.*;
-import static org.apache.ignite.internal.GridClosureCallMode.*;
+import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState.*;
+import static org.apache.ignite.internal.processors.task.GridTaskThreadContextKey.*;
/**
* Distributed cache implementation.
@@ -142,21 +143,28 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter
try {
AffinityTopologyVersion topVer;
+ boolean retry;
+
+ CacheOperationContext opCtx = ctx.operationContextPerCall();
+
+ boolean skipStore = opCtx != null && opCtx.skipStore();
+
do {
+ retry = false;
+
topVer = ctx.affinity().affinityTopologyVersion();
// Send job to all data nodes.
Collection<ClusterNode> nodes = ctx.grid().cluster().forDataNodes(name()).nodes();
if (!nodes.isEmpty()) {
- CacheOperationContext opCtx = ctx.operationContextPerCall();
+ ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes);
- ctx.closures().callAsyncNoFailover(BROADCAST,
- new GlobalRemoveAllCallable<>(name(), topVer, opCtx != null && opCtx.skipStore()), nodes,
- true).get();
+ retry = !ctx.kernalContext().task().execute(
+ new RemoveAllTask(ctx.name(), topVer, skipStore), null).get();
}
}
- while (ctx.affinity().affinityTopologyVersion().compareTo(topVer) > 0);
+ while (ctx.affinity().affinityTopologyVersion().compareTo(topVer) != 0 || retry);
}
catch (ClusterGroupEmptyCheckedException ignore) {
if (log.isDebugEnabled())
@@ -170,7 +178,11 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter
AffinityTopologyVersion topVer = ctx.affinity().affinityTopologyVersion();
- removeAllAsync(opFut, topVer);
+ CacheOperationContext opCtx = ctx.operationContextPerCall();
+
+ boolean skipStore = opCtx != null && opCtx.skipStore();
+
+ removeAllAsync(opFut, topVer, skipStore);
return opFut;
}
@@ -178,27 +190,29 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter
/**
* @param opFut Future.
* @param topVer Topology version.
+ * @param skipStore Skip store flag.
*/
- private void removeAllAsync(final GridFutureAdapter<Void> opFut, final AffinityTopologyVersion topVer) {
+ private void removeAllAsync(final GridFutureAdapter<Void> opFut, final AffinityTopologyVersion topVer,
+ final boolean skipStore) {
Collection<ClusterNode> nodes = ctx.grid().cluster().forDataNodes(name()).nodes();
if (!nodes.isEmpty()) {
- CacheOperationContext opCtx = ctx.operationContextPerCall();
+ ctx.kernalContext().task().setThreadContext(TC_SUBGRID, nodes);
- IgniteInternalFuture<?> rmvFut = ctx.closures().callAsyncNoFailover(BROADCAST,
- new GlobalRemoveAllCallable<>(name(), topVer, opCtx != null && opCtx.skipStore()), nodes, true);
+ IgniteInternalFuture<Boolean> rmvAll = ctx.kernalContext().task().execute(
+ new RemoveAllTask(ctx.name(), topVer, skipStore), null);
- rmvFut.listen(new IgniteInClosure<IgniteInternalFuture<?>>() {
- @Override public void apply(IgniteInternalFuture<?> fut) {
+ rmvAll.listen(new IgniteInClosure<IgniteInternalFuture<Boolean>>() {
+ @Override public void apply(IgniteInternalFuture<Boolean> fut) {
try {
- fut.get();
+ boolean retry = !fut.get();
AffinityTopologyVersion topVer0 = ctx.affinity().affinityTopologyVersion();
- if (topVer0.equals(topVer))
+ if (topVer0.equals(topVer) && !retry)
opFut.onDone();
else
- removeAllAsync(opFut, topVer0);
+ removeAllAsync(opFut, topVer0, skipStore);
}
catch (ClusterGroupEmptyCheckedException ignore) {
if (log.isDebugEnabled())
@@ -227,97 +241,150 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter
}
/**
- * Internal callable which performs remove all primary key mappings
- * operation on a cache with the given name.
+ * Remove task.
*/
@GridInternal
- private static class GlobalRemoveAllCallable<K,V> implements Callable<Object>, Externalizable {
+ private static class RemoveAllTask extends ComputeTaskAdapter<Object, Boolean> {
/** */
private static final long serialVersionUID = 0L;
/** Cache name. */
- private String cacheName;
+ private final String cacheName;
- /** Topology version. */
- private AffinityTopologyVersion topVer;
+ /** Affinity topology version. */
+ private final AffinityTopologyVersion topVer;
/** Skip store flag. */
- private boolean skipStore;
-
- /** Injected grid instance. */
- @IgniteInstanceResource
- private Ignite ignite;
+ private final boolean skipStore;
/**
- * Empty constructor for serialization.
+ * @param cacheName Cache name.
+ * @param topVer Affinity topology version.
+ * @param skipStore Skip store flag.
*/
- public GlobalRemoveAllCallable() {
- // No-op.
+ public RemoveAllTask(String cacheName, AffinityTopologyVersion topVer, boolean skipStore) {
+ this.cacheName = cacheName;
+ this.topVer = topVer;
+ this.skipStore = skipStore;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public Map<? extends ComputeJob, ClusterNode> map(List<ClusterNode> subgrid,
+ @Nullable Object arg) throws IgniteException {
+ Map<ComputeJob, ClusterNode> jobs = new HashMap();
+
+ for (ClusterNode node : subgrid)
+ jobs.put(new GlobalRemoveAllJob(cacheName, topVer, skipStore), node);
+
+ return jobs;
+ }
+
+ /** {@inheritDoc} */
+ @Override public ComputeJobResultPolicy result(ComputeJobResult res, List<ComputeJobResult> rcvd) {
+ IgniteException e = res.getException();
+
+ if (e != null) {
+ if (e instanceof ClusterTopologyException)
+ return ComputeJobResultPolicy.WAIT;
+
+ throw new IgniteException("Remote job threw exception.", e);
+ }
+
+ return ComputeJobResultPolicy.WAIT;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public Boolean reduce(List<ComputeJobResult> results) throws IgniteException {
+ for (ComputeJobResult locRes : results) {
+ if (locRes != null && (locRes.getException() != null || !locRes.<Boolean>getData()))
+ return false;
+ }
+
+ return true;
}
+ }
+ /**
+ * Internal job which performs remove all primary key mappings
+ * operation on a cache with the given name.
+ */
+ @GridInternal
+ private static class GlobalRemoveAllJob<K,V> extends TopologyVersionAwareJob {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** Skip store flag. */
+ private final boolean skipStore;
/**
* @param cacheName Cache name.
* @param topVer Topology version.
* @param skipStore Skip store flag.
*/
- private GlobalRemoveAllCallable(String cacheName, @NotNull AffinityTopologyVersion topVer, boolean skipStore) {
- this.cacheName = cacheName;
- this.topVer = topVer;
+ private GlobalRemoveAllJob(String cacheName, @NotNull AffinityTopologyVersion topVer, boolean skipStore) {
+ super(cacheName, topVer);
+
this.skipStore = skipStore;
}
- /**
- * {@inheritDoc}
- */
- @Override public Object call() throws Exception {
- GridCacheAdapter<K, V> cacheAdapter = ((IgniteKernal)ignite).context().cache().internalCache(cacheName);
+ /** {@inheritDoc} */
+ @Nullable @Override public Object localExecute(@Nullable IgniteInternalCache cache0) {
+ GridCacheAdapter cache = ((IgniteKernal) ignite).context().cache().internalCache(cacheName);
- final GridCacheContext<K, V> ctx = cacheAdapter.context();
+ if (cache == null)
+ return true;
- ctx.affinity().affinityReadyFuture(topVer).get();
+ final GridCacheContext<K, V> ctx = cache.context();
ctx.gate().enter();
try {
if (!ctx.affinity().affinityTopologyVersion().equals(topVer))
- return null; // Ignore this remove request because remove request will be sent again.
+ return false; // Ignore this remove request because remove request will be sent again.
GridDhtCacheAdapter<K, V> dht;
GridNearCacheAdapter<K, V> near = null;
- if (cacheAdapter instanceof GridNearCacheAdapter) {
- near = ((GridNearCacheAdapter<K, V>)cacheAdapter);
+ if (cache instanceof GridNearCacheAdapter) {
+ near = ((GridNearCacheAdapter<K, V>) cache);
dht = near.dht();
}
else
- dht = (GridDhtCacheAdapter<K, V>)cacheAdapter;
+ dht = (GridDhtCacheAdapter<K, V>) cache;
try (DataStreamerImpl<KeyCacheObject, Object> dataLdr =
- (DataStreamerImpl)ignite.dataStreamer(cacheName)) {
- ((DataStreamerImpl)dataLdr).maxRemapCount(0);
+ (DataStreamerImpl) ignite.dataStreamer(cacheName)) {
+ ((DataStreamerImpl) dataLdr).maxRemapCount(0);
dataLdr.skipStore(skipStore);
dataLdr.receiver(DataStreamerCacheUpdaters.<KeyCacheObject, Object>batched());
- for (GridDhtLocalPartition locPart : dht.topology().currentLocalPartitions()) {
- if (!locPart.isEmpty() && locPart.primary(topVer)) {
- for (GridDhtCacheEntry o : locPart.entries()) {
- if (!o.obsoleteOrDeleted())
- dataLdr.removeDataInternal(o.key());
- }
- }
- }
+ for (int part : ctx.affinity().primaryPartitions(ctx.localNodeId(), topVer)) {
+ GridDhtLocalPartition locPart = dht.topology().localPartition(part, topVer, false);
- Iterator<KeyCacheObject> it = dht.context().swap().offHeapKeyIterator(true, false, topVer);
+ if (locPart == null || (ctx.rebalanceEnabled() && locPart.state() != OWNING) || !locPart.reserve())
+ return false;
- while (it.hasNext())
- dataLdr.removeDataInternal(it.next());
+ try {
+ if (!locPart.isEmpty()) {
+ for (GridDhtCacheEntry o : locPart.entries()) {
+ if (!o.obsoleteOrDeleted())
+ dataLdr.removeDataInternal(o.key());
+ }
+ }
- it = dht.context().swap().swapKeyIterator(true, false, topVer);
+ GridCloseableIterator<Map.Entry<byte[], GridCacheSwapEntry>> iter =
+ dht.context().swap().iterator(part);
- while (it.hasNext())
- dataLdr.removeDataInternal(it.next());
+ if (iter != null) {
+ for (Map.Entry<byte[], GridCacheSwapEntry> e : iter)
+ dataLdr.removeDataInternal(ctx.toCacheKeyObject(e.getKey()));
+ }
+ }
+ finally {
+ locPart.release();
+ }
+ }
}
if (near != null) {
@@ -329,25 +396,14 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter
}
}
}
+ catch (IgniteCheckedException e) {
+ throw U.convertException(e);
+ }
finally {
ctx.gate().leave();
}
- return null;
- }
-
- /** {@inheritDoc} */
- @Override public void writeExternal(ObjectOutput out) throws IOException {
- U.writeString(out, cacheName);
- out.writeObject(topVer);
- out.writeBoolean(skipStore);
- }
-
- /** {@inheritDoc} */
- @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- cacheName = U.readString(in);
- topVer = (AffinityTopologyVersion)in.readObject();
- skipStore = in.readBoolean();
+ return true;
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheRemoveAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheRemoveAllSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheRemoveAllSelfTest.java
new file mode 100644
index 0000000..f5de96f
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheRemoveAllSelfTest.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.testframework.*;
+
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Test remove all method.
+ */
+public class CacheRemoveAllSelfTest extends GridCacheAbstractSelfTest {
+ /** {@inheritDoc} */
+ @Override protected long getTestTimeout() {
+ return 60000;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected int gridCount() {
+ return 4;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testRemoveAll() throws Exception {
+ IgniteCache<Integer, String> cache = grid(0).cache(null);
+
+ for (int i = 0; i < 10_000; ++i)
+ cache.put(i, "val");
+
+ final AtomicInteger igniteId = new AtomicInteger(gridCount());
+
+ IgniteInternalFuture fut = GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ for (int i = 0; i < 2; ++i)
+ startGrid(igniteId.getAndIncrement());
+
+ return true;
+ }
+ }, 3, "start-node-thread");
+
+ cache.removeAll();
+
+ fut.get();
+
+ U.sleep(5000);
+
+ for (int i = 0; i < igniteId.get(); ++i) {
+ IgniteCache locCache = grid(i).cache(null);
+
+ assertEquals("Local size: " + locCache.localSize() + "\n" +
+ "On heap: " + locCache.localSize(CachePeekMode.ONHEAP) + "\n" +
+ "Off heap: " + locCache.localSize(CachePeekMode.OFFHEAP) + "\n" +
+ "Swap: " + locCache.localSize(CachePeekMode.SWAP) + "\n" +
+ "Primary: " + locCache.localSize(CachePeekMode.PRIMARY) + "\n" +
+ "Backup: " + locCache.localSize(CachePeekMode.BACKUP),
+ 0, locCache.localSize());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NoneRebalanceModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NoneRebalanceModeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NoneRebalanceModeSelfTest.java
new file mode 100644
index 0000000..d61ddcc
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NoneRebalanceModeSelfTest.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.near;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import static org.apache.ignite.cache.CacheRebalanceMode.*;
+import static org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionState.*;
+
+/**
+ * Test none rebalance mode.
+ */
+public class NoneRebalanceModeSelfTest extends GridCommonAbstractTest {
+ /** {@inheritDoc} */
+ @SuppressWarnings({"ConstantConditions"})
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration c = super.getConfiguration(gridName);
+
+ CacheConfiguration cc = defaultCacheConfiguration();
+
+ cc.setRebalanceMode(NONE);
+
+ c.setCacheConfiguration(cc);
+
+ return c;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ startGrid(0);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testRemoveAll() throws Exception {
+ GridNearTransactionalCache cache = (GridNearTransactionalCache)((IgniteKernal)grid(0)).internalCache(null);
+
+ for (GridDhtLocalPartition part : cache.dht().topology().localPartitions())
+ assertEquals(MOVING, part.state());
+
+ grid(0).cache(null).removeAll();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index dc3a2c0..5738778 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -58,6 +58,7 @@ public class IgniteCacheTestSuite2 extends TestSuite {
suite.addTestSuite(GridCachePartitionedGetSelfTest.class);
suite.addTest(new TestSuite(GridCachePartitionedBasicApiTest.class));
suite.addTest(new TestSuite(GridCacheNearMultiGetSelfTest.class));
+ suite.addTest(new TestSuite(NoneRebalanceModeSelfTest.class));
suite.addTest(new TestSuite(GridCacheNearJobExecutionSelfTest.class));
suite.addTest(new TestSuite(GridCacheNearOneNodeSelfTest.class));
suite.addTest(new TestSuite(GridCacheNearMultiNodeSelfTest.class));
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/593e3eee/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index 8eb0688..aaf7e5b 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -126,6 +126,8 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(CacheNoValueClassOnServerNodeTest.class);
+ suite.addTestSuite(CacheRemoveAllSelfTest.class);
+
suite.addTestSuite(CacheOffheapMapEntrySelfTest.class);
return suite;
[28/32] incubator-ignite git commit: # IGNITE-709 Added
testClientAndRouterFail() test
Posted by sb...@apache.org.
# IGNITE-709 Added testClientAndRouterFail() test
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4d5b8998
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4d5b8998
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4d5b8998
Branch: refs/heads/ignite-709_3
Commit: 4d5b8998cba39b61afd5d2fd7684bc78d6bc3faa
Parents: 85a49ec
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 16:30:18 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 16:30:18 2015 +0300
----------------------------------------------------------------------
.../tcp/TcpClientDiscoverySpiSelfTest.java | 33 ++++++++++++++++++++
1 file changed, 33 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4d5b8998/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
index 119fc53..6544369 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
@@ -597,6 +597,39 @@ public class TcpClientDiscoverySpiSelfTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
+ public void testClientAndRouterFail() throws Exception {
+ startServerNodes(2);
+ startClientNodes(2);
+
+ checkNodes(2, 2);
+
+ srvFailedLatch = new CountDownLatch(2);
+ clientFailedLatch = new CountDownLatch(2);
+
+ attachListeners(1, 1);
+
+ ((TcpDiscoverySpi)G.ignite("server-1").configuration().getDiscoverySpi()).addSendMessageListener(new IgniteInClosure<TcpDiscoveryAbstractMessage>() {
+ @Override public void apply(TcpDiscoveryAbstractMessage msg) {
+ try {
+ Thread.sleep(1000000);
+ }
+ catch (InterruptedException ignored) {
+ Thread.interrupted();
+ }
+ }
+ });
+ failClient(1);
+ failServer(1);
+
+ await(srvFailedLatch);
+ await(clientFailedLatch);
+
+ checkNodes(1, 1);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
public void testMetrics() throws Exception {
startServerNodes(3);
startClientNodes(3);
[11/32] incubator-ignite git commit: # ignite-sprint-5 added test for
IGNITE-882
Posted by sb...@apache.org.
# ignite-sprint-5 added test for IGNITE-882
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/82467880
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/82467880
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/82467880
Branch: refs/heads/ignite-709_3
Commit: 82467880eb18bbd16a26b92300b5212f37fe3200
Parents: 22341a9
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 13 16:16:12 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 13 16:16:12 2015 +0300
----------------------------------------------------------------------
.../discovery/tcp/TcpDiscoveryRestartTest.java | 199 +++++++++++++++++++
1 file changed, 199 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/82467880/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryRestartTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryRestartTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryRestartTest.java
new file mode 100644
index 0000000..e6bee4a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryRestartTest.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+import org.eclipse.jetty.util.*;
+
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.events.EventType.*;
+
+/**
+ *
+ */
+public class TcpDiscoveryRestartTest extends GridCommonAbstractTest {
+ /** */
+ private TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ private static AtomicReference<String> err;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+ spi.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(spi);
+
+ int[] evts = {EVT_NODE_JOINED, EVT_NODE_FAILED, EVT_NODE_LEFT};
+
+ cfg.setIncludeEventTypes(evts);
+
+ Map<IgnitePredicate<? extends Event>, int[]> lsnrs = new HashMap<>();
+
+ lsnrs.put(new TestEventListener(), evts);
+
+ cfg.setLocalEventListeners(lsnrs);
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testRestart() throws Exception {
+ err = new AtomicReference<>();
+
+ final int NODE_CNT = 3;
+
+ startGrids(NODE_CNT);
+
+ final ConcurrentHashSet<UUID> nodeIds = new ConcurrentHashSet<>();
+
+ final AtomicInteger id = new AtomicInteger(NODE_CNT);
+
+ final IgniteInternalFuture<?> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Void>() {
+ @Override public Void call() throws Exception {
+ int nodeIdx = id.getAndIncrement();
+
+ for (int i = 0; i < 10 && err.get() == null; i++) {
+ Ignite ignite = startGrid(nodeIdx);
+
+ UUID nodeId = ignite.cluster().localNode().id();
+
+ if (!nodeIds.add(nodeId))
+ failed("Duplicated node ID: " + nodeId);
+
+ stopGrid(nodeIdx);
+ }
+
+ return null;
+ }
+ }, 5, "restart-thread");
+
+ IgniteInternalFuture<?> loadFut = GridTestUtils.runMultiThreadedAsync(new Callable<Long>() {
+ @Override public Long call() throws Exception {
+ long dummyRes = 0;
+
+ List<String> list = new ArrayList<>();
+
+ while (!fut.isDone()) {
+ for (int i = 0; i < 100; i++) {
+ String str = new String(new byte[i]);
+
+ list.add(str);
+
+ dummyRes += str.hashCode();
+ }
+
+ if (list.size() > 1000_000) {
+ list = new ArrayList<>();
+
+ System.gc();
+ }
+ }
+
+ return dummyRes;
+ }
+ }, 2, "test-load");
+
+ fut.get();
+
+ loadFut.get();
+
+ assertNull(err.get());
+
+ for (int i = 0; i < NODE_CNT; i++) {
+ Ignite ignite = ignite(i);
+
+ TestEventListener lsnr = (TestEventListener)F.firstKey(ignite.configuration().getLocalEventListeners());
+
+ assertNotNull(lsnr);
+
+ for (UUID nodeId : nodeIds)
+ lsnr.checkEvents(nodeId);
+ }
+ }
+
+
+ /**
+ * @param msg Message.
+ */
+ private void failed(String msg) {
+ info(msg);
+
+ err.compareAndSet(null, msg);
+ }
+
+ /**
+ *
+ */
+ private class TestEventListener implements IgnitePredicate<Event> {
+ /** */
+ private final ConcurrentHashSet<UUID> joinIds = new ConcurrentHashSet<>();
+
+ /** */
+ private final ConcurrentHashSet<UUID> leftIds = new ConcurrentHashSet<>();
+
+ /** {@inheritDoc} */
+ @Override public boolean apply(Event evt) {
+ DiscoveryEvent evt0 = (DiscoveryEvent)evt;
+
+ if (evt.type() == EVT_NODE_FAILED || evt.type() == EVT_NODE_LEFT) {
+ if (!leftIds.add(evt0.eventNode().id()))
+ failed("Duplicated failed node ID: " + evt0.eventNode().id());
+ }
+ else {
+ assertEquals(EVT_NODE_JOINED, evt.type());
+
+ if (!joinIds.add(evt0.eventNode().id()))
+ failed("Duplicated joined node ID: " + evt0.eventNode().id());
+ }
+
+ return true;
+ }
+
+ /**
+ * @param nodeId Node ID.
+ */
+ void checkEvents(UUID nodeId) {
+ assertTrue("No join event: " + nodeId, joinIds.contains(nodeId));
+
+ assertTrue("No left event: " + nodeId, leftIds.contains(nodeId));
+ }
+ }
+}
[18/32] incubator-ignite git commit: # IGNITE-894 Move
@InjectRecursively to private package.
Posted by sb...@apache.org.
# IGNITE-894 Move @InjectRecursively to private package.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/27b559e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/27b559e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/27b559e3
Branch: refs/heads/ignite-709_3
Commit: 27b559e3aace024f19b411a8b377858c9e0456ab
Parents: 3abd25e
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 19:10:03 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 19:10:03 2015 +0300
----------------------------------------------------------------------
.../internal/processors/igfs/IgfsJobImpl.java | 1 +
.../processors/resource/GridResourceIoc.java | 1 -
.../processors/resource/InjectRecursively.java | 30 ++++++++++++++++++++
.../ignite/resources/InjectRecursively.java | 30 --------------------
4 files changed, 31 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27b559e3/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
index b5a336e..8f2cfd2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsJobImpl.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
import org.apache.ignite.compute.*;
import org.apache.ignite.igfs.*;
import org.apache.ignite.igfs.mapreduce.*;
+import org.apache.ignite.internal.processors.resource.*;
import org.apache.ignite.resources.*;
import java.io.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27b559e3/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
index 55c0d3b..ce19664 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
@@ -22,7 +22,6 @@ import org.apache.ignite.internal.managers.deployment.*;
import org.apache.ignite.internal.util.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.resources.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27b559e3/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
new file mode 100644
index 0000000..383ee03
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/InjectRecursively.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.resource;
+
+import java.lang.annotation.*;
+
+/**
+ * Indicates that resource injection should be performed for field value too.
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface InjectRecursively {
+ // No-op.
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/27b559e3/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java b/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
deleted file mode 100644
index 60d1bd7..0000000
--- a/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.resources;
-
-import java.lang.annotation.*;
-
-/**
- * Indicates that resource injection should be performed for field value too.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-public @interface InjectRecursively {
- // No-op.
-}
[27/32] incubator-ignite git commit: # IGNITE-709 Fix exception in
the tests: don't cancel timer in TcpClientDiscoverySpi.simulateNodeFailure()
Posted by sb...@apache.org.
# IGNITE-709 Fix exception in the tests: don't cancel timer in TcpClientDiscoverySpi.simulateNodeFailure()
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/85a49ec8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/85a49ec8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/85a49ec8
Branch: refs/heads/ignite-709_3
Commit: 85a49ec836f7dda4bd42b692d736e5b161218159
Parents: bcff210
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 16:27:35 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 16:27:35 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/85a49ec8/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 8b32dd2..9678b87 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -657,8 +657,6 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
U.join(sockWriter, log);
U.join(msgWorker, log);
U.join(sockTimeoutWorker, log);
-
- timer.cancel();
}
/**
[31/32] incubator-ignite git commit: # ignite-709_3 merge
Posted by sb...@apache.org.
# ignite-709_3 merge
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c1913c45
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c1913c45
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c1913c45
Branch: refs/heads/ignite-709_3
Commit: c1913c45175485543d51e167f7b548e52bdbe13d
Parents: 4717ea9 98743ef
Author: sboikov <sb...@gridgain.com>
Authored: Fri May 15 09:18:07 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri May 15 09:18:07 2015 +0300
----------------------------------------------------------------------
bin/ignite-schema-import.bat | 2 +-
bin/ignite-schema-import.sh | 2 +-
bin/ignite.bat | 2 +-
bin/ignite.sh | 2 +-
bin/ignitevisorcmd.bat | 2 +-
bin/ignitevisorcmd.sh | 2 +-
.../processors/cache/GridCacheAdapter.java | 119 +++++------
.../processors/cache/GridCacheContext.java | 7 +
.../processors/cache/GridCacheMapEntry.java | 70 ++++---
.../GridDistributedCacheAdapter.java | 210 ++++++++++++-------
.../distributed/dht/GridDhtCacheAdapter.java | 16 +-
.../dht/GridDhtOffHeapCacheEntry.java | 63 ++++++
.../dht/GridDhtTransactionalCacheAdapter.java | 9 +-
.../distributed/dht/GridNoStorageCacheMap.java | 4 +-
.../dht/atomic/GridDhtAtomicCache.java | 3 +
.../atomic/GridDhtAtomicOffHeapCacheEntry.java | 63 ++++++
.../dht/colocated/GridDhtColocatedCache.java | 5 +-
.../GridDhtColocatedOffHeapCacheEntry.java | 63 ++++++
.../GridDhtPartitionsExchangeFuture.java | 7 -
.../distributed/near/GridNearCacheAdapter.java | 3 +
.../near/GridNearOffHeapCacheEntry.java | 60 ++++++
.../cache/local/GridLocalCacheEntry.java | 18 ++
.../processors/resource/GridResourceField.java | 5 +-
.../processors/resource/GridResourceIoc.java | 20 +-
.../resource/GridResourceProcessor.java | 16 +-
.../ignite/internal/util/IgniteUtils.java | 3 +
.../util/lang/GridComputeJobWrapper.java | 96 ---------
.../discovery/tcp/TcpClientDiscoverySpi.java | 151 +++++++------
.../tcp/internal/TcpDiscoveryNodesRing.java | 2 +-
.../resources/META-INF/classnames.properties | 1 -
.../cache/CacheOffheapMapEntrySelfTest.java | 168 +++++++++++++++
.../cache/CacheRemoveAllSelfTest.java | 81 +++++++
.../distributed/GridCacheLockAbstractTest.java | 2 -
...achePartitionedNearDisabledLockSelfTest.java | 47 +++++
.../near/NoneRebalanceModeSelfTest.java | 67 ++++++
.../GridCacheReplicatedLockSelfTest.java | 5 +
.../GridCacheLocalIsolatedNodesSelfTest.java | 18 +-
.../tcp/TcpClientDiscoverySpiSelfTest.java | 37 ++++
.../discovery/tcp/TcpDiscoveryRestartTest.java | 199 ++++++++++++++++++
.../testsuites/IgniteCacheTestSuite2.java | 2 +
.../testsuites/IgniteCacheTestSuite4.java | 4 +
.../scalar/tests/ScalarCacheQueriesSpec.scala | 154 +++++++-------
.../ignite/scalar/tests/ScalarCacheSpec.scala | 23 +-
.../scalar/tests/ScalarConversionsSpec.scala | 43 ++--
.../scalar/tests/ScalarProjectionSpec.scala | 128 ++++++-----
.../scalar/tests/ScalarReturnableSpec.scala | 41 ++--
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/VisorRuntimeBaseSpec.scala | 2 +-
.../visor/commands/VisorArgListSpec.scala | 60 +++---
.../commands/VisorFileNameCompleterSpec.scala | 34 +--
.../commands/ack/VisorAckCommandSpec.scala | 20 +-
.../commands/alert/VisorAlertCommandSpec.scala | 68 +++---
.../cache/VisorCacheClearCommandSpec.scala | 48 ++---
.../commands/cache/VisorCacheCommandSpec.scala | 66 +++---
.../config/VisorConfigurationCommandSpec.scala | 8 +-
.../cswap/VisorCacheSwapCommandSpec.scala | 24 +--
.../deploy/VisorDeployCommandSpec.scala | 10 +-
.../disco/VisorDiscoveryCommandSpec.scala | 46 ++--
.../events/VisorEventsCommandSpec.scala | 28 +--
.../visor/commands/gc/VisorGcCommandSpec.scala | 30 +--
.../commands/help/VisorHelpCommandSpec.scala | 57 ++---
.../commands/kill/VisorKillCommandSpec.scala | 58 ++---
.../commands/log/VisorLogCommandSpec.scala | 10 +-
.../commands/mem/VisorMemoryCommandSpec.scala | 77 +++----
.../commands/node/VisorNodeCommandSpec.scala | 22 +-
.../commands/open/VisorOpenCommandSpec.scala | 16 +-
.../commands/ping/VisorPingCommandSpec.scala | 16 +-
.../commands/start/VisorStartCommandSpec.scala | 126 +++++------
.../commands/tasks/VisorTasksCommandSpec.scala | 112 +++++-----
.../commands/top/VisorTopologyCommandSpec.scala | 52 ++---
.../commands/vvm/VisorVvmCommandSpec.scala | 30 +--
71 files changed, 1992 insertions(+), 1075 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1913c45/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c1913c45/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index 39f331c,aaf7e5b..b3eb899
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@@ -125,8 -125,11 +125,12 @@@ public class IgniteCacheTestSuite4 exte
suite.addTestSuite(IgniteExchangeFutureHistoryTest.class);
suite.addTestSuite(CacheNoValueClassOnServerNodeTest.class);
+ suite.addTestSuite(IgniteSystemCacheOnClientTest.class);
+ suite.addTestSuite(CacheRemoveAllSelfTest.class);
+
+ suite.addTestSuite(CacheOffheapMapEntrySelfTest.class);
+
return suite;
}
}
[15/32] incubator-ignite git commit: ignite-768 to be fixed test
improved
Posted by sb...@apache.org.
ignite-768 to be fixed test improved
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/87e5a3f9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/87e5a3f9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/87e5a3f9
Branch: refs/heads/ignite-709_3
Commit: 87e5a3f9f81f5c06abaca66dce33c9f83e632f4d
Parents: 5f8925b
Author: avinogradov <av...@gridgain.com>
Authored: Wed May 13 18:56:08 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Wed May 13 18:56:08 2015 +0300
----------------------------------------------------------------------
.../GridCacheLocalIsolatedNodesSelfTest.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/87e5a3f9/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheLocalIsolatedNodesSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheLocalIsolatedNodesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheLocalIsolatedNodesSelfTest.java
index dbfdc86..ee42ddb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheLocalIsolatedNodesSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/local/GridCacheLocalIsolatedNodesSelfTest.java
@@ -40,7 +40,7 @@ public class GridCacheLocalIsolatedNodesSelfTest extends GridCommonAbstractTest
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
- startGrids(2);
+ startGrids(3);
}
/** {@inheritDoc} */
@@ -59,7 +59,11 @@ public class GridCacheLocalIsolatedNodesSelfTest extends GridCommonAbstractTest
Ignite g2 = grid(1);
UUID nid2 = g2.cluster().localNode().id();
+ Ignite g3 = grid(2);
+ UUID nid3 = g3.cluster().localNode().id();
+
assert !nid1.equals(nid2);
+ assert !nid1.equals(nid3);
// Local cache on first node only.
CacheConfiguration<String, String> ccfg1 = new CacheConfiguration<>("A");
@@ -77,8 +81,20 @@ public class GridCacheLocalIsolatedNodesSelfTest extends GridCommonAbstractTest
IgniteCache<String, String> c2 = g2.createCache(ccfg2);
c2.put("g2", "c2");
+ // Local cache on third node only.
+ CacheConfiguration<String, String> ccfg3 = new CacheConfiguration<>("A");
+ ccfg3.setCacheMode(LOCAL);
+ ccfg3.setNodeFilter(new NodeIdFilter(nid3));
+
+ IgniteCache<String, String> c3 = g3.createCache(ccfg3);
+ c3.put("g3", "c3");
+
assertNull(c1.get("g2"));
+ assertNull(c1.get("g3"));
assertNull(c2.get("g1"));
+ assertNull(c2.get("g3"));
+ assertNull(c3.get("g1"));
+ assertNull(c3.get("g2"));
}
/** Filter by node ID. */
[21/32] incubator-ignite git commit: # ignite-sprint-5 - fixed
comment.
Posted by sb...@apache.org.
# ignite-sprint-5 - fixed comment.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7e599b61
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7e599b61
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7e599b61
Branch: refs/heads/ignite-709_3
Commit: 7e599b61d57754623de46aa4dd8407871a36f08c
Parents: d21bc30
Author: Dmitiry Setrakyan <ds...@gridgain.com>
Authored: Wed May 13 16:55:45 2015 -0700
Committer: Dmitiry Setrakyan <ds...@gridgain.com>
Committed: Wed May 13 16:55:45 2015 -0700
----------------------------------------------------------------------
bin/ignite.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e599b61/bin/ignite.sh
----------------------------------------------------------------------
diff --git a/bin/ignite.sh b/bin/ignite.sh
index ee92d27..660a80f 100755
--- a/bin/ignite.sh
+++ b/bin/ignite.sh
@@ -58,7 +58,7 @@ fi
# Set IGNITE_LIBS.
#
. "${SCRIPTS_HOME}"/include/setenv.sh
-. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in release.
+. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in the binary release.
CP="${IGNITE_LIBS}"
RANDOM_NUMBER=$("$JAVA" -cp "${CP}" org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator)
[02/32] incubator-ignite git commit: # ignite-10151 Change FlatSpec
to FunSpec in scalatests.
Posted by sb...@apache.org.
# ignite-10151 Change FlatSpec to FunSpec in scalatests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/b41fbeef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/b41fbeef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/b41fbeef
Branch: refs/heads/ignite-709_3
Commit: b41fbeef4c93cec98afddc436d146e7380590f62
Parents: 2f24ee3
Author: Andrey <an...@gridgain.com>
Authored: Thu Apr 30 16:46:43 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu Apr 30 16:46:43 2015 +0700
----------------------------------------------------------------------
.../scalar/tests/ScalarCacheQueriesSpec.scala | 154 +++++++++----------
.../ignite/scalar/tests/ScalarCacheSpec.scala | 23 +--
.../scalar/tests/ScalarConversionsSpec.scala | 43 +++---
.../scalar/tests/ScalarProjectionSpec.scala | 128 ++++++++-------
.../scalar/tests/ScalarReturnableSpec.scala | 41 ++---
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/VisorRuntimeBaseSpec.scala | 2 +-
.../visor/commands/VisorArgListSpec.scala | 60 ++++----
.../commands/VisorFileNameCompleterSpec.scala | 34 ++--
.../commands/ack/VisorAckCommandSpec.scala | 20 +--
.../commands/alert/VisorAlertCommandSpec.scala | 68 ++++----
.../cache/VisorCacheClearCommandSpec.scala | 48 +++---
.../commands/cache/VisorCacheCommandSpec.scala | 66 ++++----
.../config/VisorConfigurationCommandSpec.scala | 8 +-
.../cswap/VisorCacheSwapCommandSpec.scala | 24 +--
.../deploy/VisorDeployCommandSpec.scala | 10 +-
.../disco/VisorDiscoveryCommandSpec.scala | 46 +++---
.../events/VisorEventsCommandSpec.scala | 28 ++--
.../visor/commands/gc/VisorGcCommandSpec.scala | 30 ++--
.../commands/help/VisorHelpCommandSpec.scala | 57 +++----
.../commands/kill/VisorKillCommandSpec.scala | 58 +++----
.../commands/log/VisorLogCommandSpec.scala | 10 +-
.../commands/mem/VisorMemoryCommandSpec.scala | 77 +++++-----
.../commands/node/VisorNodeCommandSpec.scala | 22 +--
.../commands/open/VisorOpenCommandSpec.scala | 16 +-
.../commands/ping/VisorPingCommandSpec.scala | 16 +-
.../commands/start/VisorStartCommandSpec.scala | 126 +++++++--------
.../commands/tasks/VisorTasksCommandSpec.scala | 112 +++++++-------
.../commands/top/VisorTopologyCommandSpec.scala | 52 +++----
.../commands/vvm/VisorVvmCommandSpec.scala | 30 ++--
30 files changed, 724 insertions(+), 687 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheQueriesSpec.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheQueriesSpec.scala b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheQueriesSpec.scala
index 8d91fdc..2a11e5e 100644
--- a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheQueriesSpec.scala
+++ b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheQueriesSpec.scala
@@ -31,7 +31,7 @@ import scala.collection.JavaConversions._
* Tests for Scalar cache queries API.
*/
@RunWith(classOf[JUnitRunner])
-class ScalarCacheQueriesSpec extends FlatSpec with ShouldMatchers with BeforeAndAfterAll {
+class ScalarCacheQueriesSpec extends FunSpec with ShouldMatchers with BeforeAndAfterAll {
/** Entries count. */
private val ENTRY_CNT = 10
@@ -67,142 +67,142 @@ class ScalarCacheQueriesSpec extends FlatSpec with ShouldMatchers with BeforeAnd
stop()
}
- behavior of "Scalar cache queries API"
+ describe("Scalar cache queries API") {
+ it("should correctly execute SCAN queries") {
+ var res = c.scan(classOf[ObjectValue], (k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
- it should "correctly execute SCAN queries" in {
- var res = c.scan(classOf[ObjectValue], (k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
+ assert(res.size == 2)
- assert(res.size == 2)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
+ res = c.scan((k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
- res = c.scan((k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
+ assert(res.size == 2)
- assert(res.size == 2)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
+ res = c.scan(classOf[ObjectValue], (k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
- res = c.scan(classOf[ObjectValue], (k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
+ assert(res.size == 2)
- assert(res.size == 2)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
+ res = c.scan((k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
- res = c.scan((k: Int, v: ObjectValue) => k > 5 && v.intVal < 8).getAll
+ assert(res.size == 2)
- assert(res.size == 2)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
+ }
- res.foreach(t => assert(t.getKey > 5 && t.getKey < 8 && t.getKey == t.getValue.intVal))
- }
+ it("should correctly execute SQL queries") {
+ var res = c.sql(classOf[ObjectValue], "intVal > 5").getAll
- it should "correctly execute SQL queries" in {
- var res = c.sql(classOf[ObjectValue], "intVal > 5").getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql(classOf[ObjectValue], "intVal > ?", 5).getAll
- res = c.sql(classOf[ObjectValue], "intVal > ?", 5).getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql("intVal > 5").getAll
- res = c.sql("intVal > 5").getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql("intVal > ?", 5).getAll
- res = c.sql("intVal > ?", 5).getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql(classOf[ObjectValue], "intVal > 5").getAll
- res = c.sql(classOf[ObjectValue], "intVal > 5").getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql(classOf[ObjectValue], "intVal > ?", 5).getAll
- res = c.sql(classOf[ObjectValue], "intVal > ?", 5).getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql("intVal > 5").getAll
- res = c.sql("intVal > 5").getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ res = c.sql("intVal > ?", 5).getAll
- res = c.sql("intVal > ?", 5).getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
+ }
- res.foreach(t => assert(t.getKey > 5 && t.getKey == t.getValue.intVal))
- }
+ it("should correctly execute TEXT queries") {
+ var res = c.text(classOf[ObjectValue], "str").getAll
- it should "correctly execute TEXT queries" in {
- var res = c.text(classOf[ObjectValue], "str").getAll
+ assert(res.size == ENTRY_CNT)
- assert(res.size == ENTRY_CNT)
+ res = c.text(classOf[ObjectValue], "five").getAll
- res = c.text(classOf[ObjectValue], "five").getAll
+ assert(res.size == 1)
+ assert(res.head.getKey == 5)
- assert(res.size == 1)
- assert(res.head.getKey == 5)
+ res = c.text("str").getAll
- res = c.text("str").getAll
+ assert(res.size == ENTRY_CNT)
- assert(res.size == ENTRY_CNT)
+ res = c.text("five").getAll
- res = c.text("five").getAll
+ assert(res.size == 1)
+ assert(res.head.getKey == 5)
- assert(res.size == 1)
- assert(res.head.getKey == 5)
+ res = c.text(classOf[ObjectValue], "str").getAll
- res = c.text(classOf[ObjectValue], "str").getAll
+ assert(res.size == ENTRY_CNT)
- assert(res.size == ENTRY_CNT)
+ res = c.text(classOf[ObjectValue], "five").getAll
- res = c.text(classOf[ObjectValue], "five").getAll
+ assert(res.size == 1)
+ assert(res.head.getKey == 5)
- assert(res.size == 1)
- assert(res.head.getKey == 5)
+ res = c.text("str").getAll
- res = c.text("str").getAll
+ assert(res.size == ENTRY_CNT)
- assert(res.size == ENTRY_CNT)
+ res = c.text("five").getAll
- res = c.text("five").getAll
+ assert(res.size == 1)
+ assert(res.head.getKey == 5)
+ }
- assert(res.size == 1)
- assert(res.head.getKey == 5)
- }
+ it("should correctly execute fields queries") {
+ var res = c.sqlFields("select intVal from ObjectValue where intVal > 5").getAll
- it should "correctly execute fields queries" in {
- var res = c.sqlFields("select intVal from ObjectValue where intVal > 5").getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
+ res.foreach(t => assert(t.size == 1 && t.head.asInstanceOf[Int] > 5))
- res.foreach(t => assert(t.size == 1 && t.head.asInstanceOf[Int] > 5))
+ res = c.sqlFields("select intVal from ObjectValue where intVal > ?", 5).getAll
- res = c.sqlFields("select intVal from ObjectValue where intVal > ?", 5).getAll
+ assert(res.size == ENTRY_CNT - 5)
- assert(res.size == ENTRY_CNT - 5)
-
- res.foreach(t => assert(t.size == 1 && t.head.asInstanceOf[Int] > 5))
- }
+ res.foreach(t => assert(t.size == 1 && t.head.asInstanceOf[Int] > 5))
+ }
- it should "correctly execute queries with multiple arguments" in {
- val res = c.sql("from ObjectValue where intVal in (?, ?, ?)", 1, 2, 3).getAll
+ it("should correctly execute queries with multiple arguments") {
+ val res = c.sql("from ObjectValue where intVal in (?, ?, ?)", 1, 2, 3).getAll
- assert(res.size == 3)
+ assert(res.size == 3)
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheSpec.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheSpec.scala b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheSpec.scala
index 0fde48f..853cc16 100644
--- a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheSpec.scala
+++ b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarCacheSpec.scala
@@ -22,32 +22,35 @@ import org.apache.ignite.events.EventType._
import org.apache.ignite.lang.IgnitePredicate
import org.apache.ignite.scalar.scalar
import org.apache.ignite.scalar.scalar._
+
import org.junit.runner.RunWith
import org.scalatest._
import org.scalatest.junit.JUnitRunner
+
import scala.collection.JavaConversions._
/**
* Scalar cache test.
*/
@RunWith(classOf[JUnitRunner])
-class ScalarCacheSpec extends FlatSpec with ShouldMatchers {
+class ScalarCacheSpec extends FunSpec with ShouldMatchers {
private val CFG = "modules/scalar/src/test/resources/spring-cache.xml"
- behavior of "Scalar cache"
+ describe("Scalar cache") {
- it should "work properly via Java APIs" in {
- scalar(CFG) {
- registerListener()
+ it("should work properly via Java APIs") {
+ scalar(CFG) {
+ registerListener()
- val c = cache$[Int, Int]("partitioned").get
+ val c = cache$[Int, Int]("partitioned").get
- c.put(1, 1)
- c.put(2, 2)
+ c.put(1, 1)
+ c.put(2, 2)
- c.iterator() foreach println
+ c.iterator() foreach println
- println("Size is: " + c.size())
+ println("Size is: " + c.size())
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarConversionsSpec.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarConversionsSpec.scala b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarConversionsSpec.scala
index b20c755..c766422 100644
--- a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarConversionsSpec.scala
+++ b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarConversionsSpec.scala
@@ -21,7 +21,7 @@ import org.apache.ignite.internal.util.lang._
import org.apache.ignite.lang._
import org.apache.ignite.scalar.scalar._
import org.junit.runner.RunWith
-import org.scalatest.FlatSpec
+import org.scalatest._
import org.scalatest.junit.JUnitRunner
import org.scalatest.matchers.ShouldMatchers
@@ -31,10 +31,10 @@ import java.util.concurrent.atomic._
*
*/
@RunWith(classOf[JUnitRunner])
-class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
- behavior of "Scalar mixin"
+class ScalarConversionsSpec extends FunSpec with ShouldMatchers {
+ describe("Scalar mixin") {
- it should "convert reducer" in {
+ it("should convert reducer") {
val r = new IgniteReducer[Int, Int] {
var sum = 0
@@ -52,7 +52,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(r.scala.apply(Seq(1, 2, 3)) == 6)
}
- it should "convert reducer 2" in {
+ it("should convert reducer 2") {
val r = new IgniteReducer2[Int, Int, Int] {
var sum = 0
@@ -70,7 +70,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(r.scala.apply(Seq(1, 2), Seq(3, 4)) == 21)
}
- it should "convert reducer 3" in {
+ it("should convert reducer 3") {
val r = new IgniteReducer3[Int, Int, Int, Int] {
var sum = 0
@@ -88,14 +88,14 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(r.scala.apply(Seq(1, 2), Seq(1, 2), Seq(1, 2)) == 27)
}
- it should "convert tuple 2" in {
+ it("should convert tuple 2") {
val t = new IgniteBiTuple[Int, Int](1, 2)
assert(t.scala._1 == 1)
assert(t.scala._2 == 2)
}
- it should "convert tuple 3" in {
+ it("should convert tuple 3") {
val t = new GridTuple3[Int, Int, Int](1, 2, 3)
assert(t.scala._1 == 1)
@@ -103,7 +103,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(t.scala._3 == 3)
}
- it should "convert tuple 4" in {
+ it("should convert tuple 4") {
val t = new GridTuple4[Int, Int, Int, Int](1, 2, 3, 4)
assert(t.scala._1 == 1)
@@ -112,7 +112,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(t.scala._4 == 4)
}
- it should "convert tuple 5" in {
+ it("should convert tuple 5") {
val t = new GridTuple5[Int, Int, Int, Int, Int](1, 2, 3, 4, 5)
assert(t.scala._1 == 1)
@@ -122,7 +122,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(t.scala._5 == 5)
}
- it should "convert in closure" in {
+ it("should convert in closure") {
val i = new AtomicInteger()
val f = new IgniteInClosure[Int] {
@@ -136,7 +136,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(i.get == 9)
}
- it should "convert in closure 2" in {
+ it("should convert in closure 2") {
val i = new AtomicInteger()
val f = new IgniteBiInClosure[Int, Int] {
@@ -150,7 +150,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(i.get == 6)
}
- it should "convert in closure 3" in {
+ it("should convert in closure 3") {
val i = new AtomicInteger()
val f = new GridInClosure3[Int, Int, Int] {
@@ -164,7 +164,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(i.get == 9)
}
- it should "convert absolute closure" in {
+ it("should convert absolute closure") {
val i = new AtomicInteger()
val f = new GridAbsClosure {
@@ -178,7 +178,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(i.get == 3)
}
- it should "convert absolute predicate" in {
+ it("should convert absolute predicate") {
val i = new AtomicInteger()
val p = new GridAbsPredicate {
@@ -195,7 +195,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(p.scala.apply())
}
- it should "convert predicate" in {
+ it("should convert predicate") {
val p = new IgnitePredicate[Int] {
override def apply(e: Int): Boolean =
e > 5
@@ -205,7 +205,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(p.scala.apply(6))
}
- it should "convert predicate 2" in {
+ it("should convert predicate 2") {
val p = new IgniteBiPredicate[Int, Int] {
override def apply(e1: Int, e2: Int): Boolean =
e1 + e2 > 5
@@ -215,7 +215,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(p.scala.apply(3, 3))
}
- it should "convert predicate 3" in {
+ it("should convert predicate 3") {
val p = new GridPredicate3[Int, Int, Int] {
override def apply(e1: Int, e2: Int, e3: Int): Boolean =
e1 + e2 + e3 > 5
@@ -225,7 +225,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(p.scala.apply(2, 2, 2))
}
- it should "convert closure" in {
+ it("should convert closure") {
val f = new IgniteClosure[Int, Int] {
override def apply(e: Int): Int =
e * 3
@@ -234,7 +234,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(f.scala.apply(3) == 9)
}
- it should "convert closure 2" in {
+ it("should convert closure 2") {
val f = new IgniteBiClosure[Int, Int, Int] {
override def apply(e1: Int, e2: Int): Int =
e1 + e2
@@ -243,7 +243,7 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(f.scala.apply(3, 3) == 6)
}
- it should "convert closure 3" in {
+ it("should convert closure 3") {
val f = new GridClosure3[Int, Int, Int, Int] {
override def apply(e1: Int, e2: Int, e3: Int): Int =
e1 + e2 + e3
@@ -251,4 +251,5 @@ class ScalarConversionsSpec extends FlatSpec with ShouldMatchers {
assert(f.scala.apply(3, 3, 3) == 9)
}
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarProjectionSpec.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarProjectionSpec.scala b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarProjectionSpec.scala
index a035550..ecb1e5a 100644
--- a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarProjectionSpec.scala
+++ b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarProjectionSpec.scala
@@ -23,6 +23,7 @@ import org.apache.ignite.configuration.IgniteConfiguration
import org.apache.ignite.messaging.MessagingListenActor
import org.apache.ignite.scalar.scalar
import org.apache.ignite.scalar.scalar._
+
import org.junit.runner.RunWith
import org.scalatest._
import org.scalatest.junit.JUnitRunner
@@ -35,7 +36,7 @@ import scala.collection.JavaConversions._
* Scalar cache test.
*/
@RunWith(classOf[JUnitRunner])
-class ScalarProjectionSpec extends FlatSpec with ShouldMatchers with BeforeAndAfterAll {
+class ScalarProjectionSpec extends FunSpec with ShouldMatchers with BeforeAndAfterAll {
/**
*
*/
@@ -68,82 +69,95 @@ class ScalarProjectionSpec extends FlatSpec with ShouldMatchers with BeforeAndAf
cfg
}
- behavior of "ScalarProjectionPimp class"
-
- it should "return all nodes" in scalar(gridConfig("node-scalar", true)) {
- assertResult(3) {
- ignite$("node-scalar").get.cluster().nodes().size
+ describe("ScalarProjectionPimp class") {
+ it("should return all nodes") {
+ scalar(gridConfig("node-scalar", true)) {
+ assertResult(3)(ignite$("node-scalar").get.cluster().nodes().size)
+ }
}
- }
-
- it should "return shown nodes" in scalar(gridConfig("node-scalar", true)) {
- assert(ignite$("node-scalar").get.nodes$((node: ClusterNode) => node.attribute[Boolean]("shown")).size == 2)
- }
- it should "return all remote nodes" in scalar(gridConfig("node-scalar", true)) {
- assertResult(2) {
- ignite$("node-scalar").get.remoteNodes$().size
+ it("should return shown nodes") {
+ scalar(gridConfig("node-scalar", true)) {
+ assert(ignite$("node-scalar").get.nodes$(
+ (node: ClusterNode) => node.attribute[Boolean]("shown")).size == 2)
+ }
}
- }
-
- it should "return shown remote nodes" in scalar(gridConfig("node-scalar", true)) {
- assert(ignite$("node-scalar").get.remoteNodes$((node: ClusterNode) =>
- node.attribute[Boolean]("shown")).size == 1)
- }
-
- it should "correctly send messages" in scalar(gridConfig("node-scalar", true)) {
- ignite$("node-1").get.message().remoteListen(null, new MessagingListenActor[Any]() {
- def receive(nodeId: UUID, msg: Any) {
- println("node-1 received " + msg)
+ it("should return all remote nodes") {
+ scalar(gridConfig("node-scalar", true)) {
+ assertResult(2)(ignite$("node-scalar").get.remoteNodes$().size)
}
- })
+ }
- ignite$("node-2").get.message().remoteListen(null, new MessagingListenActor[Any]() {
- def receive(nodeId: UUID, msg: Any) {
- println("node-2 received " + msg)
+ it("should return shown remote nodes") {
+ scalar(gridConfig("node-scalar", true)) {
+ assert(ignite$("node-scalar").get.remoteNodes$((node: ClusterNode) =>
+ node.attribute[Boolean]("shown")).size == 1)
}
- })
+ }
- ignite$("node-scalar").get !< ("Message", null)
- ignite$("node-scalar").get !< (Seq("Message1", "Message2"), null)
- }
+ it("should correctly send messages") {
+ scalar(gridConfig("node-scalar", true)) {
+ ignite$("node-1").get.message().remoteListen(null, new MessagingListenActor[Any]() {
+ def receive(nodeId: UUID, msg: Any) {
+ println("node-1 received " + msg)
+ }
+ })
+
+ ignite$("node-2").get.message().remoteListen(null, new MessagingListenActor[Any]() {
+ def receive(nodeId: UUID, msg: Any) {
+ println("node-2 received " + msg)
+ }
+ })
+
+ ignite$("node-scalar").get !<("Message", null)
+ ignite$("node-scalar").get !<(Seq("Message1", "Message2"), null)
+ }
+ }
- it should "correctly make calls" in scalar(gridConfig("node-scalar", true)) {
- println("CALL RESULT: " + ignite$("node-scalar").get #< (() => "Message", null))
+ it("should correctly make calls") {
+ scalar(gridConfig("node-scalar", true)) {
+ println("CALL RESULT: " + ignite$("node-scalar").get #<(() => "Message", null))
- println("ASYNC CALL RESULT: " + ignite$("node-scalar").get.callAsync$[String](() => "Message", null).get)
+ println("ASYNC CALL RESULT: " + ignite$("node-scalar").get.callAsync$[String](() => "Message", null).get)
- val call1: () => String = () => "Message1"
- val call2: () => String = () => "Message2"
+ val call1: () => String = () => "Message1"
+ val call2: () => String = () => "Message2"
- println("MULTIPLE CALL RESULT: " + ignite$("node-scalar").get #< (Seq(call1, call2), null))
+ println("MULTIPLE CALL RESULT: " + ignite$("node-scalar").get #<(Seq(call1, call2), null))
- println("MULTIPLE ASYNC CALL RESULT: " +
- (ignite$("node-scalar").get #? (Seq(call1, call2), null)).get)
- }
+ println("MULTIPLE ASYNC CALL RESULT: " +
+ (ignite$("node-scalar").get #?(Seq(call1, call2), null)).get)
+ }
+ }
- it should "correctly make runs" in scalar(gridConfig("node-scalar", true)) {
- ignite$("node-scalar").get *< (() => println("RUN RESULT: Message"), null)
+ it("should correctly make runs") {
+ scalar(gridConfig("node-scalar", true)) {
+ ignite$("node-scalar").get *<(() => println("RUN RESULT: Message"), null)
- (ignite$("node-scalar").get *? (() => println("ASYNC RUN RESULT: Message"), null)).get
+ (ignite$("node-scalar").get *?(() => println("ASYNC RUN RESULT: Message"), null)).get
- val run1: () => Unit = () => println("RUN 1 RESULT: Message1")
- val run2: () => Unit = () => println("RUN 2 RESULT: Message2")
+ val run1: () => Unit = () => println("RUN 1 RESULT: Message1")
+ val run2: () => Unit = () => println("RUN 2 RESULT: Message2")
- ignite$("node-scalar").get *< (Seq(run1, run2), null)
+ ignite$("node-scalar").get *<(Seq(run1, run2), null)
- val runAsync1: () => Unit = () => println("ASYNC RUN 1 RESULT: Message1")
- val runAsync2: () => Unit = () => println("ASYNC RUN 2 RESULT: Message2")
+ val runAsync1: () => Unit = () => println("ASYNC RUN 1 RESULT: Message1")
+ val runAsync2: () => Unit = () => println("ASYNC RUN 2 RESULT: Message2")
- (ignite$("node-scalar").get *? (Seq(runAsync1, runAsync2), null)).get
- }
+ (ignite$("node-scalar").get *?(Seq(runAsync1, runAsync2), null)).get
+ }
+ }
- it should "correctly reduce" in scalar(gridConfig("node-scalar", true)) {
- val call1: () => Int = () => 15
- val call2: () => Int = () => 82
+ it("should correctly reduce") {
+ scalar(gridConfig("node-scalar", true)) {
+ val call1: () => Int = () => 15
+ val call2: () => Int = () => 82
- assert(ignite$("node-scalar").get @< (Seq(call1, call2), (n: Seq[Int]) => n.sum, null) == 97)
- assert(ignite$("node-scalar").get.reduceAsync$(Seq(call1, call2), (n: Seq[Int]) => n.sum, null).get == 97)
+ assert(ignite$("node-scalar").get @<(Seq(call1, call2), (n: Seq[Int]) => n.sum, null) == 97)
+ assert(ignite$("node-scalar").get.reduceAsync$(Seq(call1, call2), (
+ n: Seq[Int]) => n.sum, null).get == 97)
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarReturnableSpec.scala
----------------------------------------------------------------------
diff --git a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarReturnableSpec.scala b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarReturnableSpec.scala
index 21e8cef..2927dd7 100644
--- a/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarReturnableSpec.scala
+++ b/modules/scalar/src/test/scala/org/apache/ignite/scalar/tests/ScalarReturnableSpec.scala
@@ -18,6 +18,7 @@
package org.apache.ignite.scalar.tests
import org.apache.ignite.scalar.scalar._
+
import org.junit.runner.RunWith
import org.scalatest._
import org.scalatest.junit.JUnitRunner
@@ -28,30 +29,32 @@ import scala.util.control.Breaks._
*
*/
@RunWith(classOf[JUnitRunner])
-class ScalarReturnableSpec extends FlatSpec with ShouldMatchers {
- "Scalar '^^'" should "work" in {
- var i = 0
+class ScalarReturnableSpec extends FunSpec with ShouldMatchers {
+ describe("Scalar '^^'") {
+ it("should work") {
+ var i = 0
+
+ breakable {
+ while (true) {
+ if (i == 0)
+ println("Only once!") ^^
+
+ i += 1
+ }
+ }
- breakable {
- while (true) {
- if (i == 0)
- println("Only once!") ^^
+ assert(i == 0)
+ }
- i += 1
+ // Ignore exception below.
+ def test() = breakable {
+ while (true) {
+ println("Only once!") ^^
}
}
- assert(i == 0)
- }
-
- "Scalar '^^'" should "also work" in {
- test()
- }
-
- // Ignore exception below.
- def test() = breakable {
- while (true) {
- println("Only once!") ^^
+ it("should also work") {
+ test()
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index 7abd896..4ef04fb 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -100,7 +100,7 @@
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_2.11</artifactId>
- <version>2.2.2</version>
+ <version>2.2.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/VisorRuntimeBaseSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/VisorRuntimeBaseSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/VisorRuntimeBaseSpec.scala
index aa6ab84..f27bae3 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/VisorRuntimeBaseSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/VisorRuntimeBaseSpec.scala
@@ -24,7 +24,7 @@ import org.scalatest._
/**
* Base abstract class for unit tests requiring Visor runtime.
*/
-abstract class VisorRuntimeBaseSpec(private[this] val num: Int) extends FlatSpec with Matchers
+abstract class VisorRuntimeBaseSpec(private[this] val num: Int) extends FunSpec with Matchers
with BeforeAndAfterAll with BeforeAndAfterEach {
assert(num >= 1)
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorArgListSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorArgListSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorArgListSpec.scala
index 8b71918..a581899 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorArgListSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorArgListSpec.scala
@@ -25,48 +25,48 @@ import visor._
/**
* Test for visor's argument list parsing.
*/
-class VisorArgListSpec extends FlatSpec with ShouldMatchers {
- behavior of "A visor argument list"
+class VisorArgListSpec extends FunSpec with ShouldMatchers {
+ describe("A visor argument list") {
+ it("should properly parse 'null' arguments") {
+ val v = parseArgs(null)
- it should "properly parse 'null' arguments" in {
- val v = parseArgs(null)
+ assert(v.isEmpty)
+ }
- assert(v.isEmpty)
- }
-
- it should "properly parse non-empty arguments" in {
- val v = parseArgs("-a=b c d -minus -d=")
+ it("should properly parse non-empty arguments") {
+ val v = parseArgs("-a=b c d -minus -d=")
- assert(v.size == 5)
+ assert(v.size == 5)
- assert(v(0)._1 == "a")
- assert(v(0)._2 == "b")
+ assert(v(0)._1 == "a")
+ assert(v(0)._2 == "b")
- assert(v(1)._1 == null)
- assert(v(1)._2 == "c")
+ assert(v(1)._1 == null)
+ assert(v(1)._2 == "c")
- assert(v(2)._1 == null)
- assert(v(2)._2 == "d")
+ assert(v(2)._1 == null)
+ assert(v(2)._2 == "d")
- assert(v(3)._1 == "minus")
- assert(v(3)._2 == null)
+ assert(v(3)._1 == "minus")
+ assert(v(3)._2 == null)
- assert(v(4)._1 == "d")
- assert(v(4)._2 == "")
- }
+ assert(v(4)._1 == "d")
+ assert(v(4)._2 == "")
+ }
- it should "properly parse quoted arguments" in {
- val v = parseArgs("-a='b 'c' d' -minus -d=")
+ it("should properly parse quoted arguments") {
+ val v = parseArgs("-a='b 'c' d' -minus -d=")
- assert(v.size == 3)
+ assert(v.size == 3)
- assert(v(0)._1 == "a")
- assert(v(0)._2 == "b 'c' d")
+ assert(v(0)._1 == "a")
+ assert(v(0)._2 == "b 'c' d")
- assert(v(1)._1 == "minus")
- assert(v(1)._2 == null)
+ assert(v(1)._1 == "minus")
+ assert(v(1)._2 == null)
- assert(v(2)._1 == "d")
- assert(v(2)._2 == "")
+ assert(v(2)._1 == "d")
+ assert(v(2)._2 == "")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorFileNameCompleterSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorFileNameCompleterSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorFileNameCompleterSpec.scala
index 9767fc4..e7333c6 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorFileNameCompleterSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/VisorFileNameCompleterSpec.scala
@@ -25,34 +25,34 @@ import java.util
/**
* Test for visor's file name completer.
*/
-class VisorFileNameCompleterSpec extends FlatSpec with ShouldMatchers {
- behavior of "A visor file name completer"
+class VisorFileNameCompleterSpec extends FunSpec with ShouldMatchers {
+ describe("A visor file name completer") {
+ it("should properly parse empty path") {
+ val c = new VisorFileNameCompleter()
- it should "properly parse empty path" in {
- val c = new VisorFileNameCompleter()
+ val res = new util.ArrayList[CharSequence]()
- val res = new util.ArrayList[CharSequence]()
+ c.complete("", 0, res)
- c.complete("", 0, res)
+ assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
- assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
+ res.clear()
- res.clear()
+ c.complete(null, 0, res)
- c.complete(null, 0, res)
+ assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
- assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
+ res.clear()
- res.clear()
+ c.complete(" ", 2, res)
- c.complete(" ", 2, res)
+ assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
- assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
+ res.clear()
- res.clear()
+ c.complete("help ", 5, res)
- c.complete("help ", 5, res)
-
- assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
+ assertResult(new File("").getAbsoluteFile.listFiles().length)(res.size)
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ack/VisorAckCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ack/VisorAckCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ack/VisorAckCommandSpec.scala
index 6c6c829..b6a9608 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ack/VisorAckCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ack/VisorAckCommandSpec.scala
@@ -24,17 +24,17 @@ import org.apache.ignite.visor.commands.ack.VisorAckCommand._
* Unit test for 'ack' command.
*/
class VisorAckCommandSpec extends VisorRuntimeBaseSpec(2) {
- behavior of "A 'ack' visor command"
+ describe("A 'ack' visor command") {
+ it("should properly execute w/o arguments"){
+ visor ack()
+ }
- it should "properly execute w/o arguments" in {
- visor ack()
- }
-
- it should "properly execute with arguments" in {
- visor ack "Broadcasting!"
- }
+ it("should properly execute with arguments") {
+ visor ack "Broadcasting!"
+ }
- it should "print error message when not connected" in {
- visor ack()
+ it("should print error message when not connected") {
+ visor ack()
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommandSpec.scala
index 0a3a011..ec7d1b5 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/alert/VisorAlertCommandSpec.scala
@@ -100,54 +100,54 @@ class VisorAlertCommandSpec extends VisorRuntimeBaseSpec(1) {
}
}
- behavior of "An 'alert' visor command"
+ describe("An 'alert' visor command") {
+ it("should print not connected error message") {
+ visor.close()
- it should "print not connected error message" in {
- visor.close()
+ checkOut(visor.alert("-r -t=5 -cc=gte4"), "Visor is disconnected.")
- checkOut(visor.alert("-r -t=5 -cc=gte4"), "Visor is disconnected.")
-
- checkOut(visor.alert(), "No alerts are registered.")
- }
-
- it should "register new alert" in {
- try {
checkOut(visor.alert(), "No alerts are registered.")
+ }
- matchOut(visor.alert("-r -t=5 -cc=gte4"), "Alert.+registered.")
+ it("should register new alert") {
+ try {
+ checkOut(visor.alert(), "No alerts are registered.")
- checkOut(visor.alert(), "No alerts are registered.", false)
- }
- finally {
- visor.alert("-u -a")
+ matchOut(visor.alert("-r -t=5 -cc=gte4"), "Alert.+registered.")
+
+ checkOut(visor.alert(), "No alerts are registered.", false)
+ }
+ finally {
+ visor.alert("-u -a")
+ }
}
- }
- it should "print error messages on incorrect alerts" in {
- try {
- matchOut(visor.alert("-r -t=5"), "Alert.+registered.")
+ it("should print error messages on incorrect alerts") {
+ try {
+ matchOut(visor.alert("-r -t=5"), "Alert.+registered.")
- checkOut(visor.alert("-r -UNKNOWN_KEY=lt20"), "Invalid argument")
+ checkOut(visor.alert("-r -UNKNOWN_KEY=lt20"), "Invalid argument")
- checkOut(visor.alert("-r -cc=UNKNOWN_OPERATION20"), "Invalid expression")
- }
- finally {
- visor.alert("-u -a")
+ checkOut(visor.alert("-r -cc=UNKNOWN_OPERATION20"), "Invalid expression")
+ }
+ finally {
+ visor.alert("-u -a")
+ }
}
- }
- it should "write alert to log" in {
- try {
- matchOut(visor.alert("-r -nc=gte1"), "Alert.+registered.")
+ it("should write alert to log") {
+ try {
+ matchOut(visor.alert("-r -nc=gte1"), "Alert.+registered.")
- Ignition.start(config("node-2"))
+ Ignition.start(config("node-2"))
- Ignition.stop("node-2", false)
+ Ignition.stop("node-2", false)
- checkOut(visor.alert(), "No alerts are registered.", false)
- }
- finally {
- visor.alert("-u -a")
+ checkOut(visor.alert(), "No alerts are registered.", false)
+ }
+ finally {
+ visor.alert("-u -a")
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommandSpec.scala
index 2e51698..6bb4993 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheClearCommandSpec.scala
@@ -75,43 +75,43 @@ class VisorCacheClearCommandSpec extends VisorRuntimeBaseSpec(2) {
cfg
}
- behavior of "An 'cclear' visor command"
+ describe("An 'cclear' visor command") {
+ it("should show correct result for default cache") {
+ Ignition.ignite("node-1").cache[Int, Int](null).putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
- it should "show correct result for default cache" in {
- Ignition.ignite("node-1").cache[Int, Int](null).putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
+ val lock = Ignition.ignite("node-1").cache[Int, Int](null).lock(1)
- val lock = Ignition.ignite("node-1").cache[Int, Int](null).lock(1)
+ lock.lock()
- lock.lock()
+ VisorCacheClearCommand().clear(Nil, None)
- VisorCacheClearCommand().clear(Nil, None)
+ lock.unlock()
- lock.unlock()
+ VisorCacheClearCommand().clear(Nil, None)
+ }
- VisorCacheClearCommand().clear(Nil, None)
- }
-
- it should "show correct result for named cache" in {
- Ignition.ignite("node-1").cache[Int, Int]("cache").putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
+ it("should show correct result for named cache") {
+ Ignition.ignite("node-1").cache[Int, Int]("cache").putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
- val lock = Ignition.ignite("node-1").cache[Int, Int]("cache").lock(1)
+ val lock = Ignition.ignite("node-1").cache[Int, Int]("cache").lock(1)
- lock.lock()
+ lock.lock()
- visor.cache("-clear -c=cache")
+ visor.cache("-clear -c=cache")
- lock.unlock()
+ lock.unlock()
- visor.cache("-clear -c=cache")
- }
+ visor.cache("-clear -c=cache")
+ }
- it should "show correct help" in {
- VisorCacheCommand
+ it("should show correct help") {
+ VisorCacheCommand
- visor.help("cache")
- }
+ visor.help("cache")
+ }
- it should "show empty projection error message" in {
- visor.cache("-clear -c=wrong")
+ it("should show empty projection error message") {
+ visor.cache("-clear -c=wrong")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommandSpec.scala
index 4724006..4859a8f 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cache/VisorCacheCommandSpec.scala
@@ -36,7 +36,6 @@ import org.apache.ignite.visor.commands.cache.VisorCacheCommand._
* Unit test for 'events' command.
*/
class VisorCacheCommandSpec extends VisorRuntimeBaseSpec(1) {
- behavior of "A 'cache' visor command"
/** IP finder. */
val ipFinder = new TcpDiscoveryVmIpFinder(true)
@@ -54,7 +53,7 @@ class VisorCacheCommandSpec extends VisorRuntimeBaseSpec(1) {
val arr = Seq(classOf[JavaInt], classOf[Foo]).toArray
- cfg.setIndexedTypes(arr:_*)
+ cfg.setIndexedTypes(arr: _*)
cfg
}
@@ -65,7 +64,8 @@ class VisorCacheCommandSpec extends VisorRuntimeBaseSpec(1) {
* @param name Grid name.
* @return Grid configuration.
*/
- override def config(name: String): IgniteConfiguration = {
+ override def config(name: String): IgniteConfiguration =
+ {
val cfg = new IgniteConfiguration
cfg.setGridName(name)
@@ -81,49 +81,51 @@ class VisorCacheCommandSpec extends VisorRuntimeBaseSpec(1) {
cfg
}
- it should "put/get some values to/from cache and display information about caches" in {
- val c = Ignition.ignite("node-1").cache[String, String]("replicated")
+ describe("A 'cache' visor command") {
+ it("should put/get some values to/from cache and display information about caches") {
+ val c = Ignition.ignite("node-1").cache[String, String]("replicated")
- for (i <- 0 to 3) {
- val kv = "" + i
+ for (i <- 0 to 3) {
+ val kv = "" + i
- c.put(kv, kv)
+ c.put(kv, kv)
- c.get(kv)
- }
+ c.get(kv)
+ }
- visor.cache()
- }
+ visor.cache()
+ }
- it should "run query and display information about caches" in {
- val g = Ignition.ignite("node-1")
+ it("should run query and display information about caches") {
+ val g = Ignition.ignite("node-1")
- val c = g.cache[JavaInt, Foo]("replicated")
+ val c = g.cache[JavaInt, Foo]("replicated")
- c.put(0, Foo(20))
- c.put(1, Foo(100))
- c.put(2, Foo(101))
- c.put(3, Foo(150))
+ c.put(0, Foo(20))
+ c.put(1, Foo(100))
+ c.put(2, Foo(101))
+ c.put(3, Foo(150))
- // Create and execute query that mast return 2 rows.
- val q1 = c.query(new SqlQuery(classOf[Foo], "_key > ?").setArgs(JavaInt.valueOf(1))).getAll()
+ // Create and execute query that mast return 2 rows.
+ val q1 = c.query(new SqlQuery(classOf[Foo], "_key > ?").setArgs(JavaInt.valueOf(1))).getAll
- assert(q1.size() == 2)
+ assert(q1.size() == 2)
- // Create and execute query that mast return 0 rows.
- val q2 = c.query(new SqlQuery(classOf[Foo], "_key > ?").setArgs(JavaInt.valueOf(100))).getAll()
+ // Create and execute query that mast return 0 rows.
+ val q2 = c.query(new SqlQuery(classOf[Foo], "_key > ?").setArgs(JavaInt.valueOf(100))).getAll
- assert(q2.size() == 0)
+ assert(q2.size() == 0)
- visor cache "-a"
- }
+ visor cache "-a"
+ }
- it should "display correct information for 'replicated' cache only" in {
- visor cache "-n=replicated -a"
- }
+ it("should display correct information for 'replicated' cache only") {
+ visor cache "-n=replicated -a"
+ }
- it should "display correct information for all caches" in {
- visor cache "-a"
+ it("should display correct information for all caches") {
+ visor cache "-a"
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/config/VisorConfigurationCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/config/VisorConfigurationCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/config/VisorConfigurationCommandSpec.scala
index 6b1b62d..72642f7 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/config/VisorConfigurationCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/config/VisorConfigurationCommandSpec.scala
@@ -42,9 +42,9 @@ class VisorConfigurationCommandSpec extends VisorRuntimeBaseSpec(1) {
cfg
}
- behavior of "A 'config' visor command"
-
- it should "print configuration for first node" in {
- visor.config("-id8=@n0")
+ describe("A 'config' visor command") {
+ it("should print configuration for first node") {
+ visor.config("-id8=@n0")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cswap/VisorCacheSwapCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
index f5af1d3..8a0b0c8 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/cswap/VisorCacheSwapCommandSpec.scala
@@ -69,21 +69,21 @@ class VisorCacheSwapCommandSpec extends VisorRuntimeBaseSpec(2) {
cfg
}
- behavior of "An 'cswap' visor command"
+ describe("An 'cswap' visor command") {
+ it("should show correct result for default cache") {
+ Ignition.ignite("node-1").cache[Int, Int](null).putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
- it should "show correct result for default cache" in {
- Ignition.ignite("node-1").cache[Int, Int](null).putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
+ visor.cache("-swap -c=<default>")
+ }
- visor.cache("-swap -c=<default>")
- }
-
- it should "show correct result for named cache" in {
- Ignition.ignite("node-1").cache[Int, Int]("cache").putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
+ it("should show correct result for named cache") {
+ Ignition.ignite("node-1").cache[Int, Int]("cache").putAll(Map(1 -> 1, 2 -> 2, 3 -> 3))
- visor.cache("-swap -c=cache")
- }
+ visor.cache("-swap -c=cache")
+ }
- it should "show empty projection error message" in {
- visor.cache("-swap -c=wrong")
+ it("should show empty projection error message") {
+ visor.cache("-swap -c=wrong")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/deploy/VisorDeployCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/deploy/VisorDeployCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/deploy/VisorDeployCommandSpec.scala
index 6003119..b80ff1d 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/deploy/VisorDeployCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/deploy/VisorDeployCommandSpec.scala
@@ -25,10 +25,10 @@ import org.apache.ignite.visor.commands.deploy.VisorDeployCommand._
/**
* Unit test for 'deploy' command.
*/
-class VisorDeployCommandSpec extends FlatSpec with Matchers {
- behavior of "A 'deploy' visor command"
-
- it should "copy folder" in {
- visor.deploy("-h=uname:passwd@localhost -s=/home/uname/test -d=dir")
+class VisorDeployCommandSpec extends FunSpec with Matchers {
+ describe("A 'deploy' visor command") {
+ it("should copy folder") {
+ visor.deploy("-h=uname:passwd@localhost -s=/home/uname/test -d=dir")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommandSpec.scala
index 64f0e0f..335a048 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/disco/VisorDiscoveryCommandSpec.scala
@@ -51,35 +51,35 @@ class VisorDiscoveryCommandSpec extends VisorRuntimeBaseSpec(4) {
cfg
}
- behavior of "A 'disco' visor command"
+ describe("A 'disco' visor command") {
+ it("should advise to connect") {
+ closeVisorQuiet()
- it should "advise to connect" in {
- closeVisorQuiet()
+ visor.disco()
+ }
- visor.disco()
- }
+ it("should show all discovery events") {
+ visor.disco()
+ }
- it should "show all discovery events" in {
- visor.disco()
- }
+ it("should show all discovery events in reversed order") {
+ visor.disco("-r")
+ }
- it should "show all discovery events in reversed order" in {
- visor.disco("-r")
- }
+ it("should show discovery events from last two minutes") {
+ visor.disco("-t=2m")
+ }
- it should "show discovery events from last two minutes" in {
- visor.disco("-t=2m")
- }
+ it("should show discovery events from last two minutes in reversed order ") {
+ visor.disco("-t=2m -r")
+ }
- it should "show discovery events from last two minutes in reversed order " in {
- visor.disco("-t=2m -r")
- }
-
- it should "show top 3 discovery events" in {
- visor.disco("-c=3")
- }
+ it("should show top 3 discovery events") {
+ visor.disco("-c=3")
+ }
- it should "print error message with invalid count" in {
- visor.disco("-c=x")
+ it("should print error message with invalid count") {
+ visor.disco("-c=x")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/events/VisorEventsCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/events/VisorEventsCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/events/VisorEventsCommandSpec.scala
index 365032e..5b18590 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/events/VisorEventsCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/events/VisorEventsCommandSpec.scala
@@ -40,23 +40,23 @@ class VisorEventsCommandSpec extends VisorRuntimeBaseSpec(1) {
cfg
}
- behavior of "A 'events' visor command"
+ describe("A 'events' visor command") {
+ it("should print error message when not connected") {
+ closeVisorQuiet()
- it should "print error message when not connected" in {
- closeVisorQuiet()
+ visor.events()
+ }
- visor.events()
- }
-
- it should "display all events from remote node" in {
- visor.events("-id8=@n0")
- }
+ it("should display all events from remote node") {
+ visor.events("-id8=@n0")
+ }
- it should "display top 3 events from remote node" in {
- visor.events("-id8=@n0 -c=3")
- }
+ it("should display top 3 events from remote node") {
+ visor.events("-id8=@n0 -c=3")
+ }
- it should "print error message with invalid count" in {
- visor.events("-id8=@n0 -c=x")
+ it("should print error message with invalid count") {
+ visor.events("-id8=@n0 -c=x")
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/gc/VisorGcCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/gc/VisorGcCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/gc/VisorGcCommandSpec.scala
index 678aaf4..b467687 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/gc/VisorGcCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/gc/VisorGcCommandSpec.scala
@@ -25,15 +25,14 @@ import org.apache.ignite.visor.{VisorRuntimeBaseSpec, visor}
* Unit test for 'gc' command.
*/
class VisorGcCommandSpec extends VisorRuntimeBaseSpec(1) {
- behavior of "A 'gc' visor command"
-
/**
* Creates grid configuration for provided grid host.
*
* @param name Grid name.
* @return Grid configuration.
*/
- override def config(name: String): IgniteConfiguration = {
+ override def config(name: String): IgniteConfiguration =
+ {
val cfg = new IgniteConfiguration
cfg.setGridName(name)
@@ -41,19 +40,22 @@ class VisorGcCommandSpec extends VisorRuntimeBaseSpec(1) {
cfg
}
- it should "run GC on all nodes" in {
- visor.gc()
- }
+ describe("'gc' visor command") {
+ it("should run GC on all nodes") {
+ visor.gc()
+ }
- it should "run GC on first node" in {
- visor.gc("-id8=@n0")
- }
+ it("should run GC on first node") {
+ visor.gc("-id8=@n0")
+ }
- it should "run GC and DGC on all nodes" in {
- visor.gc("-c")
- }
+ it("should run GC and DGC on all nodes") {
+ visor.gc("-c")
+ }
+
+ it("should run GC and DGC on first node") {
+ visor.gc("-id8=@n0 -c")
+ }
- it should "run GC and DGC on first node" in {
- visor.gc("-id8=@n0 -c")
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/help/VisorHelpCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/help/VisorHelpCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/help/VisorHelpCommandSpec.scala
index b97cb85..43c6f52 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/help/VisorHelpCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/help/VisorHelpCommandSpec.scala
@@ -23,7 +23,7 @@ import org.scalatest._
/**
* Unit test for 'help' command.
*/
-class VisorHelpCommandSpec extends FlatSpec with Matchers {
+class VisorHelpCommandSpec extends FunSpec with Matchers {
// Pre-initialize command so that help can be registered.
commands.ack.VisorAckCommand
commands.ping.VisorPingCommand
@@ -40,29 +40,34 @@ class VisorHelpCommandSpec extends FlatSpec with Matchers {
commands.deploy.VisorDeployCommand
commands.start.VisorStartCommand
- "General help" should "properly execute via alias" in { visor.help() }
- "General help" should "properly execute w/o alias" in { visor.help() }
- "Help for 'start' command" should "properly execute" in { visor.help("start") }
- "Help for 'deploy' command" should "properly execute" in { visor.help("deploy") }
- "Help for 'events' command" should "properly execute" in { visor.help("events") }
- "Help for 'mclear' command" should "properly execute" in { visor.help("mclear") }
- "Help for 'cache' command" should "properly execute" in { visor.help("cache") }
- "Help for 'disco' command" should "properly execute" in { visor.help("disco") }
- "Help for 'alert' command" should "properly execute" in { visor.help("alert") }
- "Help for 'node' command" should "properly execute" in { visor.help("node") }
- "Help for 'vvm' command" should "properly execute" in { visor.help("vvm") }
- "Help for 'kill' command" should "properly execute" in { visor.help("kill") }
- "Help for 'top' command" should "properly execute" in { visor.help("top") }
- "Help for 'config' command" should "properly execute" in { visor.help("config") }
- "Help for 'ack' command" should "properly execute" in { visor.help("ack") }
- "Help for 'ping' command" should "properly execute" in { visor.help("ping") }
- "Help for 'close' command" should "properly execute" in { visor.help("close") }
- "Help for 'open' command" should "properly execute" in { visor.help("open") }
- "Help for 'status' command" should "properly execute" in { visor.help("status") }
- "Help for 'mset' command" should "properly execute" in { visor.help("mset") }
- "Help for 'mget' command" should "properly execute" in { visor.help("mget") }
- "Help for 'mlist' command" should "properly execute" in { visor.help("mlist") }
- "Help for 'help' command" should "properly execute" in { visor.help("help") }
- "Help for 'log' command" should "properly execute" in { visor.help("log") }
- "Help for 'dash' command" should "properly execute" in { visor.help("dash") }
+
+ describe("General help") {
+ it ("should properly execute via alias") { visor.searchCmd("?").get.emptyArgs }
+ it ("should properly execute w/o alias") { visor.searchCmd("help").get.emptyArgs }
+ }
+
+ describe("Help for command") {
+ it ("should properly execute for 'start' command") { visor.help("start") }
+ it ("should properly execute for 'deploy' command") { visor.help("deploy") }
+ it ("should properly execute for 'events' command") { visor.help("events") }
+ it ("should properly execute for 'mclear' command") { visor.help("mclear") }
+ it ("should properly execute for 'cache' command") { visor.help("cache") }
+ it ("should properly execute for 'disco' command") { visor.help("disco") }
+ it ("should properly execute for 'alert' command") { visor.help("alert") }
+ it ("should properly execute for 'node' command") { visor.help("node") }
+ it ("should properly execute for 'vvm' command") { visor.help("vvm") }
+ it ("should properly execute for 'kill' command") { visor.help("kill") }
+ it ("should properly execute for 'top' command") { visor.help("top") }
+ it ("should properly execute for 'config' command") { visor.help("config") }
+ it ("should properly execute for 'ack' command") { visor.help("ack") }
+ it ("should properly execute for 'ping' command") { visor.help("ping") }
+ it ("should properly execute for 'close' command") { visor.help("close") }
+ it ("should properly execute for 'open' command") { visor.help("open") }
+ it ("should properly execute for 'start' status") { visor.help("status") }
+ it ("should properly execute for 'start' mset") { visor.help("mset") }
+ it ("should properly execute for 'start' mget") { visor.help("mget") }
+ it ("should properly execute for 'start' mlist") { visor.help("mlist") }
+ it ("should properly execute for 'start' log") { visor.help("log") }
+ it ("should properly execute for 'start' dash") { visor.help("dash") }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/kill/VisorKillCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/kill/VisorKillCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/kill/VisorKillCommandSpec.scala
index 43ef313..2c659b5 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/kill/VisorKillCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/kill/VisorKillCommandSpec.scala
@@ -25,34 +25,34 @@ import org.apache.ignite.visor.commands.kill.VisorKillCommand._
/**
* Unit test for 'kill' command.
*/
-class VisorKillCommandSpec extends FlatSpec with Matchers {
- behavior of "A 'kill' visor command"
-
- it should "print error message with null argument" in {
- visor.open("-d")
- visor.kill(null)
- visor.close()
- }
-
- it should "print error message if both kill and restart specified" in {
- visor.open("-d")
- visor.kill("-k -r")
- visor.close()
- }
-
- it should "print error message if not connected" in {
- visor.kill("-k")
- }
-
- it should "restart node" in {
- visor.open("-d")
- visor.kill("-r -id8=@n1")
- visor.close()
- }
-
- it should "print error message" in {
- visor.open("-d")
- visor.kill("-r -id=xxx")
- visor.close()
+class VisorKillCommandSpec extends FunSpec with Matchers {
+ describe("A 'kill' visor command") {
+ it("should print error message with null argument") {
+ visor.open("-d")
+ visor.kill(null)
+ visor.close()
+ }
+
+ it("should print error message if both kill and restart specified") {
+ visor.open("-d")
+ visor.kill("-k -r")
+ visor.close()
+ }
+
+ it("should print error message if not connected") {
+ visor.kill("-k")
+ }
+
+ it("should restart node") {
+ visor.open("-d")
+ visor.kill("-r -id8=@n1")
+ visor.close()
+ }
+
+ it("should print error message") {
+ visor.open("-d")
+ visor.kill("-r -id=xxx")
+ visor.close()
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/log/VisorLogCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/log/VisorLogCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/log/VisorLogCommandSpec.scala
index dcf7aae..ddb84ea 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/log/VisorLogCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/log/VisorLogCommandSpec.scala
@@ -23,10 +23,10 @@ import org.scalatest._
/**
* Unit test for 'log' command.
*/
-class VisorLogCommandSpec extends FlatSpec with Matchers {
- behavior of "A 'log' visor command"
-
- it should "print log status" in {
- visor.log()
+class VisorLogCommandSpec extends FunSpec with Matchers {
+ describe("A 'log' visor command") {
+ it("should print log status") {
+ visor.log()
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/mem/VisorMemoryCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/mem/VisorMemoryCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/mem/VisorMemoryCommandSpec.scala
index 744d93b..27eaa94 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/mem/VisorMemoryCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/mem/VisorMemoryCommandSpec.scala
@@ -23,53 +23,60 @@ import org.scalatest._
/**
* Unit test for memory commands.
*/
-class VisorMemoryCommandSpec extends FlatSpec with Matchers {
- "A 'mget' visor command" should "get correct value" in {
- visor.mset("key", "value")
+class VisorMemoryCommandSpec extends FunSpec with Matchers {
+ describe("A 'mget' visor command") {
+ it("should get correct value") {
+ visor.mset("key", "value")
- assertResult(Option("value"))(visor.mgetOpt("key"))
+ assertResult(Option("value"))(visor.mgetOpt("key"))
- visor.mclear()
+ visor.mclear()
+ }
}
- "A 'mlist' visor command" should "list all variables" in {
- visor.mset("key1", "value1")
- visor.mset("key2", "value2")
- visor.mset("key3", "value3")
+ describe("A 'mlist' visor command") {
+ it("should list all variables") {
+ visor.mset("key1", "value1")
+ visor.mset("key2", "value2")
+ visor.mset("key3", "value3")
- visor.mlist()
- visor.mclear()
- }
+ visor.mlist()
+ visor.mclear()
+ }
- "A 'mlist' visor command" should "list ax and cx variables" in {
- visor.mset("a1", "1")
- visor.mset("a2", "2")
- visor.mset("b1", "3")
- visor.mset("b2", "4")
- visor.mset("c1", "5")
- visor.mset("c2", "6")
+ it("should list ax and cx variables") {
+ visor.mset("a1", "1")
+ visor.mset("a2", "2")
+ visor.mset("b1", "3")
+ visor.mset("b2", "4")
+ visor.mset("c1", "5")
+ visor.mset("c2", "6")
- visor.mlist("ac")
- visor.mclear()
+ visor.mlist("ac")
+ visor.mclear()
+ }
}
- "A 'mclear' visor command" should "remove first two variables" in {
- visor.mset("key1", "value1")
- visor.mset("key2", "value2")
- visor.mset("key3", "value3")
+ describe("A 'mclear' visor command") {
+ it("should remove first two variables") {
+ visor.mset("key1", "value1")
+ visor.mset("key2", "value2")
+ visor.mset("key3", "value3")
- visor mclear "key1 key2"
+ visor mclear "key1 key2"
- visor.mlist()
- visor.mclear()
- }
+ visor.mlist()
+ visor.mclear()
+
+ }
- "A 'mclear' visor command" should "remove all variables" in {
- visor.mset("key1", "value1")
- visor.mset("key2", "value2")
- visor.mset("key3", "value3")
+ it("should remove all variables") {
+ visor.mset("key1", "value1")
+ visor.mset("key2", "value2")
+ visor.mset("key3", "value3")
- visor.mclear()
- visor.mlist()
+ visor.mclear()
+ visor.mlist()
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/node/VisorNodeCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/node/VisorNodeCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/node/VisorNodeCommandSpec.scala
index 992ff7f..c0983c0 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/node/VisorNodeCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/node/VisorNodeCommandSpec.scala
@@ -24,19 +24,19 @@ import org.apache.ignite.visor.commands.node.VisorNodeCommand._
* Unit test for 'node' command.
*/
class VisorNodeCommandSpec extends VisorRuntimeBaseSpec(1) {
- behavior of "A 'node' visor command"
+ describe("A 'node' visor command") {
+ it("should properly execute with valid node ID") {
+ visor.node("-id8=@n1")
+ }
- it should "properly execute with valid node ID" in {
- visor.node("-id8=@n1")
- }
-
- it should "print the error message for invalid node ID" in {
- visor.node("-id8=zeee")
- }
+ it("should print the error message for invalid node ID") {
+ visor.node("-id8=zeee")
+ }
- it should "print error message when not connected" in {
- closeVisorQuiet()
+ it("should print error message when not connected") {
+ closeVisorQuiet()
- visor.node("") // Arguments are ignored.
+ visor.node("") // Arguments are ignored.
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
index 786d04e..4cf2204 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/open/VisorOpenCommandSpec.scala
@@ -24,15 +24,15 @@ import org.apache.ignite.visor.{VisorRuntimeBaseSpec, visor}
* Unit test for 'open' command.
*/
class VisorOpenCommandSpec extends VisorRuntimeBaseSpec(3) {
- behavior of "A 'open' visor command"
-
- it should "properly connect using default configuration" in {
- visor.mlist()
- }
+ describe("A 'open' visor command") {
+ it("should properly connect using default configuration") {
+ visor.mlist()
+ }
- it should "print error message when already connected" in {
- intercept[IgniteException] {
- openVisor()
+ it("should print error message when already connected") {
+ intercept[IgniteException] {
+ openVisor()
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ping/VisorPingCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ping/VisorPingCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ping/VisorPingCommandSpec.scala
index dde5f18..06e3a22 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ping/VisorPingCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/ping/VisorPingCommandSpec.scala
@@ -24,15 +24,15 @@ import org.apache.ignite.visor.commands.ping.VisorPingCommand._
* Unit test for 'ping' command.
*/
class VisorPingCommandSpec extends VisorRuntimeBaseSpec(2) {
- behavior of "A 'ping' visor command"
+ describe("A 'ping' visor command") {
+ it("should properly execute") {
+ visor.ping()
+ }
- it should "properly execute" in {
- visor.ping()
- }
-
- it should "print error message when not connected" in {
- closeVisorQuiet()
+ it("should print error message when not connected") {
+ closeVisorQuiet()
- visor.ping()
+ visor.ping()
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/b41fbeef/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/start/VisorStartCommandSpec.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/start/VisorStartCommandSpec.scala b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/start/VisorStartCommandSpec.scala
index 1a451c4..c6404b5 100644
--- a/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/start/VisorStartCommandSpec.scala
+++ b/modules/visor-console/src/test/scala/org/apache/ignite/visor/commands/start/VisorStartCommandSpec.scala
@@ -26,7 +26,7 @@ import org.apache.ignite.visor.commands.top.VisorTopologyCommand._
/**
* Unit test for 'start' command.
*/
-class VisorStartCommandSpec extends FlatSpec with Matchers with BeforeAndAfterAll {
+class VisorStartCommandSpec extends FunSpec with Matchers with BeforeAndAfterAll {
override def beforeAll() {
visor.open("-d")
}
@@ -35,89 +35,89 @@ class VisorStartCommandSpec extends FlatSpec with Matchers with BeforeAndAfterAl
visor.close()
}
- behavior of "A 'start' visor command"
+ describe("A 'start' visor command") {
+ it("should should start one new node") {
+ visor.start("-h=192.168.1.103 -r -p=password")
+ }
- it should "should start one new node" in {
- visor.start("-h=192.168.1.103 -r -p=password")
- }
+ it("should should start two nodes") {
+ visor.start("-h=uname:passwd@localhost -n=2")
+ }
- it should "should start two nodes" in {
- visor.start("-h=uname:passwd@localhost -n=2")
- }
+ it("should print error message with invalid port number") {
+ visor.start("-h=localhost:x -p=passwd")
+ }
- it should "print error message with invalid port number" in {
- visor.start("-h=localhost:x -p=passwd")
- }
+ it("should print error message with zero port number") {
+ visor.start("-h=localhost:0 -p=passwd")
+ }
- it should "print error message with zero port number" in {
- visor.start("-h=localhost:0 -p=passwd")
- }
+ it("should print error message with negative port number") {
+ visor.start("-h=localhost:-1 -p=passwd")
+ }
- it should "print error message with negative port number" in {
- visor.start("-h=localhost:-1 -p=passwd")
- }
+ it("should print error message with invalid nodes count") {
+ visor.start("-h=localhost#x -p=passwd")
+ }
- it should "print error message with invalid nodes count" in {
- visor.start("-h=localhost#x -p=passwd")
- }
+ it("should print error message with zero nodes count") {
+ visor.start("-h=localhost#0 -p=passwd")
+ }
- it should "print error message with zero nodes count" in {
- visor.start("-h=localhost#0 -p=passwd")
- }
+ it("should print error message with negative nodes count") {
+ visor.start("-h=localhost#-1 -p=passwd")
+ }
- it should "print error message with negative nodes count" in {
- visor.start("-h=localhost#-1 -p=passwd")
- }
+ it("should print error message with incorrect host") {
+ visor.start("-h=incorrect -p=passwd")
+ }
- it should "print error message with incorrect host" in {
- visor.start("-h=incorrect -p=passwd")
- }
+ it("should print error message with incorrect username") {
+ visor.start("-h=incorrect@localhost -p=passwd")
+ }
- it should "print error message with incorrect username" in {
- visor.start("-h=incorrect@localhost -p=passwd")
- }
+ it("should print error message with incorrect password") {
+ visor.start("-h=uname:incorrect@localhost")
+ }
- it should "print error message with incorrect password" in {
- visor.start("-h=uname:incorrect@localhost")
- }
+ it("should print error message with nonexistent script path") {
+ visor.start("-h=uname:passwd@localhost -s=incorrect")
+ }
- it should "print error message with nonexistent script path" in {
- visor.start("-h=uname:passwd@localhost -s=incorrect")
- }
+ it("should print error message with incorrect script path") {
+ visor.start("-h=uname:passwd@localhost -s=bin/readme.txt")
+ }
- it should "print error message with incorrect script path" in {
- visor.start("-h=uname:passwd@localhost -s=bin/readme.txt")
- }
+ it("should print error message with nonexistent config path") {
+ visor.start("-h=uname:passwd@localhost -c=incorrect")
+ }
- it should "print error message with nonexistent config path" in {
- visor.start("-h=uname:passwd@localhost -c=incorrect")
- }
+ it("should print error message with incorrect config path") {
+ visor.start("-h=uname:passwd@localhost -c=bin/readme.txt")
+ }
- it should "print error message with incorrect config path" in {
- visor.start("-h=uname:passwd@localhost -c=bin/readme.txt")
- }
+ it("should start one node") {
+ visor.start("-h=uname:passwd@localhost")
- it should "start one node" in {
- visor.start("-h=uname:passwd@localhost")
+ visor.top()
+ }
- visor.top()
- }
-
- it should "start one node on host identified by IP" in {
- visor.start("-h=uname:passwd@127.0.0.1")
+ it("should start one node on host identified by IP") {
+ visor.start("-h=uname:passwd@127.0.0.1")
- visor.top()
- }
+ visor.top()
+ }
- it should "start two nodes" in {
- visor.start("-h=uname:passwd@localhost#2")
+ it("should start two nodes") {
+ visor.start("-h=uname:passwd@localhost#2")
- visor.top()
- }
+ visor.top()
+ }
- it should "restart 4 nodes" in {
- visor.start("-h=uname:passwd@localhost#4 -r")
+ it("should restart 4 nodes") {
+ visor.start("-h=uname:passwd@localhost#4 -r")
- visor.top()
+ visor.top()
+ }
}
}
[03/32] incubator-ignite git commit: # ignite-835
Posted by sb...@apache.org.
# ignite-835
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ade75f94
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ade75f94
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ade75f94
Branch: refs/heads/ignite-709_3
Commit: ade75f94f1bb63b13cd3cb997cc7820541994858
Parents: 08360c9
Author: sboikov <sb...@gridgain.com>
Authored: Tue May 12 16:55:43 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue May 12 16:55:43 2015 +0300
----------------------------------------------------------------------
.../distributed/dht/GridDhtTransactionalCacheAdapter.java | 9 ++++-----
.../cache/distributed/GridCacheLockAbstractTest.java | 2 --
2 files changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ade75f94/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
index 87026f3..068e8b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTransactionalCacheAdapter.java
@@ -174,7 +174,7 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
// Invalidate key in near cache, if any.
if (isNearEnabled(cacheCfg))
- obsoleteNearEntry(key, req.version());
+ obsoleteNearEntry(key);
break;
}
@@ -291,7 +291,7 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
// Invalidate key in near cache, if any.
if (isNearEnabled(cacheCfg))
- obsoleteNearEntry(key, req.version());
+ obsoleteNearEntry(key);
if (tx != null) {
tx.clearEntry(txKey);
@@ -1481,12 +1481,11 @@ public abstract class GridDhtTransactionalCacheAdapter<K, V> extends GridDhtCach
/**
* @param key Key
- * @param ver Version.
*/
- private void obsoleteNearEntry(KeyCacheObject key, GridCacheVersion ver) {
+ private void obsoleteNearEntry(KeyCacheObject key) {
GridCacheEntryEx nearEntry = near().peekEx(key);
if (nearEntry != null)
- nearEntry.markObsolete(ver);
+ nearEntry.markObsolete(ctx.versions().next());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ade75f94/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java
index ab0f7d0..2fe76e7 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheLockAbstractTest.java
@@ -501,8 +501,6 @@ public abstract class GridCacheLockAbstractTest extends GridCommonAbstractTest {
* @throws Throwable If failed.
*/
public void testLockReentrancy() throws Throwable {
- fail("https://issues.apache.org/jira/browse/IGNITE-835");
-
Affinity<Integer> aff = ignite1.affinity(null);
for (int i = 10; i < 100; i++) {
[23/32] incubator-ignite git commit: # IGNITE-709 Bug fix: partition
exchange timeout occurs many times if no caches are configured. (cherry
picked from commit 816da0a)
Posted by sb...@apache.org.
# IGNITE-709 Bug fix: partition exchange timeout occurs many times if no caches are configured.
(cherry picked from commit 816da0a)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/7c91389c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/7c91389c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/7c91389c
Branch: refs/heads/ignite-709_3
Commit: 7c91389c4927c257d6af0ed54e7489a2d015588e
Parents: 9e25c2a
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 13:18:34 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 13:42:39 2015 +0300
----------------------------------------------------------------------
.../distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7c91389c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 45d332c..4b8db00 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1252,7 +1252,7 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
cctx.kernalContext().timeout().removeTimeoutObject(old);
GridTimeoutObject timeoutObj = new GridTimeoutObjectAdapter(
- cctx.gridConfig().getNetworkTimeout() * cctx.gridConfig().getCacheConfiguration().length) {
+ cctx.gridConfig().getNetworkTimeout() * Math.max(1, cctx.gridConfig().getCacheConfiguration().length)) {
@Override public void onTimeout() {
if (isDone())
return;
[26/32] incubator-ignite git commit: # IGNITE-709 Fail remote nodes
on TcpClientDiscoverySpi.dissconnect()
Posted by sb...@apache.org.
# IGNITE-709 Fail remote nodes on TcpClientDiscoverySpi.dissconnect()
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bcff2103
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bcff2103
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bcff2103
Branch: refs/heads/ignite-709_3
Commit: bcff2103026318e50f6a4e3ac5d018bd26073e2e
Parents: 71f9172
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 16:20:16 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 16:20:16 2015 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheUtils.java | 14 +-
.../GridDhtPartitionsExchangeFuture.java | 7 -
.../discovery/tcp/TcpClientDiscoverySpi.java | 139 +++++++++++--------
.../tcp/internal/TcpDiscoveryNodesRing.java | 2 +-
.../tcp/TcpClientDiscoverySpiSelfTest.java | 4 +
5 files changed, 95 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bcff2103/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 549f42f..8e082c0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -631,9 +631,14 @@ public class GridCacheUtils {
* @return Oldest node for the given topology version.
*/
public static ClusterNode oldest(GridCacheContext cctx, AffinityTopologyVersion topOrder) {
+ Collection<ClusterNode> aliveCacheNodes = aliveNodes(cctx, topOrder);
+
+ if (aliveCacheNodes.isEmpty())
+ return cctx.localNode();
+
ClusterNode oldest = null;
- for (ClusterNode n : aliveNodes(cctx, topOrder))
+ for (ClusterNode n : aliveCacheNodes)
if (oldest == null || n.order() < oldest.order())
oldest = n;
@@ -651,9 +656,14 @@ public class GridCacheUtils {
* @return Oldest node for the given topology version.
*/
public static ClusterNode oldest(GridCacheSharedContext cctx, AffinityTopologyVersion topOrder) {
+ Collection<ClusterNode> aliveCacheNodes = aliveCacheNodes(cctx, topOrder);
+
+ if (aliveCacheNodes.isEmpty())
+ return cctx.localNode();
+
ClusterNode oldest = null;
- for (ClusterNode n : aliveCacheNodes(cctx, topOrder)) {
+ for (ClusterNode n : aliveCacheNodes) {
if (oldest == null || n.order() < oldest.order())
oldest = n;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bcff2103/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 4b8db00..92dad4c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -398,13 +398,6 @@ public class GridDhtPartitionsExchangeFuture extends GridFutureAdapter<AffinityT
}
/**
- * @return Oldest node.
- */
- ClusterNode oldestNode() {
- return oldestNode.get();
- }
-
- /**
* @return Exchange ID.
*/
public GridDhtPartitionExchangeId exchangeId() {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bcff2103/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 8cdd7d1..8b32dd2 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -73,6 +73,9 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
/** Remote nodes. */
private final ConcurrentMap<UUID, TcpDiscoveryNode> rmtNodes = new ConcurrentHashMap8<>();
+ /** Topology history. */
+ private final NavigableMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
+
/** Remote nodes. */
private final ConcurrentMap<UUID, GridFutureAdapter<Boolean>> pingFuts = new ConcurrentHashMap8<>();
@@ -345,11 +348,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
/** {@inheritDoc} */
@Override public Collection<ClusterNode> getRemoteNodes() {
- return F.view(U.<TcpDiscoveryNode, ClusterNode>arrayList(rmtNodes.values(), new P1<TcpDiscoveryNode>() {
- @Override public boolean apply(TcpDiscoveryNode node) {
- return node.visible();
- }
- }));
+ return U.arrayList(rmtNodes.values(), TcpDiscoveryNodesRing.VISIBLE_NODES);
}
/** {@inheritDoc} */
@@ -419,6 +418,29 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
U.join(msgWorker, log);
U.join(sockWriter, log);
U.join(sockReader, log);
+
+ leaveLatch.countDown();
+ joinLatch.countDown();
+
+ getSpiContext().deregisterPorts();
+
+ Collection<ClusterNode> rmts = getRemoteNodes();
+
+ // This is restart/disconnection and remote nodes are not empty.
+ // We need to fire FAIL event for each.
+ DiscoverySpiListener lsnr = this.lsnr;
+
+ if (lsnr != null) {
+ for (ClusterNode n : rmts) {
+ rmtNodes.remove(n.id());
+
+ Collection<ClusterNode> top = updateTopologyHistory(topVer + 1);
+
+ lsnr.onDiscovery(EVT_NODE_FAILED, topVer, n, top, new TreeMap<>(topHist), null);
+ }
+ }
+
+ rmtNodes.clear();
}
/** {@inheritDoc} */
@@ -555,6 +577,47 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
}
/**
+ * @param topVer New topology version.
+ * @return Latest topology snapshot.
+ */
+ private NavigableSet<ClusterNode> updateTopologyHistory(long topVer) {
+ this.topVer = topVer;
+
+ NavigableSet<ClusterNode> allNodes = allVisibleNodes();
+
+ if (!topHist.containsKey(topVer)) {
+ assert topHist.isEmpty() || topHist.lastKey() == topVer - 1 :
+ "lastVer=" + topHist.lastKey() + ", newVer=" + topVer;
+
+ topHist.put(topVer, allNodes);
+
+ if (topHist.size() > topHistSize)
+ topHist.pollFirstEntry();
+
+ assert topHist.lastKey() == topVer;
+ assert topHist.size() <= topHistSize;
+ }
+
+ return allNodes;
+ }
+
+ /**
+ * @return All nodes.
+ */
+ private NavigableSet<ClusterNode> allVisibleNodes() {
+ NavigableSet<ClusterNode> allNodes = new TreeSet<>();
+
+ for (TcpDiscoveryNode node : rmtNodes.values()) {
+ if (node.visible())
+ allNodes.add(node);
+ }
+
+ allNodes.add(locNode);
+
+ return allNodes;
+ }
+
+ /**
* @param addr Address.
* @return Remote node ID.
* @throws IOException In case of I/O error.
@@ -932,9 +995,6 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
* Message worker.
*/
private class MessageWorker extends IgniteSpiThread {
- /** Topology history. */
- private final NavigableMap<Long, Collection<ClusterNode>> topHist = new TreeMap<>();
-
/** Message queue. */
private final BlockingDeque<Object> queue = new LinkedBlockingDeque<>();
@@ -1042,7 +1102,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
reconnector.cancel();
reconnector.join();
- notifyDiscovery(EVT_NODE_SEGMENTED, topVer, locNode, allNodes());
+ notifyDiscovery(EVT_NODE_SEGMENTED, topVer, locNode, allVisibleNodes());
}
}
else {
@@ -1113,7 +1173,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
else if (msg instanceof TcpDiscoveryClientPingResponse)
processClientPingResponse((TcpDiscoveryClientPingResponse)msg);
else if (msg instanceof TcpDiscoveryPingRequest)
- processPingRequest((TcpDiscoveryPingRequest)msg);
+ processPingRequest();
stats.onMessageProcessingFinished(msg);
}
@@ -1223,7 +1283,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
if (locNodeVer.equals(node.version()))
node.version(locNodeVer);
- Collection<ClusterNode> top = updateTopologyHistory(topVer);
+ NavigableSet<ClusterNode> top = updateTopologyHistory(topVer);
if (!pending && joinLatch.getCount() > 0) {
if (log.isDebugEnabled())
@@ -1261,7 +1321,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
return;
}
- Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
+ NavigableSet<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
if (!pending && joinLatch.getCount() > 0) {
if (log.isDebugEnabled())
@@ -1303,7 +1363,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
return;
}
- Collection<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
+ NavigableSet<ClusterNode> top = updateTopologyHistory(msg.topologyVersion());
if (!pending && joinLatch.getCount() > 0) {
if (log.isDebugEnabled())
@@ -1399,7 +1459,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
try {
Serializable msgObj = marsh.unmarshal(msg.messageBytes(), U.gridClassLoader());
- notifyDiscovery(EVT_DISCOVERY_CUSTOM_EVT, topVer, node, allNodes(), msgObj);
+ notifyDiscovery(EVT_DISCOVERY_CUSTOM_EVT, topVer, node, allVisibleNodes(), msgObj);
}
catch (IgniteCheckedException e) {
U.error(log, "Failed to unmarshal discovery custom message.", e);
@@ -1423,10 +1483,8 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
/**
* Router want to ping this client.
- *
- * @param msg Message.
*/
- private void processPingRequest(TcpDiscoveryPingRequest msg) {
+ private void processPingRequest() {
sockWriter.sendMessage(new TcpDiscoveryPingResponse(getLocalNodeId()));
}
@@ -1453,60 +1511,19 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
node.lastUpdateTime(tstamp);
- notifyDiscovery(EVT_NODE_METRICS_UPDATED, topVer, node, allNodes());
+ notifyDiscovery(EVT_NODE_METRICS_UPDATED, topVer, node, allVisibleNodes());
}
else if (log.isDebugEnabled())
log.debug("Received metrics from unknown node: " + nodeId);
}
/**
- * @param topVer New topology version.
- * @return Latest topology snapshot.
- */
- private Collection<ClusterNode> updateTopologyHistory(long topVer) {
- TcpClientDiscoverySpi.this.topVer = topVer;
-
- Collection<ClusterNode> allNodes = allNodes();
-
- if (!topHist.containsKey(topVer)) {
- assert topHist.isEmpty() || topHist.lastKey() == topVer - 1 :
- "lastVer=" + topHist.lastKey() + ", newVer=" + topVer;
-
- topHist.put(topVer, allNodes);
-
- if (topHist.size() > topHistSize)
- topHist.pollFirstEntry();
-
- assert topHist.lastKey() == topVer;
- assert topHist.size() <= topHistSize;
- }
-
- return allNodes;
- }
-
- /**
- * @return All nodes.
- */
- private Collection<ClusterNode> allNodes() {
- Collection<ClusterNode> allNodes = new TreeSet<>();
-
- for (TcpDiscoveryNode node : rmtNodes.values()) {
- if (node.visible())
- allNodes.add(node);
- }
-
- allNodes.add(locNode);
-
- return allNodes;
- }
-
- /**
* @param type Event type.
* @param topVer Topology version.
* @param node Node.
* @param top Topology snapshot.
*/
- private void notifyDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> top) {
+ private void notifyDiscovery(int type, long topVer, ClusterNode node, NavigableSet<ClusterNode> top) {
notifyDiscovery(type, topVer, node, top, null);
}
@@ -1516,7 +1533,7 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
* @param node Node.
* @param top Topology snapshot.
*/
- private void notifyDiscovery(int type, long topVer, ClusterNode node, Collection<ClusterNode> top,
+ private void notifyDiscovery(int type, long topVer, ClusterNode node, NavigableSet<ClusterNode> top,
@Nullable Serializable data) {
DiscoverySpiListener lsnr = TcpClientDiscoverySpi.this.lsnr;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bcff2103/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
index e866504..e9eaa1d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNodesRing.java
@@ -32,7 +32,7 @@ import java.util.concurrent.locks.*;
*/
public class TcpDiscoveryNodesRing {
/** Visible nodes filter. */
- private static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
+ public static final IgnitePredicate<TcpDiscoveryNode> VISIBLE_NODES = new P1<TcpDiscoveryNode>() {
@Override public boolean apply(TcpDiscoveryNode node) {
return node.visible();
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bcff2103/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
index 1268a23..119fc53 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpiSelfTest.java
@@ -518,6 +518,8 @@ public class TcpClientDiscoverySpiSelfTest extends GridCommonAbstractTest {
};
G.addListener(lsnr);
+ final TcpClientDiscoverySpi client2Disco = (TcpClientDiscoverySpi)G.ignite("client-2").configuration().getDiscoverySpi();
+
try {
failServer(2);
@@ -531,6 +533,8 @@ public class TcpClientDiscoverySpiSelfTest extends GridCommonAbstractTest {
finally {
G.removeListener(lsnr);
}
+
+ assert client2Disco.getRemoteNodes().isEmpty();
}
/**
[06/32] incubator-ignite git commit: Merge branch 'ignite-sprint-5'
into ignite-gg-10151
Posted by sb...@apache.org.
Merge branch 'ignite-sprint-5' into ignite-gg-10151
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/05320174
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/05320174
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/05320174
Branch: refs/heads/ignite-709_3
Commit: 05320174665e252be94c4e4b984a408f35800075
Parents: b41fbee 3861fbd
Author: Andrey <an...@gridgain.com>
Authored: Wed May 13 13:05:22 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Wed May 13 13:05:22 2015 +0700
----------------------------------------------------------------------
DEVNOTES.txt | 34 +-
assembly/release-base.xml | 6 +-
assembly/release-schema-import.xml | 50 +
bin/ignite-schema-import.bat | 2 +-
bin/ignite-schema-import.sh | 2 +-
bin/ignite.bat | 2 +-
bin/ignite.sh | 2 +-
bin/ignitevisorcmd.bat | 2 +-
bin/ignitevisorcmd.sh | 2 +-
bin/include/build-classpath.bat | 46 +
bin/include/build-classpath.sh | 71 +
bin/include/functions.sh | 2 +-
bin/include/target-classpath.bat | 46 -
bin/include/target-classpath.sh | 71 -
dev-tools/.gitignore | 2 +
dev-tools/build.gradle | 45 +
dev-tools/src/main/groovy/jiraslurp.groovy | 146 +
examples/pom.xml | 2 +-
.../streaming/wordcount/CacheConfig.java | 5 -
modules/aop/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
.../config/grid-client-config.properties | 50 +-
modules/clients/pom.xml | 2 +-
.../ClientPropertiesConfigurationSelfTest.java | 12 +-
modules/cloud/pom.xml | 4 +-
.../TcpDiscoveryCloudIpFinderSelfTest.java | 2 -
modules/codegen/pom.xml | 2 +-
.../ignite/codegen/MessageCodeGenerator.java | 4 +-
modules/core/pom.xml | 2 +-
.../java/org/apache/ignite/IgniteCache.java | 5 +
.../org/apache/ignite/IgniteJdbcDriver.java | 81 +-
.../client/GridClientConfiguration.java | 2 +-
.../internal/direct/DirectByteBufferStream.java | 4 +-
.../managers/communication/GridIoManager.java | 8 +-
.../communication/GridIoMessageFactory.java | 4 +-
.../eventstorage/GridEventStorageManager.java | 5 +-
.../cache/DynamicCacheDescriptor.java | 16 +-
.../processors/cache/GridCacheAdapter.java | 544 +-
.../cache/GridCacheEvictionManager.java | 2 +-
.../processors/cache/GridCacheIoManager.java | 314 +-
.../processors/cache/GridCacheMapEntry.java | 18 +-
.../processors/cache/GridCacheMessage.java | 8 +-
.../GridCachePartitionExchangeManager.java | 3 +
.../processors/cache/GridCacheProcessor.java | 189 +-
.../processors/cache/GridCacheProxyImpl.java | 24 -
.../processors/cache/GridCacheSwapManager.java | 215 +-
.../processors/cache/GridCacheTtlManager.java | 156 +-
.../processors/cache/GridCacheUtils.java | 6 +-
.../processors/cache/IgniteInternalCache.java | 27 -
...ridCacheOptimisticCheckPreparedTxFuture.java | 434 --
...idCacheOptimisticCheckPreparedTxRequest.java | 232 -
...dCacheOptimisticCheckPreparedTxResponse.java | 179 -
.../distributed/GridCacheTxRecoveryFuture.java | 506 ++
.../distributed/GridCacheTxRecoveryRequest.java | 261 +
.../GridCacheTxRecoveryResponse.java | 182 +
.../GridDistributedTxRemoteAdapter.java | 2 +-
.../distributed/dht/GridDhtLocalPartition.java | 2 +-
.../dht/GridPartitionedGetFuture.java | 2 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 8 +
.../dht/atomic/GridNearAtomicUpdateFuture.java | 2 +-
.../atomic/GridNearAtomicUpdateResponse.java | 18 +-
.../colocated/GridDhtColocatedLockFuture.java | 2 +
.../dht/preloader/GridDhtForceKeysFuture.java | 6 +
.../dht/preloader/GridDhtForceKeysResponse.java | 54 +-
.../distributed/near/GridNearCacheAdapter.java | 10 -
.../distributed/near/GridNearGetResponse.java | 8 +-
.../processors/cache/local/GridLocalCache.java | 8 +-
.../local/atomic/GridLocalAtomicCache.java | 27 +-
.../cache/query/GridCacheQueryManager.java | 21 +-
.../cache/query/GridCacheSqlQuery.java | 2 +-
.../cache/query/GridCacheTwoStepQuery.java | 17 +
.../cache/transactions/IgniteInternalTx.java | 5 +-
.../cache/transactions/IgniteTxAdapter.java | 2 +-
.../cache/transactions/IgniteTxHandler.java | 38 +-
.../transactions/IgniteTxLocalAdapter.java | 14 +-
.../cache/transactions/IgniteTxManager.java | 173 +-
.../datastreamer/DataStreamerImpl.java | 2 +
.../processors/igfs/IgfsDataManager.java | 3 +
.../processors/igfs/IgfsDeleteWorker.java | 4 +
.../processors/igfs/IgfsMetaManager.java | 2 +-
.../internal/processors/igfs/IgfsUtils.java | 11 +-
.../offheap/GridOffHeapProcessor.java | 17 +
.../processors/resource/GridResourceField.java | 11 +
.../processors/resource/GridResourceIoc.java | 387 +-
.../processors/resource/GridResourceMethod.java | 13 +
.../resource/GridResourceProcessor.java | 4 +-
.../ignite/internal/util/IgniteUtils.java | 19 +-
.../util/lang/GridFilteredIterator.java | 2 +-
.../ignite/internal/util/lang/GridFunc.java | 7218 +++++-------------
.../util/offheap/GridOffHeapPartitionedMap.java | 9 +
.../unsafe/GridUnsafePartitionedMap.java | 155 +-
.../internal/visor/query/VisorQueryArg.java | 14 +-
.../internal/visor/query/VisorQueryJob.java | 2 +
.../apache/ignite/lang/IgniteAsyncSupport.java | 4 +-
.../discovery/tcp/TcpClientDiscoverySpi.java | 4 -
.../spi/discovery/tcp/TcpDiscoverySpi.java | 50 +-
.../discovery/tcp/TcpDiscoverySpiAdapter.java | 8 +-
.../resources/META-INF/classnames.properties | 12 +-
.../core/src/main/resources/ignite.properties | 2 +-
.../internal/GridUpdateNotifierSelfTest.java | 21 +-
.../processors/cache/CacheGetFromJobTest.java | 110 +
.../GridCacheAbstractFailoverSelfTest.java | 4 +-
.../cache/GridCacheAbstractFullApiSelfTest.java | 227 +-
.../cache/GridCacheAbstractSelfTest.java | 4 +-
.../cache/GridCacheSwapReloadSelfTest.java | 20 +-
.../IgniteCacheEntryListenerAbstractTest.java | 4 +-
.../IgniteCacheP2pUnmarshallingErrorTest.java | 189 +
...gniteCacheP2pUnmarshallingNearErrorTest.java | 56 +
...CacheP2pUnmarshallingRebalanceErrorTest.java | 80 +
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 109 +
.../cache/IgniteCachePeekModesAbstractTest.java | 15 +-
.../cache/OffHeapTieredTransactionSelfTest.java | 127 +
...CacheLoadingConcurrentGridStartSelfTest.java | 163 +
.../GridCacheAbstractNodeRestartSelfTest.java | 94 +-
...GridCacheLoadingConcurrentGridStartTest.java | 154 -
...xOriginatingNodeFailureAbstractSelfTest.java | 2 +-
.../dht/GridCacheDhtPreloadSelfTest.java | 2 +-
...icOffHeapTieredMultiNodeFullApiSelfTest.java | 43 +
...ionedNearDisabledOffHeapFullApiSelfTest.java | 8 +-
...DisabledOffHeapMultiNodeFullApiSelfTest.java | 8 +-
...abledOffHeapTieredAtomicFullApiSelfTest.java | 56 +
...earDisabledOffHeapTieredFullApiSelfTest.java | 33 +
...edOffHeapTieredMultiNodeFullApiSelfTest.java | 33 +
...rDisabledPrimaryNodeFailureRecoveryTest.java | 31 +
...rtitionedPrimaryNodeFailureRecoveryTest.java | 31 +
...woBackupsPrimaryNodeFailureRecoveryTest.java | 37 +
...ePrimaryNodeFailureRecoveryAbstractTest.java | 533 ++
...CacheAtomicOffHeapTieredFullApiSelfTest.java | 32 +
...icOffHeapTieredMultiNodeFullApiSelfTest.java | 33 +
...yWriteOrderOffHeapTieredFullApiSelfTest.java | 33 +
...erOffHeapTieredMultiNodeFullApiSelfTest.java | 33 +
...achePartitionedMultiNodeFullApiSelfTest.java | 15 +-
.../GridCachePartitionedNodeRestartTest.java | 4 +-
...dCachePartitionedOffHeapFullApiSelfTest.java | 8 +-
...titionedOffHeapMultiNodeFullApiSelfTest.java | 8 +-
...PartitionedOffHeapTieredFullApiSelfTest.java | 32 +
...edOffHeapTieredMultiNodeFullApiSelfTest.java | 72 +
...ePartitionedOptimisticTxNodeRestartTest.java | 4 +-
.../GridCacheReplicatedNodeRestartSelfTest.java | 2 +
...idCacheReplicatedOffHeapFullApiSelfTest.java | 8 +-
...plicatedOffHeapMultiNodeFullApiSelfTest.java | 8 +-
...eReplicatedOffHeapTieredFullApiSelfTest.java | 33 +
...edOffHeapTieredMultiNodeFullApiSelfTest.java | 33 +
.../IgniteCacheExpiryPolicyAbstractTest.java | 2 +-
.../IgniteCacheExpiryPolicyTestSuite.java | 2 +
.../expiry/IgniteCacheTtlCleanupSelfTest.java | 85 +
...LocalAtomicOffHeapTieredFullApiSelfTest.java | 32 +
.../GridCacheLocalOffHeapFullApiSelfTest.java | 6 +-
...dCacheLocalOffHeapTieredFullApiSelfTest.java | 32 +
.../igfs/IgfsClientCacheSelfTest.java | 132 +
.../processors/igfs/IgfsOneClientNodeTest.java | 133 +
.../processors/igfs/IgfsStreamsSelfTest.java | 2 +-
...idFileSwapSpaceSpiMultithreadedLoadTest.java | 4 +-
.../tcp/TcpClientDiscoverySelfTest.java | 8 +
.../spi/discovery/tcp/TcpDiscoverySelfTest.java | 65 +-
.../ignite/testsuites/IgniteBasicTestSuite.java | 2 +
.../IgniteCacheFullApiSelfTestSuite.java | 18 +
...gniteCacheP2pUnmarshallingErrorTestSuit.java | 41 +
.../testsuites/IgniteCacheRestartTestSuite.java | 5 +-
.../ignite/testsuites/IgniteCacheTestSuite.java | 296 -
.../testsuites/IgniteCacheTestSuite2.java | 141 +
.../testsuites/IgniteCacheTestSuite3.java | 140 +
.../testsuites/IgniteCacheTestSuite4.java | 131 +
.../IgniteCacheTxRecoverySelfTestSuite.java | 4 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 3 +
modules/extdata/p2p/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/gce/pom.xml | 4 +-
modules/geospatial/pom.xml | 2 +-
modules/hadoop/pom.xml | 2 +-
modules/hibernate/pom.xml | 2 +-
modules/indexing/pom.xml | 2 +-
.../processors/query/h2/IgniteH2Indexing.java | 4 +
.../processors/query/h2/sql/GridSqlQuery.java | 20 +
.../query/h2/sql/GridSqlQueryParser.java | 10 +-
.../query/h2/sql/GridSqlQuerySplitter.java | 11 +-
.../processors/query/h2/sql/GridSqlSelect.java | 2 +-
.../processors/query/h2/sql/GridSqlUnion.java | 2 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 3 +
.../h2/twostep/GridReduceQueryExecutor.java | 119 +-
.../cache/GridCacheOffHeapAndSwapSelfTest.java | 11 +-
.../cache/GridCacheOffHeapSelfTest.java | 11 +-
.../cache/GridCacheOffheapIndexGetSelfTest.java | 111 +
.../IgniteCacheAbstractFieldsQuerySelfTest.java | 21 +
...niteCacheP2pUnmarshallingQueryErrorTest.java | 56 +
...eQueryMultiThreadedOffHeapTiredSelfTest.java | 37 +
.../IgniteCacheQueryMultiThreadedSelfTest.java | 29 +-
.../IgniteCacheQuerySelfTestSuite.java | 4 +
.../IgniteCacheWithIndexingTestSuite.java | 2 +
modules/jcl/pom.xml | 2 +-
modules/jta/pom.xml | 2 +-
modules/log4j/pom.xml | 2 +-
modules/rest-http/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
.../ignite/scalar/ScalarConversions.scala | 8 -
modules/schedule/pom.xml | 2 +-
modules/schema-import/pom.xml | 8 +-
.../ignite/schema/generator/CodeGenerator.java | 47 +-
modules/slf4j/pom.xml | 2 +-
modules/spring/pom.xml | 2 +-
modules/ssh/pom.xml | 2 +-
modules/tools/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
.../commands/cache/VisorCacheScanCommand.scala | 2 +-
modules/visor-plugins/pom.xml | 2 +-
modules/web/pom.xml | 2 +-
modules/yardstick/pom.xml | 2 +-
parent/pom.xml | 2 +
pom.xml | 286 +-
210 files changed, 8627 insertions(+), 8480 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/05320174/modules/visor-console/pom.xml
----------------------------------------------------------------------
[32/32] incubator-ignite git commit: # ignite-709_3
Posted by sb...@apache.org.
# ignite-709_3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6d110437
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6d110437
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6d110437
Branch: refs/heads/ignite-709_3
Commit: 6d1104372142898f7d46fa72265473d06e1eb959
Parents: c1913c4
Author: sboikov <sb...@gridgain.com>
Authored: Fri May 15 13:37:24 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri May 15 15:14:10 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/internal/IgniteEx.java | 3 +-
.../apache/ignite/internal/IgniteKernal.java | 24 ++-
.../discovery/GridDiscoveryManager.java | 37 ++--
.../cache/DynamicCacheDescriptor.java | 2 +
.../processors/cache/GridCacheProcessor.java | 183 ++++------------
.../processors/cache/GridCacheUtils.java | 12 +-
.../cache/affinity/GridCacheAffinityImpl.java | 10 +-
.../preloader/GridDhtPartitionDemandPool.java | 4 -
.../datastructures/DataStructuresProcessor.java | 12 +-
.../affinity/IgniteClientNodeAffinityTest.java | 3 -
.../IgniteDynamicClientCacheStartSelfTest.java | 213 +++++++++++++++++++
.../cache/IgniteSystemCacheOnClientTest.java | 2 +-
.../testsuites/IgniteCacheTestSuite4.java | 1 +
13 files changed, 313 insertions(+), 193 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
index bc7e722..4845d51 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
@@ -35,9 +35,8 @@ public interface IgniteEx extends Ignite {
* Gets utility cache.
*
* @return Utility cache.
- * @throws IgniteCheckedException If failed.
*/
- public <K extends GridCacheUtilityKey, V> IgniteInternalCache<K, V> utilityCache() throws IgniteCheckedException;
+ public <K extends GridCacheUtilityKey, V> IgniteInternalCache<K, V> utilityCache();
/**
* Gets the cache instance for the given name if one is configured or
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/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 1c68a82..49b5f22 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
@@ -2362,7 +2362,11 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
try {
ctx.cache().dynamicStartCache(null, cacheName, nearCfg, true).get();
- return ctx.cache().publicJCache(cacheName);
+ IgniteCacheProxy<K, V> cache = ctx.cache().publicJCache(cacheName);
+
+ checkNearCacheStarted(cache);
+
+ return cache;
}
catch (IgniteCheckedException e) {
throw CU.convertToCacheException(e);
@@ -2382,7 +2386,11 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
try {
ctx.cache().dynamicStartCache(null, cacheName, nearCfg, false).get();
- return ctx.cache().publicJCache(cacheName);
+ IgniteCacheProxy<K, V> cache = ctx.cache().publicJCache(cacheName);
+
+ checkNearCacheStarted(cache);
+
+ return cache;
}
catch (IgniteCheckedException e) {
throw CU.convertToCacheException(e);
@@ -2392,6 +2400,15 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
}
+ /**
+ * @param cache Cache.
+ */
+ private void checkNearCacheStarted(IgniteCacheProxy<?, ?> cache) {
+ if (!cache.context().isNear())
+ throw new IgniteException("Failed to start near cache " +
+ "(a cache with the same name without near cache is already started)");
+ }
+
/** {@inheritDoc} */
@Override public void destroyCache(String cacheName) {
guard();
@@ -2462,8 +2479,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
/** {@inheritDoc} */
- @Override public <K extends GridCacheUtilityKey, V> IgniteInternalCache<K, V> utilityCache()
- throws IgniteCheckedException {
+ @Override public <K extends GridCacheUtilityKey, V> IgniteInternalCache<K, V> utilityCache() {
guard();
try {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 59240b8..eac96b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -214,6 +214,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
*
* @param cacheName Cache name.
* @param filter Cache filter.
+ * @param nearEnabled Near enabled flag.
* @param loc {@code True} if cache is local.
*/
public void setCacheFilter(
@@ -240,12 +241,13 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
*
* @param cacheName Cache name.
* @param clientNodeId Near node ID.
+ * @param nearEnabled Near enabled flag.
*/
public void addClientNode(String cacheName, UUID clientNodeId, boolean nearEnabled) {
- CachePredicate predicate = registeredCaches.get(cacheName);
+ CachePredicate pred = registeredCaches.get(cacheName);
- if (predicate != null)
- predicate.addClientNode(clientNodeId, nearEnabled);
+ if (pred != null)
+ pred.addClientNode(clientNodeId, nearEnabled);
}
/**
@@ -1256,9 +1258,9 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return {@code True} if node is a cache data node.
*/
public boolean cacheAffinityNode(ClusterNode node, String cacheName) {
- CachePredicate predicate = registeredCaches.get(cacheName);
+ CachePredicate pred = registeredCaches.get(cacheName);
- return predicate != null && predicate.dataNode(node);
+ return pred != null && pred.dataNode(node);
}
/**
@@ -1267,9 +1269,9 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return {@code True} if node has near cache enabled.
*/
public boolean cacheNearNode(ClusterNode node, String cacheName) {
- CachePredicate predicate = registeredCaches.get(cacheName);
+ CachePredicate pred = registeredCaches.get(cacheName);
- return predicate != null && predicate.nearNode(node);
+ return pred != null && pred.nearNode(node);
}
/**
@@ -1278,9 +1280,9 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return {@code True} if node has client cache (without near cache).
*/
public boolean cacheClientNode(ClusterNode node, String cacheName) {
- CachePredicate predicate = registeredCaches.get(cacheName);
+ CachePredicate pred = registeredCaches.get(cacheName);
- return predicate != null && predicate.clientNode(node);
+ return pred != null && pred.clientNode(node);
}
/**
@@ -1289,9 +1291,9 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return If cache with the given name is accessible on the given node.
*/
public boolean cacheNode(ClusterNode node, String cacheName) {
- CachePredicate predicate = registeredCaches.get(cacheName);
+ CachePredicate pred = registeredCaches.get(cacheName);
- return predicate != null && predicate.cacheNode(node);
+ return pred != null && pred.cacheNode(node);
}
/**
@@ -2480,11 +2482,12 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
private boolean loc;
/** Collection of client near nodes. */
- private Map<UUID, Boolean> clientNodes;
+ private ConcurrentHashMap<UUID, Boolean> clientNodes;
/**
* @param cacheFilter Cache filter.
* @param nearEnabled Near enabled flag.
+ * @param loc {@code True} if cache is local.
*/
private CachePredicate(IgnitePredicate<ClusterNode> cacheFilter, boolean nearEnabled, boolean loc) {
assert cacheFilter != null;
@@ -2498,9 +2501,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
/**
* @param nodeId Near node ID to add.
+ * @param nearEnabled Near enabled flag.
*/
public void addClientNode(UUID nodeId, boolean nearEnabled) {
- clientNodes.put(nodeId, nearEnabled);
+ clientNodes.putIfAbsent(nodeId, nearEnabled);
}
/**
@@ -2515,7 +2519,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return {@code True} if this node is a data node for given cache.
*/
public boolean dataNode(ClusterNode node) {
- return !node.isDaemon() && !CU.clientModeNode(node) && cacheFilter.apply(node);
+ return !node.isDaemon() && CU.affinityNode(node, cacheFilter);
}
/**
@@ -2523,8 +2527,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
* @return {@code True} if cache is accessible on the given node.
*/
public boolean cacheNode(ClusterNode node) {
- return !node.isDaemon() &&
- ((!CU.clientModeNode(node) && cacheFilter.apply(node)) || clientNodes.containsKey(node.id()));
+ return !node.isDaemon() && (CU.affinityNode(node, cacheFilter) || clientNodes.containsKey(node.id()));
}
/**
@@ -2535,7 +2538,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
if (node.isDaemon())
return false;
- if (nearEnabled && cacheFilter.apply(node))
+ if (nearEnabled && CU.affinityNode(node, cacheFilter))
return true;
Boolean near = clientNodes.get(node.id());
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
index 6f6f422..a27ebd4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/DynamicCacheDescriptor.java
@@ -62,6 +62,7 @@ public class DynamicCacheDescriptor {
private final CachePluginManager pluginMgr;
/**
+ * @param ctx Context.
* @param cacheCfg Cache configuration.
* @param cacheType Cache type.
* @param template {@code True} if this is template configuration.
@@ -76,6 +77,7 @@ public class DynamicCacheDescriptor {
this.cacheType = cacheType;
this.template = template;
this.deploymentId = deploymentId;
+
pluginMgr = new CachePluginManager(ctx, cacheCfg);
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 6ac5afc..9469e65 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -127,9 +127,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/** Count down latch for caches. */
private final CountDownLatch cacheStartedLatch = new CountDownLatch(1);
- /** */
- private final GridFutureAdapter<Object> sysCacheStartFut = new GridFutureAdapter<>();
-
/**
* @param ctx Kernal context.
*/
@@ -628,6 +625,10 @@ public class GridCacheProcessor extends GridProcessorAdapter {
cfg.getNearConfiguration() != null,
cfg.getCacheMode() == LOCAL);
+ ctx.discovery().addClientNode(cfg.getName(),
+ ctx.localNodeId(),
+ cfg.getNearConfiguration() != null);
+
if (!cacheType.userCache())
stopSeq.addLast(cfg.getName());
else
@@ -664,9 +665,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public void onKernalStart() throws IgniteCheckedException {
- DynamicCacheDescriptor marshCacheDesc = null;
- DynamicCacheDescriptor utilityCacheDesc = null;
- DynamicCacheDescriptor atomicsCacheDesc = null;
+ List<GridCacheAdapter<?, ?>> locCaches = new ArrayList<>(registeredCaches.size());
try {
if (ctx.config().isDaemon())
@@ -713,7 +712,9 @@ public class GridCacheProcessor extends GridProcessorAdapter {
IgnitePredicate filter = ccfg.getNodeFilter();
- if (!CU.clientModeNode(locNode) && filter.apply(locNode)) {
+ boolean loc = desc.locallyConfigured();
+
+ if (loc || CU.affinityNode(locNode, filter)) {
CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(ccfg);
CachePluginManager pluginMgr = desc.pluginManager();
@@ -733,49 +734,23 @@ public class GridCacheProcessor extends GridProcessorAdapter {
startCache(cache);
jCacheProxies.put(maskNull(name), new IgniteCacheProxy(ctx, cache, null, false));
- }
- if (CU.MARSH_CACHE_NAME.equals(ccfg.getName()))
- marshCacheDesc = desc;
- else if (CU.UTILITY_CACHE_NAME.equals(ccfg.getName()))
- utilityCacheDesc = desc;
- else if (CU.ATOMICS_CACHE_NAME.equals(ccfg.getName()))
- atomicsCacheDesc = desc;
+ if (loc)
+ locCaches.add(cache);
+ }
}
}
finally {
cacheStartedLatch.countDown();
}
- if (ctx.config().isClientMode()) {
- assert marshCacheDesc != null;
- assert utilityCacheDesc != null;
- assert atomicsCacheDesc != null;
-
- Collection<DynamicCacheChangeRequest> reqs = new ArrayList<>();
-
- reqs.add(clientSystemCacheRequest(marshCacheDesc, new NearCacheConfiguration()));
- reqs.add(clientSystemCacheRequest(utilityCacheDesc, null));
- reqs.add(clientSystemCacheRequest(atomicsCacheDesc, new NearCacheConfiguration()));
-
- startClientSystemCaches(reqs);
-
- sysCacheStartFut.listen(new CI1<IgniteInternalFuture<Object>>() {
- @Override public void apply(IgniteInternalFuture<Object> fut) {
- try {
- marshallerCacheCallbacks();
- }
- catch (IgniteCheckedException e) {
- U.error(log, "Failed to initialize marshaller context.", e);
- }
- }
- });
- }
- else {
- sysCacheStartFut.onDone();
+ ctx.marshallerContext().onMarshallerCacheStarted(ctx);
- marshallerCacheCallbacks();
- }
+ marshallerCache().context().preloader().syncFuture().listen(new CIX1<IgniteInternalFuture<?>>() {
+ @Override public void applyx(IgniteInternalFuture<?> f) throws IgniteCheckedException {
+ ctx.marshallerContext().onMarshallerCachePreloaded(ctx);
+ }
+ });
// Must call onKernalStart on shared managers after creation of fetched caches.
for (GridCacheSharedManager<?, ?> mgr : sharedCtx.managers())
@@ -811,80 +786,19 @@ public class GridCacheProcessor extends GridProcessorAdapter {
onKernalStart(cache);
// Wait for caches in SYNC preload mode.
- for (GridCacheAdapter<?, ?> cache : caches.values()) {
- if (cache.context().started()) {
- CacheConfiguration cfg = cache.configuration();
+ for (GridCacheAdapter<?, ?> cache : locCaches) {
+ CacheConfiguration cfg = cache.configuration();
- if (cfg.getRebalanceMode() == SYNC) {
- if (cfg.getCacheMode() == REPLICATED ||
- (cfg.getCacheMode() == PARTITIONED && cfg.getRebalanceDelay() >= 0))
- cache.preloader().syncFuture().get();
- }
+ if (cfg.getRebalanceMode() == SYNC) {
+ if (cfg.getCacheMode() == REPLICATED ||
+ (cfg.getCacheMode() == PARTITIONED && cfg.getRebalanceDelay() >= 0))
+ cache.preloader().syncFuture().get();
}
}
ctx.cacheObjects().onCacheProcessorStarted();
}
- /**
- * @param reqs Start requests.
- */
- private void startClientSystemCaches(Collection<DynamicCacheChangeRequest> reqs) {
- assert !F.isEmpty(reqs) : reqs;
-
- GridCompoundFuture<Object, Object> fut = new GridCompoundFuture<>();
-
- for (DynamicCacheStartFuture startFut : initiateCacheChanges(reqs))
- fut.add(startFut);
-
- fut.markInitialized();
-
- fut.listen(new CI1<IgniteInternalFuture<Object>>() {
- @Override public void apply(IgniteInternalFuture<Object> fut) {
- sysCacheStartFut.onDone();
- }
- });
- }
-
- /**
- * @param cacheDesc Cache descriptor.
- * @return Cache change request.
- */
- private DynamicCacheChangeRequest clientSystemCacheRequest(
- DynamicCacheDescriptor cacheDesc,
- @Nullable NearCacheConfiguration nearCfg)
- {
- DynamicCacheChangeRequest desc = new DynamicCacheChangeRequest(
- cacheDesc.cacheConfiguration().getName(),
- ctx.localNodeId());
-
- desc.clientStartOnly(true);
-
- desc.nearCacheConfiguration(nearCfg);
-
- desc.deploymentId(cacheDesc.deploymentId());
-
- desc.startCacheConfiguration(cacheDesc.cacheConfiguration());
-
- desc.cacheType(cacheDesc.cacheType());
-
- return desc;
- }
-
- /**
- * @throws IgniteCheckedException If failed.
- */
- private void marshallerCacheCallbacks() throws IgniteCheckedException {
- ctx.marshallerContext().onMarshallerCacheStarted(ctx);
-
- marshallerCache().context().preloader().syncFuture().listen(new CIX1<IgniteInternalFuture<?>>() {
- @Override
- public void applyx(IgniteInternalFuture<?> f) throws IgniteCheckedException {
- ctx.marshallerContext().onMarshallerCachePreloaded(ctx);
- }
- });
- }
-
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public void stop(boolean cancel) throws IgniteCheckedException {
@@ -928,8 +842,6 @@ public class GridCacheProcessor extends GridProcessorAdapter {
@Override public void onKernalStop(boolean cancel) {
cacheStartedLatch.countDown();
- sysCacheStartFut.onDone();
-
if (ctx.config().isDaemon())
return;
@@ -1522,7 +1434,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
ClusterNode locNode = ctx.discovery().localNode();
- boolean affNodeStart = !clientStartOnly && !CU.clientModeNode(locNode) && nodeFilter.apply(locNode);
+ boolean affNodeStart = !clientStartOnly && CU.affinityNode(locNode, nodeFilter);
boolean clientNodeStart = locNode.id().equals(initiatingNodeId);
if (sharedCtx.cacheContext(CU.cacheId(cfg.getName())) != null)
@@ -1968,7 +1880,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (nearCfg != null) {
ClusterNode locNode = ctx.discovery().localNode();
- if (!CU.clientModeNode(locNode) && descCfg.getNodeFilter().apply(locNode)) {
+ if (CU.affinityNode(locNode, descCfg.getNodeFilter())) {
// If we are on a data node and near cache was enabled, return success, else - fail.
if (descCfg.getNearConfiguration() != null)
return new GridFinishedFuture<>();
@@ -2017,7 +1929,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
ClusterNode locNode = ctx.discovery().localNode();
- if (!CU.clientModeNode(locNode) && ccfg.getNodeFilter().apply(locNode)) {
+ if (CU.affinityNode(locNode, ccfg.getNodeFilter())) {
if (ccfg.getNearConfiguration() != null)
return new GridFinishedFuture<>();
else
@@ -2305,6 +2217,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/**
* Checks that remote caches has configuration compatible with the local.
*
+ * @param locCfg Local configuration.
+ * @param rmtCfg Remote configuration.
* @param rmtNode Remote node.
* @throws IgniteCheckedException If check failed.
*/
@@ -2330,13 +2244,8 @@ public class GridCacheProcessor extends GridProcessorAdapter {
CU.checkAttributeMismatch(log, rmtAttr.cacheName(), rmt, "cachePreloadMode",
"Cache preload mode", locAttr.cacheRebalanceMode(), rmtAttr.cacheRebalanceMode(), true);
- boolean checkStore = locCfg.getAtomicityMode() == TRANSACTIONAL ||
- (!CU.clientModeNode(rmtNode) &&
- !CU.clientModeNode(locNode) &&
- rmtCfg.getNodeFilter().apply(rmtNode) &&
- locCfg.getNodeFilter().apply(locNode));
-
- if (checkStore)
+ if (locCfg.getAtomicityMode() == TRANSACTIONAL ||
+ (CU.affinityNode(rmtNode, rmtCfg.getNodeFilter()) && CU.affinityNode(locNode, locCfg.getNodeFilter())))
CU.checkAttributeMismatch(log, rmtAttr.cacheName(), rmt, "storeFactory", "Store factory",
locAttr.storeFactoryClassName(), rmtAttr.storeFactoryClassName(), true);
@@ -2607,26 +2516,18 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* Gets utility cache.
*
* @return Utility cache.
- * @throws IgniteCheckedException If failed.
*/
- public <K, V> GridCacheAdapter<K, V> utilityCache() throws IgniteCheckedException {
- GridCacheAdapter<K, V> cache = internalCache(CU.UTILITY_CACHE_NAME);
-
- if (cache != null)
- return cache;
-
- assert ctx.config().isClientMode() : "Utility cache is missed on server node.";
-
- sysCacheStartFut.get();
-
+ public <K, V> GridCacheAdapter<K, V> utilityCache() {
return internalCache(CU.UTILITY_CACHE_NAME);
}
/**
- * @return Utility cache start future.
+ * Gets utility cache for atomic data structures.
+ *
+ * @return Utility cache for atomic data structures.
*/
- public IgniteInternalFuture<?> systemCachesStartFuture() {
- return sysCacheStartFut;
+ public <K, V> IgniteInternalCache<K, V> atomicsCache() {
+ return cache(CU.ATOMICS_CACHE_NAME);
}
/**
@@ -2663,7 +2564,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @return Cache instance for given name.
* @throws IgniteCheckedException If failed.
*/
- public <K, V> IgniteCache<K, V> publicJCache(@Nullable String cacheName) throws IgniteCheckedException {
+ public <K, V> IgniteCacheProxy<K, V> publicJCache(@Nullable String cacheName) throws IgniteCheckedException {
return publicJCache(cacheName, true);
}
@@ -2677,7 +2578,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @throws IgniteCheckedException If failed.
*/
@SuppressWarnings({"unchecked", "ConstantConditions"})
- @Nullable public <K, V> IgniteCache<K, V> publicJCache(@Nullable String cacheName, boolean failIfNotStarted)
+ @Nullable public <K, V> IgniteCacheProxy<K, V> publicJCache(@Nullable String cacheName, boolean failIfNotStarted)
throws IgniteCheckedException
{
if (log.isDebugEnabled())
@@ -2685,7 +2586,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
String masked = maskNull(cacheName);
- IgniteCache<K,V> cache = (IgniteCache<K, V>)jCacheProxies.get(masked);
+ IgniteCacheProxy<?, ?> cache = jCacheProxies.get(masked);
DynamicCacheDescriptor desc = registeredCaches.get(masked);
@@ -2695,7 +2596,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (cache == null)
cache = startJCache(cacheName, failIfNotStarted);
- return cache;
+ return (IgniteCacheProxy<K, V>)cache;
}
/**
@@ -2705,7 +2606,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
* @return Cache instance for given name.
* @throws IgniteCheckedException If failed.
*/
- private IgniteCache startJCache(String cacheName, boolean failIfNotStarted) throws IgniteCheckedException {
+ private IgniteCacheProxy startJCache(String cacheName, boolean failIfNotStarted) throws IgniteCheckedException {
String masked = maskNull(cacheName);
DynamicCacheDescriptor desc = registeredCaches.get(masked);
@@ -2735,7 +2636,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
F.first(initiateCacheChanges(F.asList(req))).get();
- IgniteCache cache = jCacheProxies.get(masked);
+ IgniteCacheProxy cache = jCacheProxies.get(masked);
if (cache == null && failIfNotStarted)
throw new IllegalArgumentException("Cache is not started: " + cacheName);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
index 163e09a..ef04ff4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheUtils.java
@@ -1697,7 +1697,7 @@ public class GridCacheUtils {
/**
* @param aff Affinity.
* @param n Node.
- * @return Predicate that evaulates to {@code true} if entry is primary for node.
+ * @return Predicate that evaluates to {@code true} if entry is primary for node.
*/
public static CacheEntryPredicate cachePrimary(
final Affinity aff,
@@ -1799,15 +1799,19 @@ public class GridCacheUtils {
return res;
}
+
/**
* @param node Node.
- * @return {@code True} if flag {@link IgniteConfiguration#isClientMode()} is set given node.
+ * @param filter Node filter.
+ * @return {@code True} if node is not client node and pass given filter.
*/
- public static boolean clientModeNode(ClusterNode node) {
+ public static boolean affinityNode(ClusterNode node, IgnitePredicate<ClusterNode> filter) {
Boolean clientModeAttr = node.attribute(IgniteNodeAttributes.ATTR_CLIENT_MODE);
assert clientModeAttr != null : node;
- return clientModeAttr != null && clientModeAttr;
+ boolean clientMode = clientModeAttr != null && clientModeAttr;
+
+ return !clientMode && filter.apply(node);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/affinity/GridCacheAffinityImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/affinity/GridCacheAffinityImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/affinity/GridCacheAffinityImpl.java
index 0186a90..0790052 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/affinity/GridCacheAffinityImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/affinity/GridCacheAffinityImpl.java
@@ -84,9 +84,7 @@ public class GridCacheAffinityImpl<K, V> implements Affinity<K> {
@Override public int[] primaryPartitions(ClusterNode n) {
A.notNull(n, "n");
- AffinityTopologyVersion topVer = new AffinityTopologyVersion(cctx.discovery().topologyVersion());
-
- Set<Integer> parts = cctx.affinity().primaryPartitions(n.id(), topVer);
+ Set<Integer> parts = cctx.affinity().primaryPartitions(n.id(), topologyVersion());
return U.toIntArray(parts);
}
@@ -95,9 +93,7 @@ public class GridCacheAffinityImpl<K, V> implements Affinity<K> {
@Override public int[] backupPartitions(ClusterNode n) {
A.notNull(n, "n");
- AffinityTopologyVersion topVer = new AffinityTopologyVersion(cctx.discovery().topologyVersion());
-
- Set<Integer> parts = cctx.affinity().backupPartitions(n.id(), topVer);
+ Set<Integer> parts = cctx.affinity().backupPartitions(n.id(), topologyVersion());
return U.toIntArray(parts);
}
@@ -108,7 +104,7 @@ public class GridCacheAffinityImpl<K, V> implements Affinity<K> {
Collection<Integer> parts = new HashSet<>();
- AffinityTopologyVersion topVer = new AffinityTopologyVersion(cctx.discovery().topologyVersion());
+ AffinityTopologyVersion topVer = topologyVersion();
for (int partsCnt = partitions(), part = 0; part < partsCnt; part++) {
for (ClusterNode affNode : cctx.affinity().nodes(part, topVer)) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java
index 4153c5f..633f237 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java
@@ -824,10 +824,6 @@ public class GridDhtPartitionDemandPool<K, V> {
log.debug("Waiting for marshaller cache preload [cacheName=" + cctx.name() + ']');
try {
- cctx.kernalContext().cache().systemCachesStartFuture().get();
-
- cctx.kernalContext().cache().marshallerCache().context().awaitStarted();
-
cctx.kernalContext().cache().marshallerCache().preloader().syncFuture().get();
}
catch (IgniteInterruptedCheckedException ignored) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
index b6d4b40..72911af 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/DataStructuresProcessor.java
@@ -112,7 +112,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
- @Override public void onKernalStart() throws IgniteCheckedException {
+ @Override public void onKernalStart() {
if (ctx.config().isDaemon())
return;
@@ -123,15 +123,7 @@ public final class DataStructuresProcessor extends GridProcessorAdapter {
assert utilityCache != null;
if (atomicCfg != null) {
- IgniteInternalCache atomicsCache = ctx.cache().internalCache(CU.ATOMICS_CACHE_NAME);
-
- if (atomicsCache == null) {
- assert ctx.config().isClientMode() : "Atomics cache is missed on server node.";
-
- ctx.cache().systemCachesStartFuture().get();
-
- atomicsCache = ctx.cache().internalCache(CU.ATOMICS_CACHE_NAME);
- }
+ IgniteInternalCache atomicsCache = ctx.cache().atomicsCache();
assert atomicsCache != null;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/test/java/org/apache/ignite/cache/affinity/IgniteClientNodeAffinityTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/IgniteClientNodeAffinityTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/IgniteClientNodeAffinityTest.java
index f0af2c1..467349f 100644
--- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/IgniteClientNodeAffinityTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/IgniteClientNodeAffinityTest.java
@@ -55,9 +55,6 @@ public class IgniteClientNodeAffinityTest extends GridCommonAbstractTest {
/** */
private static final String CACHE4 = "cache4";
- /** */
- private static final String CACHE5 = "cache5";
-
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
new file mode 100644
index 0000000..9745ad8
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicClientCacheStartSelfTest.java
@@ -0,0 +1,213 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.managers.discovery.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.internal.processors.cache.distributed.near.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.concurrent.*;
+
+/**
+ * Tests that cache specified in configuration start on client nodes.
+ */
+public class IgniteDynamicClientCacheStartSelfTest extends GridCommonAbstractTest {
+ /** */
+ protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ private CacheConfiguration ccfg;
+
+ /** */
+ private boolean client;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+ cfg.setClientMode(client);
+
+ if (ccfg != null)
+ cfg.setCacheConfiguration(ccfg);
+
+ return cfg;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ @Override protected void afterTest() throws Exception {
+ super.afterTest();
+
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testConfiguredCacheOnClientNode() throws Exception {
+ ccfg = new CacheConfiguration();
+
+ final String cacheName = null;
+
+ Ignite ignite0 = startGrid(0);
+
+ checkCache(ignite0, cacheName, true, false);
+
+ client = true;
+
+ Ignite ignite1 = startGrid(1);
+
+ checkCache(ignite1, cacheName, false, false);
+
+ ccfg = new CacheConfiguration();
+
+ ccfg.setNearConfiguration(new NearCacheConfiguration());
+
+ Ignite ignite2 = startGrid(2);
+
+ checkCache(ignite2, cacheName, false, true);
+
+ ccfg = null;
+
+ Ignite ignite3 = startGrid(3);
+
+ checkNoCache(ignite3, cacheName);
+
+ assertNotNull(ignite3.cache(cacheName));
+
+ checkCache(ignite3, cacheName, false, false);
+
+ Ignite ignite4 = startGrid(4);
+
+ checkNoCache(ignite4, cacheName);
+
+ assertNotNull(ignite4.createNearCache(cacheName, new NearCacheConfiguration<>()));
+
+ checkCache(ignite4, cacheName, false, true);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testNearCacheStartError() throws Exception {
+ ccfg = new CacheConfiguration();
+
+ final String cacheName = null;
+
+ Ignite ignite0 = startGrid(0);
+
+ checkCache(ignite0, cacheName, true, false);
+
+ client = true;
+
+ final Ignite ignite1 = startGrid(1);
+
+ checkCache(ignite1, cacheName, false, false);
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ ignite1.getOrCreateNearCache(cacheName, new NearCacheConfiguration<>());
+
+ return null;
+ }
+ }, IgniteException.class, null);
+
+ checkCache(ignite1, cacheName, false, false);
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ ignite1.createNearCache(cacheName, new NearCacheConfiguration<>());
+
+ return null;
+ }
+ }, IgniteException.class, null);
+
+ checkCache(ignite1, cacheName, false, false);
+ }
+
+ /**
+ * @param ignite Node.
+ * @param cacheName Cache name
+ * @param srv {@code True} if server cache is expected.
+ * @param near {@code True} if near cache is expected.
+ */
+ private void checkCache(Ignite ignite, String cacheName, boolean srv, boolean near) {
+ GridCacheAdapter<Object, Object> cache = ((IgniteKernal)ignite).context().cache().internalCache(cacheName);
+
+ assertNotNull("No cache on node " + ignite.name(), cache);
+
+ assertEquals(near, cache.context().isNear());
+
+ if (near)
+ cache = ((GridNearCacheAdapter)cache).dht();
+
+ if (srv)
+ assertSame(GridCacheConcurrentMap.class, cache.map().getClass());
+ else
+ assertSame(GridNoStorageCacheMap.class, cache.map().getClass());
+
+ ClusterNode node = ((IgniteKernal)ignite).localNode();
+
+ for (Ignite ignite0 : Ignition.allGrids()) {
+ GridDiscoveryManager disco = ((IgniteKernal)ignite0).context().discovery();
+
+ assertTrue(disco.cacheNode(node, cacheName));
+ assertEquals(srv, disco.cacheAffinityNode(node, cacheName));
+ assertEquals(near, disco.cacheNearNode(node, cacheName));
+
+ if (srv)
+ assertTrue(ignite0.affinity(null).primaryPartitions(node).length > 0);
+ else
+ assertEquals(0, ignite0.affinity(null).primaryPartitions(node).length);
+ }
+
+ assertNotNull(ignite.cache(cacheName));
+ }
+
+ /**
+ * @param ignite Node.
+ * @param cacheName Cache name.
+ */
+ private void checkNoCache(Ignite ignite, String cacheName) {
+ GridCacheAdapter<Object, Object> cache = ((IgniteKernal)ignite).context().cache().internalCache(cacheName);
+
+ assertNull("Unexpected cache on node " + ignite.name(), cache);
+
+ ClusterNode node = ((IgniteKernal)ignite).localNode();
+
+ for (Ignite ignite0 : Ignition.allGrids()) {
+ GridDiscoveryManager disco = ((IgniteKernal)ignite0).context().discovery();
+
+ assertFalse(disco.cacheNode(node, cacheName));
+ assertFalse(disco.cacheAffinityNode(node, cacheName));
+ assertFalse(disco.cacheNearNode(node, cacheName));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
index 52ef7e2..a7b2df6 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteSystemCacheOnClientTest.java
@@ -76,7 +76,7 @@ public class IgniteSystemCacheOnClientTest extends GridCommonAbstractTest {
assertNotNull(marshCache);
- assertTrue("Marshaller cache on client should have near cache", marshCache.context().isNear());
+ assertFalse(marshCache.context().isNear());
marshCache = ((IgniteKernal)ignite(0)).internalCache(CU.MARSH_CACHE_NAME);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6d110437/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
index b3eb899..18cc453 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
@@ -101,6 +101,7 @@ public class IgniteCacheTestSuite4 extends TestSuite {
suite.addTestSuite(IgniteCacheDynamicStopSelfTest.class);
suite.addTestSuite(IgniteCacheConfigurationTemplateTest.class);
suite.addTestSuite(IgniteCacheConfigurationDefaultTemplateTest.class);
+ suite.addTestSuite(IgniteDynamicClientCacheStartSelfTest.class);
suite.addTestSuite(GridCacheTxLoadFromStoreOnLockSelfTest.class);
[12/32] incubator-ignite git commit: IGNITE-894 Add missing
field.setAccessible(true);
Posted by sb...@apache.org.
IGNITE-894 Add missing field.setAccessible(true);
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9ea2dbdd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9ea2dbdd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9ea2dbdd
Branch: refs/heads/ignite-709_3
Commit: 9ea2dbdd9c5d89e3da3950ac40bf2aa2a16e283b
Parents: 3e59d23
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 17:16:19 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 17:16:19 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/resource/GridResourceIoc.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9ea2dbdd/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
index a2ffa55..55c0d3b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/resource/GridResourceIoc.java
@@ -277,8 +277,11 @@ class GridResourceIoc {
if (injectRecursively != null
|| (allowImplicitInjection && field.getName().startsWith("this$")
- || field.getName().startsWith("val$")))
+ || field.getName().startsWith("val$"))) {
+ field.setAccessible(true);
+
recursiveFieldsList.add(field);
+ }
else {
for (Annotation ann : field.getAnnotations()) {
T2<List<GridResourceField>, List<GridResourceMethod>> t2 = annMap.get(ann.annotationType());
[17/32] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-894' into ignite-sprint-5
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-894' into ignite-sprint-5
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3abd25e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3abd25e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3abd25e4
Branch: refs/heads/ignite-709_3
Commit: 3abd25e4e46a3fe8a77bd84570ff41fcdacb1e82
Parents: ba0caa1 34a9b31
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 19:03:47 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 19:03:47 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/GridInternalWrapper.java | 30 ------
.../closure/GridClosureProcessor.java | 25 ++---
.../internal/processors/igfs/IgfsJobImpl.java | 9 +-
.../processors/resource/GridResourceField.java | 5 +-
.../processors/resource/GridResourceIoc.java | 51 ++++++-----
.../resource/GridResourceProcessor.java | 22 +----
.../processors/resource/GridResourceUtils.java | 15 ---
.../ignite/internal/util/IgniteUtils.java | 3 +
.../util/lang/GridComputeJobWrapper.java | 96 --------------------
.../ignite/resources/InjectRecursively.java | 30 ++++++
10 files changed, 71 insertions(+), 215 deletions(-)
----------------------------------------------------------------------
[22/32] incubator-ignite git commit: # ignite-sprint-5 - Fixed
comment.
Posted by sb...@apache.org.
# ignite-sprint-5 - Fixed comment.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9e25c2a3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9e25c2a3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9e25c2a3
Branch: refs/heads/ignite-709_3
Commit: 9e25c2a32f36964c553075e680de4517e34c541a
Parents: 7e599b6
Author: Andrey <an...@gridgain.com>
Authored: Thu May 14 15:14:59 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Thu May 14 15:14:59 2015 +0700
----------------------------------------------------------------------
bin/ignite-schema-import.bat | 2 +-
bin/ignite-schema-import.sh | 2 +-
bin/ignite.bat | 2 +-
bin/ignitevisorcmd.bat | 2 +-
bin/ignitevisorcmd.sh | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e25c2a3/bin/ignite-schema-import.bat
----------------------------------------------------------------------
diff --git a/bin/ignite-schema-import.bat b/bin/ignite-schema-import.bat
index d48234c..a4ec86b 100644
--- a/bin/ignite-schema-import.bat
+++ b/bin/ignite-schema-import.bat
@@ -91,7 +91,7 @@ if /i "%SCRIPTS_HOME%\" == "%~dp0" goto run
:: Set IGNITE_LIBS
::
call "%SCRIPTS_HOME%\include\setenv.bat"
-call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in release.
+call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in the binary release.
set CP=%JAVA_HOME%\jre\lib\jfxrt.jar;%IGNITE_HOME%\bin\include\schema-import\*;%IGNITE_LIBS%
::
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e25c2a3/bin/ignite-schema-import.sh
----------------------------------------------------------------------
diff --git a/bin/ignite-schema-import.sh b/bin/ignite-schema-import.sh
index 8f2a8d5..1029882 100755
--- a/bin/ignite-schema-import.sh
+++ b/bin/ignite-schema-import.sh
@@ -57,7 +57,7 @@ setIgniteHome
# Set IGNITE_LIBS.
#
. "${SCRIPTS_HOME}"/include/setenv.sh
-. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in release.
+. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in the binary release.
CP="${JAVA_HOME}/jre/lib/jfxrt.jar${SEP}${IGNITE_HOME}/bin/include/schema-import/*${SEP}${IGNITE_LIBS}"
#
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e25c2a3/bin/ignite.bat
----------------------------------------------------------------------
diff --git a/bin/ignite.bat b/bin/ignite.bat
index 20836c0..1a4a58c 100644
--- a/bin/ignite.bat
+++ b/bin/ignite.bat
@@ -102,7 +102,7 @@ if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
:: Set IGNITE_LIBS
::
call "%SCRIPTS_HOME%\include\setenv.bat"
-call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in release.
+call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in the binary release.
set CP=%IGNITE_LIBS%
::
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e25c2a3/bin/ignitevisorcmd.bat
----------------------------------------------------------------------
diff --git a/bin/ignitevisorcmd.bat b/bin/ignitevisorcmd.bat
index fe06530..4a1aafd 100644
--- a/bin/ignitevisorcmd.bat
+++ b/bin/ignitevisorcmd.bat
@@ -100,7 +100,7 @@ if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
:: Set IGNITE_LIBS
::
call "%SCRIPTS_HOME%\include\setenv.bat"
-call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in release.
+call "%SCRIPTS_HOME%\include\build-classpath.bat" &:: Will be removed in the binary release.
set CP=%IGNITE_HOME%\bin\include\visor-common\*;%IGNITE_HOME%\bin\include\visorcmd\*;%IGNITE_LIBS%
::
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e25c2a3/bin/ignitevisorcmd.sh
----------------------------------------------------------------------
diff --git a/bin/ignitevisorcmd.sh b/bin/ignitevisorcmd.sh
index 91d6c5a..fe74f6a 100755
--- a/bin/ignitevisorcmd.sh
+++ b/bin/ignitevisorcmd.sh
@@ -53,7 +53,7 @@ setIgniteHome
# Set IGNITE_LIBS.
#
. "${SCRIPTS_HOME}"/include/setenv.sh
-. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in release.
+. "${SCRIPTS_HOME}"/include/build-classpath.sh # Will be removed in the binary release.
CP="${IGNITE_HOME}/bin/include/visor-common/*${SEP}${IGNITE_HOME}/bin/include/visorcmd/*${SEP}${IGNITE_LIBS}"
#
[09/32] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-835' into ignite-sprint-5
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-835' into ignite-sprint-5
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/22341a9a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/22341a9a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/22341a9a
Branch: refs/heads/ignite-709_3
Commit: 22341a9ad6e0c7627ffab26ba63c3f8ed3ace9c0
Parents: 5f8925b 96ff8f2
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 13 13:50:48 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 13 13:50:48 2015 +0300
----------------------------------------------------------------------
.../dht/GridDhtTransactionalCacheAdapter.java | 9 ++--
.../distributed/GridCacheLockAbstractTest.java | 2 -
...achePartitionedNearDisabledLockSelfTest.java | 47 ++++++++++++++++++++
.../GridCacheReplicatedLockSelfTest.java | 5 +++
.../testsuites/IgniteCacheTestSuite2.java | 1 +
5 files changed, 57 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
[24/32] incubator-ignite git commit: # IGNITE-709 Bug fix: reconect
timeout
Posted by sb...@apache.org.
# IGNITE-709 Bug fix: reconect timeout
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/71f91725
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/71f91725
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/71f91725
Branch: refs/heads/ignite-709_3
Commit: 71f917255055d8682bb39a3b1526ccae89ec572a
Parents: cb762a4
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 15:07:03 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 15:07:03 2015 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/71f91725/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
index 3c46515..8cdd7d1 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java
@@ -65,9 +65,6 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
private static final Object JOIN_TIMEOUT = "JOIN_TIMEOUT";
/** */
- private static final Object RECONNECT_TIMEOUT = "RECONNECT_TIMEOUT";
-
- /** */
private static final Object SPI_STOP = "SPI_STOP";
/** */
@@ -1025,19 +1022,20 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp
else {
assert reconnector == null;
- reconnector = new Reconnector();
+ final Reconnector reconnector = new Reconnector();
+ this.reconnector = reconnector;
reconnector.start();
timer.schedule(new TimerTask() {
@Override public void run() {
- msgWorker.addMessage(RECONNECT_TIMEOUT);
+ reconnector.cancel();
}
}, netTimeout);
}
}
}
}
- else if (msg == SPI_RECONNECT_FAILED || msg == RECONNECT_TIMEOUT) {
+ else if (msg == SPI_RECONNECT_FAILED) {
if (!segmented) {
segmented = true;
[07/32] incubator-ignite git commit: # ignite-835
Posted by sb...@apache.org.
# ignite-835
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9e670b8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9e670b8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9e670b8f
Branch: refs/heads/ignite-709_3
Commit: 9e670b8f59dc8b758dc8944885adf739d847e9c9
Parents: ade75f9
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 13 11:22:12 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 13 11:22:12 2015 +0300
----------------------------------------------------------------------
...achePartitionedNearDisabledLockSelfTest.java | 47 ++++++++++++++++++++
.../GridCacheReplicatedLockSelfTest.java | 5 +++
.../testsuites/IgniteCacheTestSuite2.java | 1 +
3 files changed, 53 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e670b8f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
new file mode 100644
index 0000000..69c7909
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledLockSelfTest.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.processors.cache.distributed.near.*;
+
+/**
+ *
+ */
+public class GridCachePartitionedNearDisabledLockSelfTest extends GridCachePartitionedLockSelfTest {
+ /** {@inheritDoc} */
+ @Override protected CacheConfiguration cacheConfiguration() {
+ CacheConfiguration ccfg = super.cacheConfiguration();
+
+ assertNotNull(ccfg.getNearConfiguration());
+
+ ccfg.setNearConfiguration(null);
+
+ return ccfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean isPartitioned() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void testLockReentrancy() throws Throwable {
+ fail("https://issues.apache.org/jira/browse/IGNITE-835");
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e670b8f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
index 97df1f0..510fa0c 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedLockSelfTest.java
@@ -30,4 +30,9 @@ public class GridCacheReplicatedLockSelfTest extends GridCacheLockAbstractTest {
@Override protected CacheMode cacheMode() {
return REPLICATED;
}
+
+ /** {@inheritDoc} */
+ @Override public void testLockReentrancy() throws Throwable {
+ fail("https://issues.apache.org/jira/browse/IGNITE-835");
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9e670b8f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index dfd88a8..dc3a2c0 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -76,6 +76,7 @@ public class IgniteCacheTestSuite2 extends TestSuite {
suite.addTest(new TestSuite(GridCachePartitionedNearDisabledBasicStoreMultiNodeSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedEventSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedLockSelfTest.class));
+ suite.addTest(new TestSuite(GridCachePartitionedNearDisabledLockSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedMultiNodeLockSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedMultiNodeSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedMultiThreadedPutGetSelfTest.class));
[10/32] incubator-ignite git commit: IGNITE-894 Fix file header.
Posted by sb...@apache.org.
IGNITE-894 Fix file header.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3e59d23c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3e59d23c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3e59d23c
Branch: refs/heads/ignite-709_3
Commit: 3e59d23c18facc9be0663dc494d58de2fd94ac54
Parents: a1ce1ce
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 14:54:15 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 14:54:15 2015 +0300
----------------------------------------------------------------------
.../ignite/resources/InjectRecursively.java | 22 +++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3e59d23c/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java b/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
index 6cf8c8a..60d1bd7 100644
--- a/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
+++ b/modules/core/src/main/java/org/apache/ignite/resources/InjectRecursively.java
@@ -1,10 +1,18 @@
-/* @java.file.header */
-
-/* _________ _____ __________________ _____
- * __ ____/___________(_)______ /__ ____/______ ____(_)_______
- * _ / __ __ ___/__ / _ __ / _ / __ _ __ `/__ / __ __ \
- * / /_/ / _ / _ / / /_/ / / /_/ / / /_/ / _ / _ / / /
- * \____/ /_/ /_/ \_,__/ \____/ \__,_/ /_/ /_/ /_/
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
package org.apache.ignite.resources;
[19/32] incubator-ignite git commit: # IGNITE-777 Bug fix: don't send
message to client twice. (cherry picked from commit cfcd1d9)
Posted by sb...@apache.org.
# IGNITE-777 Bug fix: don't send message to client twice.
(cherry picked from commit cfcd1d9)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2b57817a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2b57817a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2b57817a
Branch: refs/heads/ignite-709_3
Commit: 2b57817a080fc436d81b2c88c2aa437617866ec1
Parents: 27b559e
Author: sevdokimov <se...@gridgain.com>
Authored: Wed May 13 20:12:07 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Wed May 13 20:13:20 2015 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2b57817a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 0ebb6cd..1dea37a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -2701,8 +2701,6 @@ public class TcpDiscoverySpi extends TcpDiscoverySpiAdapter implements TcpDiscov
marshalledMsg = marsh.marshal(msg);
msgClone = marsh.unmarshal(marshalledMsg, null);
-
- clientMsgWorker.addMessage(msgClone);
}
catch (IgniteCheckedException e) {
U.error(log, "Failed to marshal message: " + msg, e);
[30/32] incubator-ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-sprint-5' into ignite-709_2
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-sprint-5' into ignite-709_2
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/98743efe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/98743efe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/98743efe
Branch: refs/heads/ignite-709_3
Commit: 98743efe6a0a3f99a42c1a0e576152546d87f67d
Parents: 4d5b899 56e67e8
Author: sevdokimov <se...@gridgain.com>
Authored: Thu May 14 17:38:05 2015 +0300
Committer: sevdokimov <se...@gridgain.com>
Committed: Thu May 14 17:38:05 2015 +0300
----------------------------------------------------------------------
bin/ignite-schema-import.bat | 2 +-
bin/ignite-schema-import.sh | 2 +-
bin/ignite.bat | 2 +-
bin/ignite.sh | 2 +-
bin/ignitevisorcmd.bat | 2 +-
bin/ignitevisorcmd.sh | 2 +-
.../processors/cache/GridCacheAdapter.java | 119 +++++------
.../processors/cache/GridCacheContext.java | 7 +
.../processors/cache/GridCacheMapEntry.java | 70 ++++---
.../GridDistributedCacheAdapter.java | 210 ++++++++++++-------
.../distributed/dht/GridDhtCacheAdapter.java | 16 +-
.../dht/GridDhtOffHeapCacheEntry.java | 63 ++++++
.../dht/GridDhtTransactionalCacheAdapter.java | 9 +-
.../distributed/dht/GridNoStorageCacheMap.java | 4 +-
.../dht/atomic/GridDhtAtomicCache.java | 3 +
.../atomic/GridDhtAtomicOffHeapCacheEntry.java | 63 ++++++
.../dht/colocated/GridDhtColocatedCache.java | 5 +-
.../GridDhtColocatedOffHeapCacheEntry.java | 63 ++++++
.../distributed/near/GridNearCacheAdapter.java | 3 +
.../near/GridNearOffHeapCacheEntry.java | 60 ++++++
.../cache/local/GridLocalCacheEntry.java | 18 ++
.../processors/resource/GridResourceField.java | 5 +-
.../processors/resource/GridResourceIoc.java | 20 +-
.../resource/GridResourceProcessor.java | 16 +-
.../ignite/internal/util/IgniteUtils.java | 3 +
.../util/lang/GridComputeJobWrapper.java | 96 ---------
.../resources/META-INF/classnames.properties | 1 -
.../cache/CacheOffheapMapEntrySelfTest.java | 168 +++++++++++++++
.../cache/CacheRemoveAllSelfTest.java | 81 +++++++
.../distributed/GridCacheLockAbstractTest.java | 2 -
...achePartitionedNearDisabledLockSelfTest.java | 47 +++++
.../near/NoneRebalanceModeSelfTest.java | 67 ++++++
.../GridCacheReplicatedLockSelfTest.java | 5 +
.../GridCacheLocalIsolatedNodesSelfTest.java | 18 +-
.../discovery/tcp/TcpDiscoveryRestartTest.java | 199 ++++++++++++++++++
.../testsuites/IgniteCacheTestSuite2.java | 2 +
.../testsuites/IgniteCacheTestSuite4.java | 4 +
.../scalar/tests/ScalarCacheQueriesSpec.scala | 154 +++++++-------
.../ignite/scalar/tests/ScalarCacheSpec.scala | 23 +-
.../scalar/tests/ScalarConversionsSpec.scala | 43 ++--
.../scalar/tests/ScalarProjectionSpec.scala | 128 ++++++-----
.../scalar/tests/ScalarReturnableSpec.scala | 41 ++--
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/VisorRuntimeBaseSpec.scala | 2 +-
.../visor/commands/VisorArgListSpec.scala | 60 +++---
.../commands/VisorFileNameCompleterSpec.scala | 34 +--
.../commands/ack/VisorAckCommandSpec.scala | 20 +-
.../commands/alert/VisorAlertCommandSpec.scala | 68 +++---
.../cache/VisorCacheClearCommandSpec.scala | 48 ++---
.../commands/cache/VisorCacheCommandSpec.scala | 66 +++---
.../config/VisorConfigurationCommandSpec.scala | 8 +-
.../cswap/VisorCacheSwapCommandSpec.scala | 24 +--
.../deploy/VisorDeployCommandSpec.scala | 10 +-
.../disco/VisorDiscoveryCommandSpec.scala | 46 ++--
.../events/VisorEventsCommandSpec.scala | 28 +--
.../visor/commands/gc/VisorGcCommandSpec.scala | 30 +--
.../commands/help/VisorHelpCommandSpec.scala | 57 ++---
.../commands/kill/VisorKillCommandSpec.scala | 58 ++---
.../commands/log/VisorLogCommandSpec.scala | 10 +-
.../commands/mem/VisorMemoryCommandSpec.scala | 77 +++----
.../commands/node/VisorNodeCommandSpec.scala | 22 +-
.../commands/open/VisorOpenCommandSpec.scala | 16 +-
.../commands/ping/VisorPingCommandSpec.scala | 16 +-
.../commands/start/VisorStartCommandSpec.scala | 126 +++++------
.../commands/tasks/VisorTasksCommandSpec.scala | 112 +++++-----
.../commands/top/VisorTopologyCommandSpec.scala | 52 ++---
.../commands/vvm/VisorVvmCommandSpec.scala | 30 +--
67 files changed, 1872 insertions(+), 998 deletions(-)
----------------------------------------------------------------------